* Copyright (c) 2021 Huawei Device Co., Ltd.
*
* HDF is dual licensed: you can use it either under the terms of
* the GPL, or the BSD license, at your option.
* See the LICENSE file in the root of this repository for complete details.
*/
* @addtogroup DAC
* @{
*
* @brief Provides Digital to analog converter (DAC) interfaces.
*
* This module allows a driver to perform operations on an DAC controller for accessing devices on the DAC channel,
* Including creating and destroying DAC controller handles and writing data
*
* @since 1.0
*/
* @file dac_if.h
*
* @brief Declares the standard DAC interface functions.
*
* @since 1.0
*/
#ifndef DAC_IF_H
#define DAC_IF_H
#include "platform_if.h"
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif
struct DacIoMsg {
uint32_t number;
uint32_t channel;
};
* @brief Obtains the handle of an DAC controller.
*
* You must call this function before accessing the DAC CHANNEL.
*
* @param number Indicates the DAC controller ID.
*
* @return Returns the pointer to the {@link DevHandle} of the DAC controller if the operation is successful;
* returns <b>NULL</b> otherwise.
* @since 1.0
*/
DevHandle DacOpen(uint32_t number);
* @brief Releases the handle of an DAC controller.
*
* If you no longer need to access the DAC controller, you should call this function to close its handle so as
* to release unused memory resources.
*
* @param handle Indicates the pointer to the device handle of the DAC controller.
*
* @since 1.0
*/
void DacClose(DevHandle handle);
* @brief Start the DAC device for transmission and write the target value in the specified DAC channel.
*
* @param handle Indicates the pointer to the device handle of the DAC controller obtained via {@link DacOpen}.
* @param channel represents the channel through which the DAC transmits messages.
* @param val represents the set digital target value.
*
* @return Returns 0 if the operation is successful; Returns a negative value otherwise..
*
* @since 1.0
*/
int32_t DacWrite(DevHandle handle, uint32_t channel, uint32_t val);
* @brief Enumerates DAC I/O commands.
*
* @since 1.0
*/
enum DacIoCmd {
DAC_IO_READ = 0,
DAC_IO_OPEN,
DAC_IO_CLOSE,
DAC_IO_WRITE,
};
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif
#endif