/* Edge configuration type. Use to select the edge to trigger the interrupt on a GPIO. */
typedef enum
{
M2M_NO_EDGE = 0, /* INT disable */
M2M_RISING_EDGE,
M2M_FALLING_EDGE,
M2M_BOTH_EDGES,
/*Used to get Opening state of communication channel*/
typedef enum
{
HW_USB_CABLE_DETACHED,
HW_CLOSED,
HW_OPENED,
SW_CLOSED,
}STATE_T;
/*Used to get software state for Usb or Uart channel*/
typedef struct
{
STATE_T Open;
UINT8 BlockingRx;
UINT8 BlockingTx;
UINT8 IsAt;
UINT8 IsRcv;
/* UART port handle. */
typedef INT32 M2M_T_HW_UART_HANDLE;
/* M2M UART results definition */
typedef enum {
M2M_HW_UART_RESULT_SUCCESS = 0,
M2M_HW_UART_RESULT_FAIL,
M2M_HW_UART_RESULT_NOT_SUPPORTED,
M2M_HW_UART_RESULT_INVALID_ARG
typedef INT32 M2M_T_HW_USB_HANDLE;
/* The MAX number of USB instances is 3. The USB instance identifies one USB channel. Not all USB instances are always
available, the number depends on module configuration, see AT#PORTCFG command */
typedef enum
{
USER_USB_INSTANCE_0,
USER_USB_INSTANCE_1,
USER_USB_INSTANCE_2,
USER_USB_INSTANCE_ERR
/*All possible USB channels that can be used: NOT ALL are always available as above */
typedef enum
{
USB_CH0 = 1,
USB_CH1,
USB_CH2,
USB_CH3,
USB_CH4,
USB_CH5,
USB_CH_AUTO,
USB_CH_DEFAULT,
USB_CH_NUM,
/*Command selector for USB channels */
typedef enum
{
M2M_USB_NO_ACTION = 0,
M2M_USB_BLOCKING_SET,
M2M_USB_RCV_FUNC,
M2M_USB_HW_OPTIONS_GET, /* Not used for USB channel */
M2M_USB_HW_OPTIONS_SET, /* Not used for USB channel */
M2M_USB_AT_MODE_SET,
M2M_USB_CLEAR_RX,
M2M_USB_RX_BLOCKING_SET,
M2M_USB_TX_BLOCKING_SET,
M2M_USB_ACTION_SELECTOR_NUM,
/*error codes for USB handle */
#define M2M_HW_USB_UART_HANDLE_GENERIC_ERR (-10)
#define M2M_HW_USB_UART_HANDLE_PORTCFG_ERR (-5)
#define M2M_HW_USB_UART_HANDLE_NEW_HWCH_UNAVAILABLE (-4)
#define M2M_HW_USB_UART_HANDLE_HW_ERR (-3)
#define M2M_HW_USB_UART_HANDLE_HWPORT_ALREADY_OPEN (-2)
#define M2M_HW_USB_UART_HANDLE_INVALID_PORT (-1)
/* M2M_T_HW_UART_IO_HW_OPTIONS used with M2M_HW_UART_IO_HW_OPTIONS_SET and
M2M_HW_UART_IO_HW_OPTIONS_GET OPTIONS */
typedef struct {
UINT32 baudrate; /* example: 115200 bits/sec */
UINT8 databits; /* example: 8 */
UINT8 stop_bits; /* example: 1 */
UINT8 parity; /* parity: 0 none; 1 odd; 2 even */
UINT8 flow_ctrl; /* set flow control: 0 none; 1 hw flow control (default) */
} M2M_T_HW_UART_IO_HW_OPTIONS;