Initial import of NFC GNSS SDK project

This commit is contained in:
chenjintao
2026-09-15 16:10:12 +08:00
commit 2746cc3d4e
3070 changed files with 892062 additions and 0 deletions
@@ -0,0 +1,200 @@
/*================================================================
Copyright (c) 2021, Quectel Wireless Solutions Co., Ltd. All rights reserved.
Quectel Wireless Solutions Proprietary and Confidential.
=================================================================*/
#ifndef __QL_USB_H__
#define __QL_USB_H__
//绑定USB网卡
#include "quec_net.h"
#include "quec_usb.h"
#include <stdint.h>
//states: 1>USB插入 0>USB拔出
typedef void (*usbdectcb)(unsigned int states);
/***********************************************
*注册USB插入与拔出的检测回调函敿
*函数成功返回0,否则返囿1
***********************************************/
int ql_usbdect_register_cb(usbdectcb cb);
/*****************************************************************
* Function: ql_usb_get_type
*
* Description:
* 获取USB的类型。
*
* Parameters:
* void
* Return:
* 1 USB正常枚举。
* 0 USB未能正常枚举,非USB,可能是适配器。
*
NOTES:此接口耗时2s
*****************************************************************/
extern int ql_usb_get_type(void);
/*****************************************************************
* Function: ql_usb_connect_state
*
* Description:
* 获取USB的连接状态,d+,d-。
*
* Parameters:
* void
* Return:
* 1 USB正常枚举且可以正常通讯。
* 0 USB未连接。
*
*****************************************************************/
int ql_usb_connect_state(void);
/*****************************************************************
* Function: ql_usb_plugin
*
* Description: 软件触发插入USB,进行枚举。
*
* Parameters: void
* Return: void
*****************************************************************/
void ql_usb_plugin(void);
/*****************************************************************
* Function: ql_usb_unplug
*
* Description: 软件触发拔出USB,进行去枚举。
*
* Parameters: void
* Return: void
*****************************************************************/
void ql_usb_unplug(void);
/*****************************************************************
* Function: ql_usb_disable_enumeration
*
* Description:
* 关闭USB枚举,配置掉电保存。
*
* Parameters:
* disable 是否关闭usb枚举,1 关闭 ,0 打开
* Return:
* 1 配置成功
* 0 配置失败
*
*****************************************************************/
int ql_usb_disable_enumeration(unsigned int disable);
/*****************************************************************
* Function: ql_cdc_switch_ccid_desc
*
* Description:
* 将cdc接口切换为ccid标准设备。
*
* Parameters:
* enable: 是否将cdc切换为ccid,1 ccid ,0 cdc
* Return:
* void:
*
*****************************************************************/
void ql_cdc_switch_ccid_desc(unsigned char enable);
/*****************************************************************
* Function: ql_cdc_switch_printer_desc
*
* Description:
* 将cdc接口切换为printer设备。
*
* Parameters:
* enable: 是否将cdc切换为printer,1 printer ,0 cdc
* config printer配置
* Return:
* void:
*
*****************************************************************/
void ql_cdc_switch_printer_desc(unsigned char enable,struct usb_printer_config config);
#ifdef MV_USB2_HID_SUPPORT
/*****************************************************************
* Function: ql_usb_hid_send_data
*
* Description:
* 将数据发送给usb hid设备。
*
* Parameters:
* buf: 数据指针
* len: 数据长度
* Return:
* 0: 发送成功
* -1: 发送失败
*
*****************************************************************/
int ql_usb_hid_send_data(char *buf, unsigned char len);
/*****************************************************************
* Function: ql_usb_device_get_hid_dtd_cnt
*
* Description:
* 获取usb hid 当前缓冲的包个数
*
* Parameters:
* void
* Return:
* 缓冲包个数
*
*
*****************************************************************/
unsigned char ql_usb_device_get_hid_dtd_cnt(void);
/*****************************************************************
* Function: ql_usb_device_free_hid_dtd
*
* Description:
* 释放usb hid设备。
*
* Parameters:
* void
* Return:
* 0: 释放成功
* -1: 释放失败
*
*****************************************************************/
void ql_usb_device_free_hid_dtd(void);
/*****************************************************************
* Function: ql_usb_enable_hid
*
* Description:
* 使能usb hid设备。
*
* Parameters:
* enable: 是否使能usb hid,1 使能 ,0 不使能
* Return:
* void:
*
*****************************************************************/
void ql_usb_enable_hid(unsigned char enable);
#endif
//绑定USB网卡
typedef enum
{
QL_NETIF_DISCONNECT=0,
QL_NETIF_CONNECT,
QL_NETIF_REMOVE=0xFF,
}ql_netif_status_e;
typedef enum
{
QL_NETIF_ECM_MODE=0, /* ECM模式 */
QL_NETIF_RNDIS_MODE, /* RNDIS模式 */
} ql_netif_mode_e;
QuecOSStatus ql_netdevctl_lwip_config(ql_netif_status_e netif_config,uint8 set_cid);
QuecOSStatus ql_set_usbnet_mode(ql_netif_mode_e netif_mode);
QuecOSStatus ql_get_usbnet_mode(ql_netif_mode_e *netif_mode);
uint8_t ql_usb_vbus_wakeup_get_enable(void);
void ql_usb_vbus_wakeup_set_enable(uint8_t enable);
#endif