123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- #ifndef __BC26_WORK_H__
- #define __BC26_WORK_H__
- #include "define.h"
- #include "user_uart.h"
- #include "bc26.h"
- #define BC26_AT_TIMEOUT_COUNT 60000
- #define BC26_OPEN_TIMEOUT WORK_INTERVAL*2
- #define BC26_Send_String UartSendString
- #define BC26_Send_Hex UartSendHex
- #define BC26_RST_LOW nrf_gpio_pin_write(BC26_RST, 0);
- #define BC26_RST_HIGH nrf_gpio_pin_write(BC26_RST, 1);
- #define BC26_PWR_LOW nrf_gpio_pin_write(BC26_PWRKEY, 0);
- #define BC26_PWR_HIGH nrf_gpio_pin_write(BC26_PWRKEY, 1);
- #define BC26_PSM_INT_LOW nrf_gpio_pin_write(BC26_PSM_INT, 0);
- #define BC26_PSM_INT_HIGH nrf_gpio_pin_write(BC26_PSM_INT, 1);
- typedef enum {
- BC26_POWER_OFF=0, //硬件断电
- BC26_POWER_ON, //硬件上电
- BC26_BOOT, //硬件开机
- BC26_RESET, //硬件复位
- BC26_NRB, //软件复位
- BC26_EXIT_SLEEP, //从休眠唤醒模块
- BC26_QSCLK_ON, //启动休眠
- BC26_QSCLK_OFF, //关闭休眠
- BC26_QSCLK_CHECK, //查询休眠设置
- BC26_QPOWD, //模块关机/重启指令
- BC26_NO_REG, //未激活
- BC26_NO_SIM, //无SIM卡
- BC26_AT, //检查AT指令是否正常
- BC26_IPR_CHECK, //检查波特率
- BC26_IPR_SET, //设置波特率
- BC26_ATI, //查询估计版本
- BC26_ATE, //回显设置
- BC26_CMEE, //错误日志设置
- BC26_CPIN, //查询USIM卡状态
- BC26_IMEI, //获取IMEI号
- BC26_CCID, //获取CCID号
- BC26_IMSI, //获取IMSI号
- BC26_QATWAKEUP, //模块从深休眠唤醒时上报URC指示20
- BC26_QNBIOTEVENT, //设置psm模式进入显示
- BC26_CSCON_SET, //使能URC上报功能
- BC26_PSM_OFF, //关闭psm模式
- BC26_PSM_CHECK, //查询psm设置
- BC26_PSM_SET, //设置psm模式
- BC26_EDRX_CHECK, //查询eDRX设置
- BC26_EDRX_SET, //设置eDRX模式
- BC26_CBC, //查询模组输入电压
- BC26_CSQ, //查询网络信号值
- BC26_CGATT_CHECK, //检查入网状态
- BC26_CGATT_ON, //设置入网
- BC26_CESQ, //获取扩展信号质量30
- BC26_CEREG_SET, //设置查询基站功能
- BC26_CEREG_CHECK, //查询基站
- BC26_CGDCONT_CHECK, //
- BC26_CGPADDR, //查询IP
- BC26_QENG, //查询网络服务信息
- BC26_CFUN_CHECK, //查询当前功能模式
- BC26_CFUN_MINI, //设置最小功能模式
- BC26_CFUN_ALL, //设置全功能模式
- BC26_NCSEARFCN, //清除频点
- BC26_TIME, //获取时间
- BC26_PSM_DELAY, //等待进入PSM
- BC26_PSM_WORKING, //进入PSM模式
-
- // BC26_NCONFIG_CHECK=20, //查询是否自动联网
- // BC26_NCONFIG_SET=21, //设置自动联网
- // BC26_QREGSWT_CHECK=22, //查询自动入电信网设置
- // BC26_QREGSWT_SET=23, //设置自动入电信网
- // BC26_NCDP_CHECK=24, //查询NB服务器设置
- // BC26_NCDP_SET=25, //设置NB服务器
- // BC26_DATA_READY, //数据准备
- // BC26_SEND_ACT, //触发数据传送
- /*电信*/
- BC26_QLWSERV, //配置IOT平台的IP和PORT
- BC26_QLWCONF, //配置注册参数
- BC26_QLWADDOBJ_00, //添加LwM2M对象
- BC26_QLWADDOBJ_10, //添加LwM2M对象
- BC26_QLWDELOBJ, //删除LwM2M对象
- BC26_QLWOPEN, //连接IOT平台
- BC26_QLWOPEN_DELAY, //连接等待
- BC26_QLWUPDATE, //更新连接参数
- BC26_QLWCLOSE, //关闭连接
- BC26_QLWDATASEND, //发送数据
- BC26_QLWCFG, //配置数据格式
- BC26_QLWDATASTATUS, //数据发送状态查询
- BC26_QLWDATASEND_DELAY, //数据发送等待
- /*LwM2M*/
- BC26_QLACFG_PLATFORM, //配置可选注册参数
- BC26_QLACFG_LIFTTIME, //配置可选注册参数
- // BC26_QLACFG_CHECK, //查询可选注册参数
- BC26_QLACONFIG_SET, //配置注册参数
- // BC26_QLACONFIG_CHECK, //查询注册参数
- BC26_QLAADDOBJ_00, //添加LwM2M对象
- BC26_QLAADDOBJ_10, //添加LwM2M对象
- BC26_QLADELOBJ, //删除LwM2M对象
- BC26_QLAREG, //发送注册请求
- BC26_QLADEREG, //发送注销请求
- BC26_QLAUPDATE, //发送更新请求
- BC26_QLARECOVER, //手动恢复LwM2M会话
- BC26_QLASTATUS, //查询当前LwM2M状态
- BC26_QLAOBSRSP, //响应订阅请求
- BC26_QLANOTIFY, //上报订阅资源数据
-
- /*oneNET*/
- BC26_MIPLCONFIG_CHECK, //查询OneNET bootsrap设置
- BC26_MIPLCONFIG_SET, //设置bootsrap
- BC26_MIPLCREATE, //创建通讯套件
- BC26_MIPLDELETE, //删除通讯套件
- BC26_MIPLADDOBJ, //添加对象和实例
- BC26_MIPLDELOBJ, //删除对象和实例
- BC26_MIPLOPEN, //注册
- BC26_MIPLCLOSE, //注销
- BC26_ONENET_OPENING, //OneNet平台注册中
- BC26_ONENET_OPENED, //OneNet平台注册成功
- BC26_MIPLDISCOVERRSP, //资源发现操作
- BC26_MIPLDISCOVERRSPING, //资源发现操作中
- BC26_MIPLOBSERVERSP, //订阅资源发现操作
- BC26_MIPLOBSERVERSPING, //订阅资源发现操作中
- BC26_MIPLREADRSP, //读请求操作
- BC26_MIPLWRITERSP, //写请求操作
- BC26_MIPLEXECUTERSP, //执行请求操作
- BC26_MIPLPARAMETERRSP, //设置请求操作
- BC26_MIPLNOTIFY, //数据上报
- BC26_MIPLNOTIFING, //数据上报中
- BC26_MIPLUPDATE, //更新注册
- }BC26_NET_STATUS;
- typedef enum
- {
- BC26_QUEUE_TIME=0,
- BC26_QUEUE_INT=1,
- }BC26_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 (*bc26_work_finish_func)(void);
- typedef bool (*bc26_work_continue_func)(void);
- typedef void (*bc26_work_mcu_rst_func)(void);
- typedef void (*bc26_work_power_func)(bool stat);
- typedef bool (*bc26_work_check_func)(BC26_NET_STATUS net_stat);
- typedef uint16_t(*bc26_work_server_data_func)(char *str,bool isbase64);
- typedef struct {
- bool cfun_stat;
- bool alarm_stat;
- BC26_BAUD baud;
- bool usim_stat;
- bool boot_stat;
- bool reset_stat;
- bool psm_lock;
- bool bc26_work;
- bool sleep_mode;
- uint8_t wakeup_mode;
- bool cfun_mini_stat;
- uint16_t bat_voltage;
- bc26_work_finish_func finish_func;
- bc26_work_continue_func continue_func;
- bc26_work_power_func power_func;
- bc26_work_check_func check_func; //BC26硬件自检结束返回
- bc26_work_mcu_rst_func mcu_rst_func; //芯片复位
- bc26_work_server_data_func server_data_func; //数据生成
- BC26_NET_STATUS bc26_status; //BC26模块当前工作状态
- BC26_NET_STATUS last_bc26_status; //执行完当前命令需返回的BC26状态
- 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; //网络正常数据工作状态
- bool onenet_close; //需重置onenet连接
- 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 bc26_at_count; //模块AT检查次数
- uint8_t cfun_timeout; //cfun操作失败次数
- uint8_t error_count; //返回错误次数
- uint8_t sim_check_count; //sim卡检测失败次数
- char *bc26_tx_array; //发送数据的缓存位置
- bool first_work; //模组第一次工作
- bool heart_check;
- bool cclk_save;
- net_type_e net_type; //网络制式
- bool net_type_error; //网络制式错误
- bool net_connect_error; //联网错误
- }BC26_STRUCT;
- void bc26_struct_Init(void);
- void bc26_timers_init(void);
- void BC26_GPIO_Init(void);
- void bc26_work_start(void);
- void bc26_work_stop(void);
- void BC26_Data_Check(char *str);
- void Set_Bc26_Queue(BC26_QUEUE_TYPE type);
- void Set_Bc26_Reg_Stat(bool stat);
- void Set_Bc26_Commercial_189(bool stat);
- void Set_Bc26_work_finish_func(bc26_work_finish_func func);
- void Set_Bc26_work_continue_func(bc26_work_continue_func func);
- void Set_Bc26_work_mcu_rst_func(bc26_work_mcu_rst_func func);
- void Set_Bc26_txAarry_byte(char *byte);
- void Set_Bc26_work_power_func(bc26_work_power_func func);
- void Set_Bc26_work_check_func(bc26_work_check_func func);
- void Set_Bc26_work_server_data_func(bc26_work_server_data_func func);
- extern BC26_STRUCT bc26_struct;
- extern uint32_t unixtime;
- #endif //__BC26_WORK_H__
|