| /*-----------------------------------------------------------------------------------------------*/ |
| /** |
| @file ql_net_usb_dev.h |
| @brief USB net device API |
| */ |
| /*-----------------------------------------------------------------------------------------------*/ |
| |
| /*------------------------------------------------------------------------------------------------- |
| Copyright (c) 2018 Quectel Wireless Solution, Co., Ltd. All Rights Reserved. |
| Quectel Wireless Solution Proprietary and Confidential. |
| -------------------------------------------------------------------------------------------------*/ |
| |
| /*------------------------------------------------------------------------------------------------- |
| EDIT HISTORY |
| This section contains comments describing changes made to the file. |
| Notice that changes are listed in reverse chronological order. |
| $Header: $ |
| when who what, where, why |
| -------- --- ---------------------------------------------------------- |
| 20190709 tyler.kuang Created . |
| -------------------------------------------------------------------------------------------------*/ |
| |
| #ifndef __QL_NET_USB_DEV_H__ |
| #define __QL_NET_USB_DEV_H__ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| #include "ql_net_common.h" |
| |
| |
| typedef void (*ql_net_usb_dev_ind_cb_f)(const char *device, |
| QL_NET_USB_DEV_STATUS_E pre_status, |
| ql_net_usb_dev_t *p_dev); |
| |
| typedef void (*ql_net_usb_dev_service_error_cb_f)(int error); |
| |
| /*-----------------------------------------------------------------------------------------------*/ |
| /** |
| @brief Initialize the USB net device service |
| @return |
| QL_ERR_OK - successful |
| QL_ERR_INVALID_ARG - as defined |
| QL_ERR_UNKNOWN - unknown error, failed to connect to service |
| QL_ERR_SERVICE_NOT_READY - service is not ready, need to retry |
| Other - error code defined by ql_type.h |
| */ |
| /*-----------------------------------------------------------------------------------------------*/ |
| int ql_net_usb_dev_init(void); |
| |
| /*-----------------------------------------------------------------------------------------------*/ |
| /** |
| @brief Get USB network device status |
| @param[in] device Device name, such as ecm0, rndis0.. |
| @param[out] p_dev Return device status information |
| @return |
| QL_ERR_OK - successful |
| QL_ERR_INVALID_ARG - as defined |
| QL_ERR_UNKNOWN - unknown error, failed to connect to service |
| QL_ERR_SERVICE_NOT_READY - service is not ready, need to retry |
| QL_ERR_INTERFACE_NOT_FOUND - device does not exist |
| Other - error code defined by ql_type.h |
| */ |
| /*-----------------------------------------------------------------------------------------------*/ |
| int ql_net_usb_dev_get_status(const char *device, ql_net_usb_dev_t *p_dev); |
| |
| /*-----------------------------------------------------------------------------------------------*/ |
| /** |
| @brief Get all USB network device list |
| @param[out] list USB network device array |
| @param[in,out] list_len, in-> array size, out->current instance number |
| @return |
| QL_ERR_OK - successful |
| QL_ERR_INVALID_ARG - as defined |
| QL_ERR_UNKNOWN - unknown error, failed to connect to service |
| QL_ERR_SERVICE_NOT_READY - service is not ready, need to retry |
| Other - error code defined by ql_type.h |
| */ |
| /*-----------------------------------------------------------------------------------------------*/ |
| int ql_net_usb_dev_get_list(ql_net_usb_dev_t *list, int *list_len); |
| |
| /*-----------------------------------------------------------------------------------------------*/ |
| /** |
| @brief Set USB network device MTU. If it does not currently exist, then set it after the device |
| appears. |
| @param[in] device Device name, such as ecm0, rndis0.. |
| @param[in] mtu MTU |
| @return |
| QL_ERR_OK - successful |
| QL_ERR_INVALID_ARG - as defined |
| QL_ERR_UNKNOWN - unknown error, failed to connect to service |
| QL_ERR_SERVICE_NOT_READY - service is not ready, need to retry |
| Other - error code defined by ql_type.h |
| */ |
| /*-----------------------------------------------------------------------------------------------*/ |
| int ql_net_usb_dev_set_mtu(const char *device, int mtu); |
| |
| /*-----------------------------------------------------------------------------------------------*/ |
| /** |
| @brief Get USB network device MTU |
| @param[in] device Device name, such as ecm0, rndis0.. |
| @param[out] p_mtu Reutn device MTU |
| @return |
| QL_ERR_OK - successful |
| QL_ERR_INVALID_ARG - as defined |
| QL_ERR_UNKNOWN - unknown error, failed to connect to service |
| QL_ERR_SERVICE_NOT_READY - service is not ready, need to retry |
| QL_ERR_INTERFACE_NOT_FOUND - device does not exist |
| Other - error code defined by ql_type.h |
| */ |
| /*-----------------------------------------------------------------------------------------------*/ |
| int ql_net_usb_dev_get_mtu(const char *device, int *p_mtu); |
| |
| /*-----------------------------------------------------------------------------------------------*/ |
| /** |
| @brief Set USB network device MAC address. If it does not currently exist, then set it after the device |
| appears. |
| @param[in] device Device name, such as ecm0, rndis0.. |
| @param[in] macaddr MAC address, format: XX:XX:XX:XX:XX:XX |
| @return |
| QL_ERR_OK - successful |
| QL_ERR_INVALID_ARG - as defined |
| QL_ERR_UNKNOWN - unknown error, failed to connect to service |
| QL_ERR_SERVICE_NOT_READY - service is not ready, need to retry |
| QL_ERR_INTERFACE_NOT_FOUND - device does not exist |
| Other - error code defined by ql_type.h |
| */ |
| /*-----------------------------------------------------------------------------------------------*/ |
| int ql_net_usb_dev_set_macaddr(const char *device, const char *macaddr); |
| |
| /*-----------------------------------------------------------------------------------------------*/ |
| /** |
| @brief Get USB network device MAC address |
| @param[in] device Device name, such as ecm0, rndis0.. |
| @param[out] macaddr_buf Return MAC address |
| @param[in] buf_len Buffer size |
| @return |
| QL_ERR_OK - successful |
| QL_ERR_INVALID_ARG - as defined |
| QL_ERR_UNKNOWN - unknown error, failed to connect to service |
| QL_ERR_SERVICE_NOT_READY - service is not ready, need to retry |
| QL_ERR_INTERFACE_NOT_FOUND - device does not exist |
| Other - error code defined by ql_type.h |
| */ |
| /*-----------------------------------------------------------------------------------------------*/ |
| int ql_net_usb_dev_get_macaddr(const char *device, char *macaddr_buf, int buf_len); |
| |
| /*-----------------------------------------------------------------------------------------------*/ |
| /** |
| @brief Register USB network device status change event |
| @param[in] cb |
| @return |
| QL_ERR_OK - successful |
| QL_ERR_NOT_INIT - uninitialized |
| QL_ERR_SERVICE_NOT_READY - service is not ready |
| QL_ERR_INVALID_ARG - Invalid arguments |
| Other - error code defined by ql_type.h |
| */ |
| /*-----------------------------------------------------------------------------------------------*/ |
| int ql_net_usb_dev_set_ind_cb(ql_net_usb_dev_ind_cb_f cb); |
| |
| |
| /*-----------------------------------------------------------------------------------------------*/ |
| /** |
| @brief Registration server error callback. Currently, only if the server exits abnormally, |
| the callback function will be executed, and the error code is QL_ERR_ABORTED; |
| @param[in] cb Callback function |
| @return |
| QL_ERR_OK - successful |
| Other - error code defined by ql_type.h |
| */ |
| /*-----------------------------------------------------------------------------------------------*/ |
| int ql_net_usb_dev_set_service_error_cb(ql_net_usb_dev_service_error_cb_f cb); |
| |
| /*-----------------------------------------------------------------------------------------------*/ |
| /** |
| @brief Deinitialize the USB net device service |
| @return |
| QL_ERR_OK - successful |
| Other - error code defined by ql_type.h |
| */ |
| /*-----------------------------------------------------------------------------------------------*/ |
| int ql_net_usb_dev_deinit(void); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif |
| |