123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- #ifndef __BC25_WORK_H__
- #define __BC25_WORK_H__
- #include "define.h"
- #include "user_uart.h"
- #include "bc25.h"
- #define BC25_AT_TIMEOUT_COUNT 60000
- #define BC25_OPEN_TIMEOUT WORK_INTERVAL*2
- #define BC25_Send_String UartSendString
- #define BC25_Send_Hex UartSendHex
- #define BC25_RST_LOW nrf_gpio_pin_write(BC25_RST, 0);
- #define BC25_RST_HIGH nrf_gpio_pin_write(BC25_RST, 1);
- #define BC25_PWR_LOW nrf_gpio_pin_write(BC25_PWRKEY, 0);
- #define BC25_PWR_HIGH nrf_gpio_pin_write(BC25_PWRKEY, 1);
- #define BC25_PSM_INT_LOW nrf_gpio_pin_write(BC25_PSM_INT, 0);
- #define BC25_PSM_INT_HIGH nrf_gpio_pin_write(BC25_PSM_INT, 1);
- typedef enum {
- BC25_POWER_OFF=0, //硬件断电
- BC25_POWER_ON, //硬件上电
- BC25_BOOT, //硬件开机
- BC25_RESET, //硬件复位
- BC25_NRB, //软件复位
- BC25_EXIT_SLEEP, //从休眠唤醒模块
- BC25_QSCLK_ON, //启动休眠
- BC25_QSCLK_OFF, //关闭休眠
- BC25_QSCLK_CHECK, //查询休眠设置
- BC25_QPOWD, //模块关机/重启指令
- BC25_QPOWD_DELAY, //模块关机指令等待
- BC25_NO_REG, //未激活
- BC25_AT, //检查AT指令是否正常
- // BC25_IPR_CHECK, //检查波特率
- // BC25_IPR_SET, //设置波特率
- BC25_ATI, //查询估计版本
- BC25_ATE, //回显设置
- BC25_CMEE, //错误日志设置
- BC25_CPIN, //查询USIM卡状态
- BC25_IMEI, //获取IMEI号
- BC25_CCID, //获取CCID号
- BC25_IMSI, //获取IMSI号
- BC25_QATWAKEUP, //模块从深休眠唤醒时上报URC指示20
- BC25_QNBIOTEVENT, //设置psm模式进入显示
- BC25_CSCON_SET, //使能URC上报功能
- BC25_CEDRX_OFF, //关闭edrx功能
- BC25_PSM_OFF, //关闭psm模式
- BC25_PSM_CHECK, //查询psm设置
- BC25_PSM_SET, //设置psm模式
- BC25_EDRX_CHECK, //查询eDRX设置
- BC25_EDRX_SET, //设置eDRX模式
- BC25_CBC, //查询模组输入电压
- BC25_CSQ, //查询网络信号值
- BC25_CGATT_CHECK, //检查入网状态
- BC25_CGATT_ON, //设置入网
- BC25_CESQ, //获取扩展信号质量30
- BC25_CEREG_SET, //设置查询基站功能
- BC25_CEREG_CHECK, //查询基站
- BC25_CGPADDR, //查询IP
- BC25_QENG, //查询网络服务信息
- BC25_CFUN_CHECK, //查询当前功能模式
- BC25_CFUN_MINI, //设置最小功能模式
- BC25_CFUN_ALL, //设置全功能模式
- BC25_NCSEARFCN, //清除频点
- BC25_TIME, //获取时间
- BC25_PSM_DELAY, //等待进入PSM
- BC25_PSM_WORKING, //进入PSM模式
-
- /****电信IoT****/
- BC25_NCDPOPEN, //发起连接
- BC25_NCDPCLOSE, //断开连接
- BC25_NMGS, //发送数据
- BC25_NMGSING, //发送数据中
- BC25_NNMI, //配置数据接收为只吐模式
- BC25_NCFG_LIFETIME, //配置生命周期
- BC25_NCFG_WAKEUP, //配置深度睡眠唤醒回复功能
- BC25_NMSTATUS, //查询注册状态
-
- /*oneNET*/
- BC25_MIPLCONFIG_CHECK, //查询OneNET bootsrap设置
- BC25_MIPLCONFIG_SET, //设置bootsrap
- BC25_MIPLCREATE, //创建通讯套件
- BC25_MIPLDELETE, //删除通讯套件
- BC25_MIPLADDOBJ, //添加对象和实例
- BC25_MIPLDELOBJ, //删除对象和实例
- BC25_MIPLOPEN, //注册
- BC25_MIPLCLOSE, //注销
- BC25_ONENET_OPENING, //OneNet平台注册中
- BC25_ONENET_OPEN_RESTART, //OneNet注册重启等待
- BC25_ONENET_OPENED, //OneNet平台注册成功
- BC25_MIPLDISCOVERRSP, //资源发现操作
- BC95_MIPLDISCOVERRSPING, //资源发现操作中
- BC25_MIPLOBSERVERSP, //订阅资源发现操作
- BC95_MIPLOBSERVERSPING, //订阅资源发现操作中
- BC25_MIPLREADRSP, //读请求操作
- BC25_MIPLWRITERSP, //写请求操作
- BC25_MIPLEXECUTERSP, //执行请求操作
- BC25_MIPLPARAMETERRSP, //设置请求操作
- BC25_MIPLNOTIFY, //数据上报
- BC25_MIPLNOTIFING, //数据上报中
- BC25_MIPLUPDATE, //更新注册
- }BC25_NET_STATUS;
- typedef enum
- {
- BC25_QUEUE_TIME=0,
- BC25_QUEUE_INT=1,
- }BC25_QUEUE_TYPE;
- #define ONENET_PARAM_DEFAULT_CONFIG \
- { \
- .insCount=1, \
- .insBitmap="1", \
- .attrCount=4, \
- .actCount=1, \
- .objid=3300, \
- .resid_u=5751, \
- .resid_d=5750, \
- .resid="5751;5750", \
- .resid_len=9, \
- }
- #define PSM_PARAM_DEFAULT_CONFIG \
- { \
- .stat=CPSMS_ON, \
- .T3412="00100110",/*001=1小时,00110=6次,6小时*/ \
- .T3324="00100001",/*001=1分钟,00001=1,1分钟*/ \
- }
- typedef void (*bc25_work_finish_func)(void);
- typedef bool (*bc25_work_continue_func)(void);
- typedef void (*bc25_qpowd_func)(void);
- typedef struct {
- bool dev_reg;
- bool cfun_stat;
- bool alarm_stat;
- BC25_BAUD baud;
- bool usim_stat;
- bool boot_stat;
- bool reset_stat;
- bool psm_lock;
- bool bc25_work;
- bool sleep_mode;
- uint8_t wakeup_mode;
- bool cfun_mini_stat;
- uint16_t bat_voltage;
- bc25_work_finish_func finish_func;
- bc25_work_continue_func continue_func;
- BC25_NET_STATUS bc25_status; //BC25模块当前工作状态
- BC25_NET_STATUS last_bc25_status; //执行完当前命令需返回的BC25状态
- http_request_s http_request; //http请求值
- uint8_t open_stat; //onenet open stat
- uint8_t onenet_discover_stat; //onenet发现资源
- uint8_t onenet_observer_stat; //onenet订阅请求
- uint8_t cgatt_timeout; //附着网络失败
- bool net_work; //网络正常数据工作状态
- uint32_t net_lifetime; //更新操作计时
- uint8_t rst_delay; //重启延时
- bool commercial_189; //是否电信商用平台
- bool imsi_stat; //IMSI读取准备状态
- bool edrx_stat; //EDRX设置状态
- uint8_t gpio_set_stat; //gpio操作状态
- uint8_t bc25_at_count; //模块AT检查次数
- uint8_t cfun_timeout; //cfun操作失败次数
- uint8_t error_count; //返回错误次数
- char *bc25_tx_array; //发送数据的缓存位置
- bool first_work; //模组第一次工作
- bool heart_check;
- uint32_t heart_check_timeout; //心跳包延时检查
- net_type_e net_type; //网络制式
- bool net_type_error; //网络制式错误
- bool net_connect_error; //联网错误
- bool cclk_save; //是否保存时间戳
- uint8_t iot_open_timeout; //连接超时
- bool qpowd_func_stat;
- bc25_qpowd_func qpowd_func; //关机执行
- uint8_t mipconfig_stat; //mipconfig状态查询
- uint8_t mipconfig_set; //mipconfig设置步骤
- uint8_t bootstrap_timeout; //bootstrap失败次数
- }BC25_STRUCT;
- void bc25_struct_Init(void);
- void bc25_timers_init(void);
- void BC25_GPIO_Init(void);
- void bc25_work_start(void);
- void bc25_work_stop(void);
- void BC25_Data_Check(char *str);
- void Set_Bc25_Queue(BC25_QUEUE_TYPE type);
- void Set_Bc25_Reg_Stat(bool stat);
- void Set_Bc25_Commercial_189(bool stat);
- void Set_Bc25_work_finish_func(bc25_work_finish_func func);
- void Set_Bc25_work_continue_func(bc25_work_continue_func func);
- void Set_Bc25_txAarry_byte(char *byte);
- void Set_Bc25_netType(net_type_e net_type);
- void bc25_powerdown(bc25_qpowd_func func);
- extern BC25_STRUCT bc25_struct;
- extern uint32_t unixtime;
- #endif //__BC25_WORK_H__
|