From 44bc96b250232b7f102704677164a55ca64561fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A9=AC=5F666?= <13089258+pony-six-hundred-and-sixty-six@user.noreply.gitee.com> Date: Mon, 30 Dec 2024 18:04:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90NT26K=E7=9A=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=BC=96=E5=86=99=E5=90=8E=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cproject | 2 +- .settings/org.eclipse.core.resources.prefs | 4 +- .vscode/settings.json | 2 +- applications/main.c | 31 +- applications/user_sys.c | 10 +- .../{at_device_mb26.h => at_device_nt26k.h} | 44 +- bsp/inc/{bsp_mb26.h => bsp_nt26k.h} | 104 +- .../{at_device_mb26.c => at_device_nt26k.c} | 583 ++++++----- bsp/src/bsp_flash.c | 4 +- bsp/src/bsp_h308.c | 4 +- bsp/src/bsp_hr.c | 2 +- bsp/src/bsp_led.c | 4 +- bsp/src/{bsp_mb26.c => bsp_nt26k.c} | 912 +++++++++--------- packages/at_device-2.1.0/at_device.h | 2 +- rt-thread/rtconfig.h | 12 +- 15 files changed, 836 insertions(+), 884 deletions(-) rename bsp/inc/{at_device_mb26.h => at_device_nt26k.h} (61%) rename bsp/inc/{bsp_mb26.h => bsp_nt26k.h} (71%) rename bsp/src/{at_device_mb26.c => at_device_nt26k.c} (69%) rename bsp/src/{bsp_mb26.c => bsp_nt26k.c} (50%) diff --git a/.cproject b/.cproject index 07e4900..847ec5a 100644 --- a/.cproject +++ b/.cproject @@ -174,7 +174,7 @@ - + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs index 6d5733e..f8250df 100644 --- a/.settings/org.eclipse.core.resources.prefs +++ b/.settings/org.eclipse.core.resources.prefs @@ -4,10 +4,10 @@ encoding//applications/main.c=UTF-8 encoding//applications/user_sys.h=UTF-8 encoding//board/board.c=UTF-8 encoding//board/board.h=UTF-8 -encoding//bsp/inc/at_device_mb26.h=GBK +encoding//bsp/inc/at_device_nt26k.h=GBK encoding//bsp/inc/bsp_hr.h=GBK encoding//bsp/inc/bsp_led.h=UTF-8 -encoding//bsp/src/at_device_mb26.c=UTF-8 +encoding//bsp/src/at_device_nt26k.c=UTF-8 encoding//bsp/src/bsp_button.c=GBK encoding//bsp/src/bsp_flash.c=UTF-8 encoding//bsp/src/bsp_h308.c=UTF-8 diff --git a/.vscode/settings.json b/.vscode/settings.json index e1a6cbe..2cabbe5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -39,7 +39,7 @@ "pin.h": "c", "cstring": "c", "bsp_beep.h": "c", - "at_device_mb26.h": "c", + "at_device_nt26k.h": "c", "at_log.h": "c", "at_device.h": "c", "stdlib.h": "c", diff --git a/applications/main.c b/applications/main.c index 42ee8c1..d2a2a2a 100644 --- a/applications/main.c +++ b/applications/main.c @@ -23,7 +23,7 @@ #include "bsp_flash.h" #include "bsp_hr.h" #include "bsp_h308.h" -#include "bsp_mb26.h" +#include "bsp_nt26k.h" #include "bsp_vin_detection.h" #include "user_sys.h" @@ -218,6 +218,7 @@ int main(void) else { LOG_D("欠压复位\r\n"); + NVIC_SystemReset(); // 直接重启系统 } while (1) @@ -323,8 +324,8 @@ int main(void) LED_R_ALARM; BEEP_ALARM; -#if (NB_MODULE_SWITCH == 1) - Mb26_Send_Event(kMb26AlarmEvent); +#if (IOT_MODULE_SWITCH == 1) + Nt26k_Send_Event(kNt26kAlarmEvent); #endif } else if (received_event & Get_Sys_Event_Flag(kAlarmRcyEvent)) // 报警恢复 @@ -340,8 +341,8 @@ int main(void) relay_state_flag = 0; BEEP_STOP; -#if (NB_MODULE_SWITCH == 1) - Mb26_Send_Event(kMb26AlarmRcyEvent); +#if (IOT_MODULE_SWITCH == 1) + Nt26k_Send_Event(kNt26kAlarmRcyEvent); #endif Send_Laser_Alarm_Event(kNormalDetectionEvents); @@ -357,8 +358,8 @@ int main(void) Flash_Write_Record(kRecordFault); LED_Y_FAULT; -#if (NB_MODULE_SWITCH == 1) - Mb26_Send_Event(kMb26FaultEvent); +#if (IOT_MODULE_SWITCH == 1) + Nt26k_Send_Event(kNt26kFaultEvent); #endif } else @@ -376,8 +377,8 @@ int main(void) Flash_Write_Record(kRecordFaultRcy); Send_Laser_Alarm_Event(kNormalDetectionEvents); -#if (NB_MODULE_SWITCH == 1) - Mb26_Send_Event(kMb26FaultRcyEvent); +#if (IOT_MODULE_SWITCH == 1) + Nt26k_Send_Event(kNt26kFaultRcyEvent); #endif } else if (received_event & Get_Sys_Event_Flag(KMuteEvent)) // 消音 @@ -386,8 +387,8 @@ int main(void) SysControl.last_status = SysControl.status; SysControl.status = KMuteEvent; BEEP_STOP; -#if (NB_MODULE_SWITCH == 1) - Mb26_Send_Event(kMb26SilenceEvent); +#if (IOT_MODULE_SWITCH == 1) + Nt26k_Send_Event(kNt26kSilenceEvent); #endif } else if (received_event & Get_Sys_Event_Flag(kPowerDownEvent)) // 掉电 @@ -401,8 +402,8 @@ int main(void) Flash_Write_Record(kRecordPowerDown); Flash_Set_WorkDuration(work_duration); // 写入工作时长 -#if (NB_MODULE_SWITCH == 1) - Mb26_Send_Event(kMb26PowerDownEvent); +#if (IOT_MODULE_SWITCH == 1) + Nt26k_Send_Event(kNt26kPowerDownEvent); #endif LOG_D("Enter AnalogWatchdog Interrupt"); // 等待180s,要是还没断电就重启 @@ -423,8 +424,8 @@ int main(void) _Self_Check_Mode(); -#if (NB_MODULE_SWITCH == 1) - Mb26_Send_Event(kMb26SelfCheckEvent); +#if (IOT_MODULE_SWITCH == 1) + Nt26k_Send_Event(kNt26kSelfCheckEvent); #endif Send_Laser_Alarm_Event(kNormalDetectionEvents); // 这里先返回检测模式,然后当事件触发时进入事件模式 } diff --git a/applications/user_sys.c b/applications/user_sys.c index 6c459a3..27eda69 100644 --- a/applications/user_sys.c +++ b/applications/user_sys.c @@ -22,13 +22,13 @@ #include "bsp_flash.h" #include "bsp_h308.h" #include "bsp_hr.h" -#include "bsp_mb26.h" +#include "bsp_nt26k.h" #include "bsp_relay.h" #include "bsp_vin_detection.h" #include "bsp_wdg.h" #include "rtdef.h" #include "bsp_rng.h" -#include "at_device_mb26.h" +#include "at_device_nt26k.h" volatile rt_uint16_t work_duration = 1; // 工作时长 volatile rt_uint8_t device_life_check = 0; @@ -238,9 +238,9 @@ int BSP_SYS_Init(void) BSP_BUTTON_Init(); BSP_H308_Init(); BSP_HR_Init(); - mb26_device_class_register(); - mb26_device_register(); - BSP_Mb26_Thread_Init(); + nt26k_device_class_register(); + nt26k_device_register(); + BSP_Nt26k_Thread_Init(); return 0; } // INIT_ENV_EXPORT(BSP_SYS_Init); diff --git a/bsp/inc/at_device_mb26.h b/bsp/inc/at_device_nt26k.h similarity index 61% rename from bsp/inc/at_device_mb26.h rename to bsp/inc/at_device_nt26k.h index a41b513..4d2ce03 100644 --- a/bsp/inc/at_device_mb26.h +++ b/bsp/inc/at_device_nt26k.h @@ -2,8 +2,8 @@ * @Author: mbw * @Date: 2024-10-09 08:42:14 * @LastEditors: mbw && 1600520629@qq.com - * @LastEditTime: 2024-11-07 14:21:17 - * @FilePath: \JT-DT-YD4N02A_RTT_MRS-4G\bsp\inc\at_device_mb26.h + * @LastEditTime: 2024-12-30 16:30:57 + * @FilePath: \JT-DT-YD4N02A_RTT_MRS-4G\bsp\inc\at_device_nt26k.h * @Description: * @ * @Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. @@ -13,14 +13,14 @@ * @Date: 2024-10-09 08:42:14 * @LastEditors: mbw && 1600520629@qq.com * @LastEditTime: 2024-10-14 14:25:58 - * @FilePath: \JT-DT-YD4N02A_RTT_MRS-4G\bsp\inc\at_device_mb26.h + * @FilePath: \JT-DT-YD4N02A_RTT_MRS-4G\bsp\inc\at_device_nt26k.h * @Description: * @ * @Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. */ -#ifndef __AT_DEVICE_MB26_H__ -#define __AT_DEVICE_MB26_H__ +#ifndef __AT_DEVICE_NT26K_H__ +#define __AT_DEVICE_NT26K_H__ #include @@ -33,29 +33,27 @@ //#define TCP_SERVER_URL ("8.135.10.183 ") // //#define TCP_SERVER_PORT ("35383") -#define AT_NSONMI_MODE_1 1 -#define AT_NSONMI_MODE_2 2 -#define AT_NSONMI_MODE_3 3 -#define AT_NSONMI_MODE_DEFAULT AT_NSONMI_MODE_3 +#define AT_NT26K_FORMAT_MODE_0 0 +#define AT_NSONMI_FORMAT_MODE_1 1 +#define AT_NSONMI_MODE_DEFAULT AT_NSONMI_FORMAT_MODE_1 #define AT_SEND_MSOSD_FLAG_100 ("0x100") #define AT_SEND_MSOSD_FLAG_200 ("0x200") #define AT_SEND_MSOSD_FLAG_400 ("0x400") #define AT_SEND_MSOSD_FLAG_DEFAULT AT_SEND_MSOSD_FLAG_100 -#define TCP_SOCKET_CREAT ("AT+SKTCREATE=1,1,6") // -#define TCP_CONNECT_CMD ("AT+SKTCONNECT=%d,%s,%s") +#define TCP_CONNECT_CMD ("AT+QIOPEN=1,0,\"TCP\",\"%s\",%s") #define TCP_READ_SET_CMD ("AT+NSORF=%d,%d") /* socket_id,length */ #define TCP_SET_NSONMI ("AT+NSONMI=%d") -#define TCP_SEND_DATA ("AT+SKTSEND=%d,%d,%s,%s") -#define TCP_CLOSE_SOCKET ("AT+NSOCL=%d") /* close socket_id */ +#define TCP_SEND_DATA ("AT+QISENDEX=%d,\"%s\"") +#define TCP_CLOSE_SOCKET ("AT+QICLOSE=%d") /* close socket_id */ -#define AT_DEVICE_MB26_SOCKETS_NUM 5 -/* The maximum number of sockets supported by the mb26 device */ +#define AT_DEVICE_NT26K_SOCKETS_NUM 5 +/* The maximum number of sockets supported by the nt26k device */ -struct at_device_mb26 +struct at_device_nt26k { char *device_name; char *client_name; @@ -83,13 +81,13 @@ typedef struct __attribute__((packed)) uint8_t rsrq; // RSRQ uint16_t pci; // PCI uint8_t snr; // SNR -} mb26_sys_info; +} nt26k_sys_info; -extern mb26_sys_info mb26; -extern rt_uint8_t mb26_init_complate_flag; -extern struct rt_completion mb26_init_complate; -int mb26_device_class_register(void); +extern nt26k_sys_info nt26k; +extern rt_uint8_t nt26k_init_complate_flag; +extern struct rt_completion nt26k_init_complate; +int nt26k_device_class_register(void); int at_send_data(struct at_device *device, const char *data, rt_size_t size); -rt_err_t Mb26_Reset(struct at_device *device); +rt_err_t Nt26k_Reset(struct at_device *device); int Time_Calibration(struct at_device *device); -#endif /* __AT_DEVICE_MB26_H__ */ +#endif /* __AT_DEVICE_NT26K_H__ */ diff --git a/bsp/inc/bsp_mb26.h b/bsp/inc/bsp_nt26k.h similarity index 71% rename from bsp/inc/bsp_mb26.h rename to bsp/inc/bsp_nt26k.h index a867fa9..304c024 100644 --- a/bsp/inc/bsp_mb26.h +++ b/bsp/inc/bsp_nt26k.h @@ -3,30 +3,20 @@ * @Date: 2024-10-09 08:42:14 * @LastEditors: mbw && 1600520629@qq.com * @LastEditTime: 2024-10-17 09:26:13 - * @FilePath: \JT-DT-YD4N02A_RTT_MRS-4G\bsp\inc\bsp_mb26.h + * @FilePath: \JT-DT-YD4N02A_RTT_MRS-4G\bsp\inc\bsp_nt26k.h * @Description: * @ * @Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. */ -/*** - * @Author: mbw - * @Date: 2024-10-09 08:42:14 - * @LastEditors: mbw && 1600520629@qq.com - * @LastEditTime: 2024-10-16 09:03:41 - * @FilePath: \JT-DT-YD4N02A_RTT_MRS-4G\bsp\inc\bsp_mb26.h - * @Description: - * @ - * @Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. - */ -#include +#include #include "drv_gpio.h" -#define MB26_PWR_EN_PIN GET_PIN(B, 3) -#define MB26_RST_PIN GET_PIN(A, 11) -#define MB26_WKP_PIN GET_PIN(C, 7) +#define NT26K_PWR_EN_PIN GET_PIN(B, 3) +#define NT26K_RST_PIN GET_PIN(A, 11) +#define NT26K_WKP_PIN GET_PIN(C, 7) -#define MB26_SAMPLE_DEIVCE_NAME "mb26" +#define NT26K_SAMPLE_DEIVCE_NAME "nt26k" /*默认参数*/ #define DEVICE_MANUFACTURE 0x4454 // DT @@ -44,7 +34,7 @@ #define DATA_SERIAL_NUM 0x0001 // 1 /*设备类型*/ -#define DEVICE_TYPE_MB26 0x20 +#define DEVICE_TYPE_NT26K 0x20 /*事件类型*/ #define EVENT_TYPE_HEARTBEAT 0x30 // 心跳事件 #define EVENT_TYPE_SELF_CHECK 0x31 // 自检事件 @@ -84,7 +74,7 @@ #define MAX_DATA_LEN 256 // 数据长度 -#define MB26_DEFIENE_DATA "000000000000000000000000000000" +#define NT26K_DEFIENE_DATA "000000000000000000000000000000" #define DEVICE_DEFINE 1 //具备该设备功能 @@ -96,27 +86,27 @@ typedef enum { /****************优先级最低***************** */ - kMb26HeartbeatEvent, // 定时心跳事件 - kMb26SilenceEvent, // 消音事件 - kMb26ExceptionEvent, // 异常事件 - kMb26ValveStatusEvent, // 电磁阀状态改变事件 - kMb26FanStatusEvent, // 风机状态改变事件 - kMb26TempAnomalyEvent, // 产品工作温度异常事件 - kMb26AlarmEvent, // 报警事件 - kMb26AlarmRcyEvent, // 报警恢复事件 - kMb26FaultEvent, // 故障事件 - kMb26FaultRcyEvent, // 故障恢复事件 - kMb26DeviceFailureEvent, // 设备失效事件 - kMb26TimeCalibrationEvent, // 时间校准事件 + kNt26kHeartbeatEvent, // 定时心跳事件 + kNt26kSilenceEvent, // 消音事件 + kNt26kExceptionEvent, // 异常事件 + kNt26kValveStatusEvent, // 电磁阀状态改变事件 + kNt26kFanStatusEvent, // 风机状态改变事件 + kNt26kTempAnomalyEvent, // 产品工作温度异常事件 + kNt26kAlarmEvent, // 报警事件 + kNt26kAlarmRcyEvent, // 报警恢复事件 + kNt26kFaultEvent, // 故障事件 + kNt26kFaultRcyEvent, // 故障恢复事件 + kNt26kDeviceFailureEvent, // 设备失效事件 + kNt26kTimeCalibrationEvent, // 时间校准事件 /**********************优先级第三************************* */ - kMb26SelfCheckEvent, // 自检事件 + kNt26kSelfCheckEvent, // 自检事件 /**********************优先级第二************************* */ - kMb26PowerDownEvent, // 掉电事件 + kNt26kPowerDownEvent, // 掉电事件 /**********************优先级第一************************* */ - kMb26PowerOnEvent, // 上电事件 + kNt26kPowerOnEvent, // 上电事件 - kMb26MaxEventcnt // 最大事件计数 -} Mb26Event; // 当前所处的事件类型 + kNt26kMaxEventcnt // 最大事件计数 +} Nt26kEvent; // 当前所处的事件类型 typedef enum { @@ -128,13 +118,13 @@ typedef enum kSensorFaultStatus, // 传感器故障触发状态 kSensorRecoveredStatus, // 传感器故障解除状态 kPowerDownStatus, // 掉电状态 -} Mb26Status; // 当前所处的上报状态 +} Nt26kStatus; // 当前所处的上报状态 typedef struct { - Mb26Event current_event;//当前事件 - Mb26Event last_event;//上次事件 -}Mb26EventIndex; + Nt26kEvent current_event;//当前事件 + Nt26kEvent last_event;//上次事件 +}Nt26kEventIndex; struct __attribute__((packed)) DataBody @@ -165,7 +155,7 @@ struct __attribute__((packed)) DataBody }; // 定义数据帧结构体 -struct __attribute__((packed)) Mb26DataFrame +struct __attribute__((packed)) Nt26kDataFrame { uint8_t header[3]; // 帧头 uint8_t version; // 协议版本 @@ -178,7 +168,7 @@ struct __attribute__((packed)) Mb26DataFrame uint8_t tail[3]; // 帧尾 }; -struct __attribute__((packed)) Mb26Data +struct __attribute__((packed)) Nt26kData { rt_uint8_t device_type; // 设备类型 rt_uint8_t event_type; // 事件类型 @@ -186,7 +176,7 @@ struct __attribute__((packed)) Mb26Data rt_uint8_t res_num; }; -struct __attribute__((packed)) Mb26RecvData +struct __attribute__((packed)) Nt26kRecvData { rt_uint8_t header[3]; // 帧头 rt_uint8_t version; // 协议版本 @@ -194,27 +184,27 @@ struct __attribute__((packed)) Mb26RecvData rt_uint16_t datanumber; // 数据序列号 rt_uint8_t cmd; // 命令位 rt_uint16_t datalen; // 数据长度 - struct Mb26Data recv_data; // 接收数据体 + struct Nt26kData recv_data; // 接收数据体 rt_uint16_t crc16; // 校验位 rt_uint8_t tail[3]; // 帧尾 }; -struct Mb26_Ops +struct Nt26k_Ops { struct DataBody *body; - struct Mb26DataFrame *frame; - struct Mb26RecvData *recv; - int (*init)(struct Mb26_Ops *ops, rt_uint8_t version); - int (*update_data)(struct Mb26_Ops *ops, rt_uint8_t device_type, rt_uint8_t cmd); - int (*send)(struct Mb26_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd, rt_uint8_t device_type, rt_uint8_t event_type); - int (*Resp)(struct Mb26_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd, rt_uint8_t device_type, rt_uint8_t event_type, char *data, rt_uint8_t res); - int (*Recv)(struct Mb26_Ops *ops, char *data); // 解析数据 + struct Nt26kDataFrame *frame; + struct Nt26kRecvData *recv; + int (*init)(struct Nt26k_Ops *ops, rt_uint8_t version); + int (*update_data)(struct Nt26k_Ops *ops, rt_uint8_t device_type, rt_uint8_t cmd); + int (*send)(struct Nt26k_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd, rt_uint8_t device_type, rt_uint8_t event_type); + int (*Resp)(struct Nt26k_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd, rt_uint8_t device_type, rt_uint8_t event_type, char *data, rt_uint8_t res); + int (*Recv)(struct Nt26k_Ops *ops, char *data); // 解析数据 }; -extern struct Mb26_Ops mb26_ops; -extern rt_sem_t mb26_recv_sem; -extern rt_uint8_t mb26_conncet_tcp_flag; +extern struct Nt26k_Ops nt26k_ops; +extern rt_sem_t nt26k_recv_sem; +extern rt_uint8_t nt26k_conncet_tcp_flag; extern rt_uint8_t power_on_send_flag; -int mb26_device_register(void); -int BSP_Mb26_Thread_Init(void); -void Mb26_Send_Event(Mb26Event event_type); +int nt26k_device_register(void); +int BSP_Nt26k_Thread_Init(void); +void Nt26k_Send_Event(Nt26kEvent event_type); diff --git a/bsp/src/at_device_mb26.c b/bsp/src/at_device_nt26k.c similarity index 69% rename from bsp/src/at_device_mb26.c rename to bsp/src/at_device_nt26k.c index 4673eeb..07c67af 100644 --- a/bsp/src/at_device_mb26.c +++ b/bsp/src/at_device_nt26k.c @@ -2,8 +2,8 @@ * @Author : stark1898y 1658608470@qq.com * @Date : 2024-09-04 13:33:49 * @LastEditors: mbw && 1600520629@qq.com - * @LastEditTime: 2024-12-30 09:35:16 - * @FilePath: \JT-DT-YD4N02A_RTT_MRS-4G\bsp\src\at_device_mb26.c + * @LastEditTime: 2024-12-30 17:19:08 + * @FilePath: \JT-DT-YD4N02A_RTT_MRS-4G\bsp\src\at_device_nt26k.c * @Description : * * Copyright (c) 2024 by yzy, All Rights Reserved. @@ -21,101 +21,103 @@ #include #include #include "bsp_flash.h" -#include -#include "bsp_mb26.h" +#include +#include "bsp_nt26k.h" #include "user_sys.h" #include "bsp_rtc.h" #include "bsp_led.h" #include "bsp_rng.h" -#define LOG_TAG "at.dev.mb26" +#define LOG_TAG "at.dev.nt26k" #include #include "pin.h" -#if NB_MODULE_SWITCH == 1 +#if IOT_MODULE_SWITCH == 1 -#define MB26_POWER_OFF RT_FALSE -#define MB26_POWER_ON RT_TRUE -#define MB26_POWER_ON_TIME 3 -#define MB26_POWER_OFF_TIME 4 +#define NT26K_POWER_OFF RT_FALSE +#define NT26K_POWER_ON RT_TRUE +#define NT26K_POWER_ON_TIME 3 +#define NT26K_POWER_OFF_TIME 4 #define AT_CLIENT_RECV_BUFF_LEN 512 #define AT_DEFAULT_TIMEOUT 5000 -#ifdef AT_DEVICE_USING_MB26 -#define MB26_WAIT_CONNECT_TIME 5000 -#define MB26_THREAD_STACK_SIZE 4096 -#define MB26_THREAD_PRIORITY (RT_THREAD_PRIORITY_MAX / 2) -char data_buf[AT_CLIENT_RECV_BUFF_LEN] = {0}; +#ifdef AT_DEVICE_USING_NT26K +#define NT26K_WAIT_CONNECT_TIME 5000 +#define NT26K_THREAD_STACK_SIZE 4096 +#define NT26K_THREAD_PRIORITY (RT_THREAD_PRIORITY_MAX / 2) -mb26_sys_info mb26 = {0}; -struct rt_completion mb26_init_complate; +char data_buf[AT_CLIENT_RECV_BUFF_LEN] = {0}; +rt_uint8_t recv_byte_buf[AT_CLIENT_RECV_BUFF_LEN] = {0}; + +nt26k_sys_info nt26k = {0}; +struct rt_completion nt26k_init_complate; volatile rt_uint8_t socket_id = 0; -rt_err_t Mb26_Reset(struct at_device *device) +rt_err_t Nt26k_Reset(struct at_device *device) { // at_client_send("AT+NRB\r\n", rt_strlen("AT+NRB\r\n")); - LOG_I("MB26 Reset"); - rt_pin_mode(MB26_RST_PIN, PIN_MODE_OUTPUT); - rt_pin_write(MB26_RST_PIN, PIN_LOW); + LOG_I("NT26K Reset"); + rt_pin_mode(NT26K_RST_PIN, PIN_MODE_OUTPUT); + rt_pin_write(NT26K_RST_PIN, PIN_LOW); rt_thread_mdelay(10); - rt_pin_write(MB26_RST_PIN, PIN_HIGH); + rt_pin_write(NT26K_RST_PIN, PIN_HIGH); rt_thread_mdelay(50); - rt_pin_write(MB26_RST_PIN, PIN_LOW); + rt_pin_write(NT26K_RST_PIN, PIN_LOW); return RT_EOK; } -static int mb26_power_on(struct at_device *device) +static int nt26k_power_on(struct at_device *device) { - struct at_device_mb26 *mb26 = RT_NULL; + struct at_device_nt26k *nt26k = RT_NULL; - mb26 = (struct at_device_mb26 *)device->user_data; - mb26->power_status = RT_TRUE; + nt26k = (struct at_device_nt26k *)device->user_data; + nt26k->power_status = RT_TRUE; - /* not nead to set pin configuration for mb26 device power on */ - if (mb26->pwr_en_pin == -1) + /* not nead to set pin configuration for nt26k device power on */ + if (nt26k->pwr_en_pin == -1) { return (RT_EOK); } - rt_pin_write(mb26->pwr_en_pin, PIN_LOW); + rt_pin_write(nt26k->pwr_en_pin, PIN_LOW); rt_thread_mdelay(10); - rt_pin_write(mb26->pwr_en_pin, PIN_HIGH); + rt_pin_write(nt26k->pwr_en_pin, PIN_HIGH); return (RT_EOK); } -static rt_err_t mb26_power_off(struct at_device *device) +static rt_err_t nt26k_power_off(struct at_device *device) { - struct at_device_mb26 *mb26 = RT_NULL; + struct at_device_nt26k *nt26k = RT_NULL; - mb26 = (struct at_device_mb26 *)device->user_data; - if (mb26->power_status != RT_FALSE) + nt26k = (struct at_device_nt26k *)device->user_data; + if (nt26k->power_status != RT_FALSE) { - rt_pin_mode(mb26->pwr_en_pin, PIN_MODE_OUTPUT); - rt_pin_write(mb26->pwr_en_pin, PIN_HIGH); + rt_pin_mode(nt26k->pwr_en_pin, PIN_MODE_OUTPUT); + rt_pin_write(nt26k->pwr_en_pin, PIN_HIGH); } return RT_EOK; } #ifdef TEST_ENABLE -void TEST_Mb26_Reset() +void TEST_Nt26k_Reset() { - Mb26_Reset(RT_NULL); + Nt26k_Reset(RT_NULL); } -MSH_CMD_EXPORT(TEST_Mb26_Reset, "test_mb26_reset"); +MSH_CMD_EXPORT(TEST_Nt26k_Reset, "test_nt26k_reset"); #endif -static int mb26_sleep(struct at_device *device) +static int nt26k_sleep(struct at_device *device) { at_response_t resp = RT_NULL; - struct at_device_mb26 *mb26 = RT_NULL; + struct at_device_nt26k *nt26k = RT_NULL; - mb26 = (struct at_device_mb26 *)device->user_data; - if (!mb26->power_status) // power off + nt26k = (struct at_device_nt26k *)device->user_data; + if (!nt26k->power_status) // power off { return (RT_EOK); } - if (mb26->sleep_status) // is sleep status + if (nt26k->sleep_status) // is sleep status { return (RT_EOK); } @@ -147,24 +149,24 @@ static int mb26_sleep(struct at_device *device) return (-RT_ERROR); } - mb26->sleep_status = RT_TRUE; + nt26k->sleep_status = RT_TRUE; at_delete_resp(resp); return (RT_EOK); } -static int mb26_wakeup(struct at_device *device) +static int nt26k_wakeup(struct at_device *device) { at_response_t resp = RT_NULL; - struct at_device_mb26 *mb26 = RT_NULL; + struct at_device_nt26k *nt26k = RT_NULL; - mb26 = (struct at_device_mb26 *)device->user_data; - if (!mb26->power_status) // power off + nt26k = (struct at_device_nt26k *)device->user_data; + if (!nt26k->power_status) // power off { LOG_E("the power is off and the wake-up cannot be performed"); return (-RT_ERROR); } - if (!mb26->sleep_status) // no sleep status + if (!nt26k->sleep_status) // no sleep status { return (RT_EOK); } @@ -177,13 +179,13 @@ static int mb26_wakeup(struct at_device *device) return (-RT_ERROR); } - if (mb26->wkp_pin != -1) + if (nt26k->wkp_pin != -1) { - rt_pin_write(mb26->wkp_pin, PIN_LOW); + rt_pin_write(nt26k->wkp_pin, PIN_LOW); rt_thread_mdelay(100); - rt_pin_write(mb26->wkp_pin, PIN_HIGH); + rt_pin_write(nt26k->wkp_pin, PIN_HIGH); rt_thread_mdelay(100); - rt_pin_write(mb26->wkp_pin, PIN_LOW); + rt_pin_write(nt26k->wkp_pin, PIN_LOW); } /* disable sleep mode */ @@ -202,7 +204,7 @@ static int mb26_wakeup(struct at_device *device) return (-RT_ERROR); } - mb26->sleep_status = RT_FALSE; + nt26k->sleep_status = RT_FALSE; at_delete_resp(resp); return (RT_EOK); @@ -214,35 +216,35 @@ static void urc_tcp_recv(struct at_client *client, const char *data, rt_size_t s rt_uint16_t crc16 = 0; rt_uint16_t rec_crc16 = 0; char crc16_buf[6] = {0}; - rt_uint8_t recv_byte_buf[AT_CLIENT_RECV_BUFF_LEN] = {0}; + rt_memset(data_buf, 0, sizeof(data_buf)); - if (sscanf(data, "+NSONMI:%*d,%d,%s", &len, data_buf) == 2) + if (sscanf(data, "+QIURC: \"recv\",%*d,%d,%s", &len, data_buf) == 2) { HexStrToBytes(data_buf, recv_byte_buf, len * 2); - LOG_D("mb26 recv data: %s", data_buf); + LOG_D("nt26k recv data: %s", data_buf); crc16 = crc1021(data_buf, len * 2 - 10); // 去掉帧尾三个字节和2个字节的校验值,字符长度为10 rt_strncpy(crc16_buf, data_buf + len * 2 - 10, 4); - LOG_D("mb26 crc16: %04s", crc16_buf); + LOG_D("nt26k crc16: %04s", crc16_buf); rec_crc16 = strtol(crc16_buf, NULL, 16); if (crc16 != rec_crc16) // 看下数据接收的是否正确 { - LOG_E("mb26 recv data error {crc16 [%x]!= rec_crc16[%x]}", crc16, rec_crc16); + LOG_E("nt26k recv data error {crc16 [%x]!= rec_crc16[%x]}", crc16, rec_crc16); } else { /*比较数组的长度和结构体的长度是否一致,如果不一致则数据解析错误,如果一致复制数组值到结构体中*/ - if (len == sizeof(struct Mb26RecvData)) + if (len == sizeof(struct Nt26kRecvData)) { - rt_memset(mb26_ops.recv, 0, sizeof(struct Mb26RecvData)); // 清空结构体 - rt_memcpy(mb26_ops.recv, recv_byte_buf, sizeof(struct Mb26RecvData)); - - rt_sem_release(mb26_recv_sem); + rt_memset(nt26k_ops.recv, 0, sizeof(struct Nt26kRecvData)); // 清空结构体 + rt_memcpy(nt26k_ops.recv, recv_byte_buf, sizeof(struct Nt26kRecvData)); + rt_sem_release(nt26k_recv_sem); + rt_memset(recv_byte_buf, 0, sizeof(recv_byte_buf)); } else { - LOG_E("mb26 recv data error {len [%d]!= sizeof(struct Mb26RecvData)[%d]}", len, sizeof(struct Mb26RecvData)); + LOG_E("nt26k recv data error {len [%d]!= sizeof(struct Nt26kRecvData)[%d]}", len, sizeof(struct Nt26kRecvData)); } } } @@ -251,7 +253,7 @@ static void urc_tcp_recv(struct at_client *client, const char *data, rt_size_t s static void urc_device_reset(struct at_client *client, const char *data, rt_size_t size) { LOG_D("device reset"); - mb26_conncet_tcp_flag = 0; + nt26k_conncet_tcp_flag = 0; } static void urc_tcp_disconnect(struct at_client *client, const char *data, rt_size_t size) @@ -263,18 +265,17 @@ static void urc_tcp_disconnect(struct at_client *client, const char *data, rt_si if ((id == socket_id) && (err_code == 107)) // 107错误一般是服务器没加这个IMEI { LOG_W("socket %d disconnect, error code: %d", id, err_code); - mb26_conncet_tcp_flag = 0; + nt26k_conncet_tcp_flag = 0; } } } static const struct at_urc urc_table[] = { - {"+NSONMI:", "\r\n", urc_tcp_recv}, - {"REBOOTING", "\r\n", urc_device_reset}, // 这个是软件复位时, + {"+QIURC: \"recv\"", "\r\n", urc_tcp_recv}, + {"boot.rom", "\r\n", urc_device_reset}, // 这个是软件复位时, {"Lierda", "\r\n", urc_device_reset}, // 这个时硬件复位时回复 {"+NSOCLI:", "\r\n", urc_tcp_disconnect}, // 这个时硬件复位时回复 }; - void show_resp_info(at_response_t resp) { RT_ASSERT(resp); @@ -291,13 +292,13 @@ void show_resp_info(at_response_t resp) return; } -int at_device_mb26_disconnect_tcp(struct at_device *device) +int at_device_nt26k_disconnect_tcp(struct at_device *device) { -#define MB26_CLOSE_REP_TIME (5 * AT_DEFAULT_TIMEOUT) +#define NT26K_CLOSE_REP_TIME (5 * AT_DEFAULT_TIMEOUT) - if (mb26_conncet_tcp_flag) + if (nt26k_conncet_tcp_flag) { - at_response_t resp = at_create_resp(AT_CLIENT_RECV_BUFF_LEN, 0, MB26_CLOSE_REP_TIME); + at_response_t resp = at_create_resp(AT_CLIENT_RECV_BUFF_LEN, 0, NT26K_CLOSE_REP_TIME); if (resp == RT_NULL) { LOG_E("No memory for response structure!"); @@ -309,13 +310,14 @@ int at_device_mb26_disconnect_tcp(struct at_device *device) at_delete_resp(resp); return -RT_ERROR; } - mb26_conncet_tcp_flag = 0; + nt26k_conncet_tcp_flag = 0; at_delete_resp(resp); } return RT_EOK; } -int at_device_mb26_socket_creat(struct at_device *device) +#if 0 +int at_device_nt26k_socket_creat(struct at_device *device) { at_response_t resp = at_create_resp(AT_CLIENT_RECV_BUFF_LEN, 4, AT_DEFAULT_TIMEOUT); rt_uint8_t retry = (rt_uint8_t)Flash_Get_SysCfg(kNbRetryId); @@ -333,15 +335,15 @@ int at_device_mb26_socket_creat(struct at_device *device) { if (socket_id >= 0) { - LOG_I("mb26 create tcp socket success. socket id: %d", socket_id); + LOG_I("nt26k create tcp socket success. socket id: %d", socket_id); at_delete_resp(resp); return RT_EOK; } } else { - at_device_mb26_disconnect_tcp(device);//这里失败的原因有两种,一种是没有ID返回,一种是返回比较慢,导致错误出现 - LOG_E("mb26 create tcp socket failed. retry %d", retry); + at_device_nt26k_disconnect_tcp(device);//这里失败的原因有两种,一种是没有ID返回,一种是返回比较慢,导致错误出现 + LOG_E("nt26k create tcp socket failed. retry %d", retry); } } rt_thread_mdelay(5000); @@ -349,9 +351,12 @@ int at_device_mb26_socket_creat(struct at_device *device) at_delete_resp(resp); return RT_ERROR; } -static int at_device_mb26_connect_tcp(struct at_device *device) +#endif + +static int at_device_nt26k_connect_tcp(struct at_device *device) { - if (mb26_conncet_tcp_flag) + int err_code = 0; + if (nt26k_conncet_tcp_flag) return RT_EOK; ASSERT(device); rt_uint8_t retry = (rt_uint8_t)Flash_Get_SysCfg(kNbRetryId); @@ -362,25 +367,6 @@ static int at_device_mb26_connect_tcp(struct at_device *device) at_delete_resp(resp); return -RT_ENOMEM; } - if (at_device_mb26_socket_creat(device) != RT_EOK) - { - LOG_E("mb26 connect to tcp server failed."); - at_delete_resp(resp); - return -RT_ERROR; - } - - /* read data from tcp server */ - if (at_obj_exec_cmd(device->client, resp, TCP_READ_SET_CMD, socket_id, AT_CLIENT_RECV_BUFF_LEN) != RT_EOK) - { - at_delete_resp(resp); - return RT_ERROR; - } - /* enable tcp notification */ - if (at_obj_exec_cmd(device->client, resp, TCP_SET_NSONMI, AT_NSONMI_MODE_DEFAULT) != RT_EOK) - { - at_delete_resp(resp); - return RT_ERROR; - } if (Flash_Get_Sever_Data(&sever_info) != RT_EOK) { LOG_E("Get Sever Data Failed"); @@ -391,19 +377,27 @@ static int at_device_mb26_connect_tcp(struct at_device *device) resp = at_create_resp(32, 4, AT_DEFAULT_TIMEOUT); for (size_t i = 0; i < retry; i++) { - if (at_obj_exec_cmd(device->client, resp, TCP_CONNECT_CMD, socket_id, sever_info.server_url, sever_info.server_port) == RT_EOK) + if (at_obj_exec_cmd(device->client, resp, TCP_CONNECT_CMD, sever_info.server_url, sever_info.server_port) == RT_EOK) { - if (at_resp_parse_line_args_by_kw(resp, "+NSOCO:", "+NSOCO:%d", socket_id) > 0) + if (at_resp_parse_line_args_by_kw(resp, "+QIOPEN:", "+QIOPEN:%d,%d", socket_id, err_code) > 0) { - LOG_D("mb26 connect to tcp server success"); - mb26_conncet_tcp_flag = 1; - at_delete_resp(resp); - return RT_EOK; + if (err_code == 0) + { + LOG_D("nt26k connect to tcp server success"); + nt26k_conncet_tcp_flag = 1; + at_delete_resp(resp); + return RT_EOK; + } + else + { + at_device_nt26k_disconnect_tcp(device); + LOG_E("nt26k connect to tcp server failed. error code: %d",err_code); + } } else { - mb26_conncet_tcp_flag = 0; - LOG_E("mb26 connect to tcp server failed."); + nt26k_conncet_tcp_flag = 0; + LOG_E("nt26k connect to tcp server failed."); } } rt_thread_mdelay(5000); @@ -414,14 +408,15 @@ static int at_device_mb26_connect_tcp(struct at_device *device) int at_send_data(struct at_device *device, const char *data, rt_size_t size) { -#define MB26_SEND_RESP_TIME (3000) - +#define NT26K_SEND_RESP_TIME (3000) + const char *line_buffer = RT_NULL; + int len = 0; rt_uint8_t retry = 0; - at_response_t resp = at_create_resp(AT_CLIENT_RECV_BUFF_LEN / 4, 0, MB26_SEND_RESP_TIME); + at_response_t resp = at_create_resp(AT_CLIENT_RECV_BUFF_LEN / 4, 2, NT26K_SEND_RESP_TIME); rt_uint8_t max_retry_count = (rt_uint8_t)Flash_Get_SysCfg(kNbRetryId); if (resp == RT_NULL) { - LOG_E("no memory for mb26 device(%s) response structure.", device->name); + LOG_E("no memory for nt26k device(%s) response structure.", device->name); at_delete_resp(resp); return -RT_ERROR; } @@ -429,17 +424,17 @@ int at_send_data(struct at_device *device, const char *data, rt_size_t size) while (retry < max_retry_count) { rt_thread_mdelay(Get_RandomNumber());//获取一个随机延时 - if (at_obj_exec_cmd(device->client, resp, TCP_SEND_DATA, socket_id, size, data, AT_SEND_MSOSD_FLAG_DEFAULT) == RT_EOK) + if (at_obj_exec_cmd(device->client, resp, TCP_SEND_DATA, socket_id, data) == RT_EOK) { - if (at_resp_get_line_by_kw(resp, "OK") != RT_NULL) + if ((line_buffer = at_resp_get_line(resp, 2)) != RT_NULL) { - at_delete_resp(resp); - return RT_EOK; - } - else - { - LOG_E("send data error, retry %d times, socket_id: %d", retry + 1, socket_id); - } + if (rt_strstr(line_buffer, "SEND OK") != RT_NULL) + { + LOG_D("send data success, socket_id: %d", socket_id); + at_delete_resp(resp); + return RT_EOK; + } + } } retry++; rt_thread_mdelay(1000); @@ -449,28 +444,28 @@ int at_send_data(struct at_device *device, const char *data, rt_size_t size) return -RT_ERROR; } -static int mb26_check_link_status(struct at_device *device) +static int nt26k_check_link_status(struct at_device *device) { at_response_t resp = RT_NULL; - struct at_device_mb26 *mb26 = RT_NULL; + struct at_device_nt26k *nt26k = RT_NULL; int result = -RT_ERROR; - mb26 = (struct at_device_mb26 *)device->user_data; - if (!mb26->power_status) // power off + nt26k = (struct at_device_nt26k *)device->user_data; + if (!nt26k->power_status) // power off { LOG_D("the power is off,power on device"); device->class->device_ops->control(device, AT_DEVICE_CTRL_POWER_ON, RT_NULL); // 开启设备 } - if (mb26->sleep_status) // is sleep status + if (nt26k->sleep_status) // is sleep status { - if (mb26->wkp_pin != -1) + if (nt26k->wkp_pin != -1) { - rt_pin_write(mb26->wkp_pin, PIN_LOW); + rt_pin_write(nt26k->wkp_pin, PIN_LOW); rt_thread_mdelay(100); - rt_pin_write(mb26->wkp_pin, PIN_HIGH); + rt_pin_write(nt26k->wkp_pin, PIN_HIGH); rt_thread_mdelay(100); - rt_pin_write(mb26->wkp_pin, PIN_LOW); + rt_pin_write(nt26k->wkp_pin, PIN_LOW); } } @@ -495,7 +490,7 @@ static int mb26_check_link_status(struct at_device *device) } } - if (mb26->sleep_status) // is sleep status + if (nt26k->sleep_status) // is sleep status { if (at_obj_exec_cmd(device->client, resp, "AT+CPSMS=1,,,,\"00100010\"") != RT_EOK) { @@ -508,12 +503,12 @@ static int mb26_check_link_status(struct at_device *device) return (result); } -/* ============================= mb26 network interface operations ============================= */ -/* set mb26 network interface device status and address information */ -static int mb26_netdev_set_info(struct netdev *netdev) +/* ============================= nt26k network interface operations ============================= */ +/* set nt26k network interface device status and address information */ +static int nt26k_netdev_set_info(struct netdev *netdev) { -#define MB26_INFO_RESP_SIZE 128 -#define MB26_INFO_RESP_TIMO rt_tick_from_millisecond(1000) +#define NT26K_INFO_RESP_SIZE 128 +#define NT26K_INFO_RESP_TIMO rt_tick_from_millisecond(1000) int result = RT_EOK; ip_addr_t addr; @@ -534,7 +529,7 @@ static int mb26_netdev_set_info(struct netdev *netdev) netdev_low_level_set_link_status(netdev, RT_TRUE); netdev_low_level_set_dhcp_status(netdev, RT_TRUE); - resp = at_create_resp(MB26_INFO_RESP_SIZE, 0, MB26_INFO_RESP_TIMO); + resp = at_create_resp(NT26K_INFO_RESP_SIZE, 0, NT26K_INFO_RESP_TIMO); if (resp == RT_NULL) { LOG_E("no memory for resp create."); @@ -584,15 +579,15 @@ __exit: } /** - * @brief check mb26 network interface device status + * @brief check nt26k network interface device status * - * @param netdev: mb26 network interface device + * @param netdev: nt26k network interface device */ -static void mb26_check_link_status_entry(void *parameter) +static void nt26k_check_link_status_entry(void *parameter) { -#define MB26_LINK_DELAY_TIME (60 * RT_TICK_PER_SECOND) +#define NT26K_LINK_DELAY_TIME (60 * RT_TICK_PER_SECOND) -#define MB26_LINK_STATUS_OK 1 +#define NT26K_LINK_STATUS_OK 1 int link_status; struct at_device *device = RT_NULL; @@ -607,26 +602,26 @@ static void mb26_check_link_status_entry(void *parameter) while (1) { - link_status = mb26_check_link_status(device); + link_status = nt26k_check_link_status(device); if (link_status < 0) { - rt_thread_mdelay(MB26_LINK_DELAY_TIME); + rt_thread_mdelay(NT26K_LINK_DELAY_TIME); continue; } /* check the network interface device link status */ - if ((MB26_LINK_STATUS_OK == link_status) != netdev_is_link_up(netdev)) + if ((NT26K_LINK_STATUS_OK == link_status) != netdev_is_link_up(netdev)) { - netdev_low_level_set_link_status(netdev, (MB26_LINK_STATUS_OK == link_status)); + netdev_low_level_set_link_status(netdev, (NT26K_LINK_STATUS_OK == link_status)); } - rt_thread_delay(MB26_LINK_DELAY_TIME); + rt_thread_delay(NT26K_LINK_DELAY_TIME); } } -static int mb26_netdev_check_link_status(struct netdev *netdev) +static int nt26k_netdev_check_link_status(struct netdev *netdev) { -#define MB26_LINK_THREAD_TICK 20 -#define MB26_LINK_THREAD_STACK_SIZE (1024 + 512) -#define MB26_LINK_THREAD_PRIORITY (RT_THREAD_PRIORITY_MAX - 2) +#define NT26K_LINK_THREAD_TICK 20 +#define NT26K_LINK_THREAD_STACK_SIZE (1024 + 512) +#define NT26K_LINK_THREAD_PRIORITY (RT_THREAD_PRIORITY_MAX - 2) rt_thread_t tid; char tname[RT_NAME_MAX] = {0}; @@ -635,9 +630,9 @@ static int mb26_netdev_check_link_status(struct netdev *netdev) rt_snprintf(tname, RT_NAME_MAX, "%s", netdev->name); - /* create mb26 link status polling thread */ - tid = rt_thread_create(tname, mb26_check_link_status_entry, (void *)netdev, - MB26_LINK_THREAD_STACK_SIZE, MB26_LINK_THREAD_PRIORITY, MB26_LINK_THREAD_TICK); + /* create nt26k link status polling thread */ + tid = rt_thread_create(tname, nt26k_check_link_status_entry, (void *)netdev, + NT26K_LINK_THREAD_STACK_SIZE, NT26K_LINK_THREAD_PRIORITY, NT26K_LINK_THREAD_TICK); if (tid != RT_NULL) { rt_thread_startup(tid); @@ -646,9 +641,9 @@ static int mb26_netdev_check_link_status(struct netdev *netdev) return RT_EOK; } -static int mb26_net_init(struct at_device *device); +static int nt26k_net_init(struct at_device *device); -static int mb26_netdev_set_up(struct netdev *netdev) +static int nt26k_netdev_set_up(struct netdev *netdev) { struct at_device *device = RT_NULL; @@ -661,7 +656,7 @@ static int mb26_netdev_set_up(struct netdev *netdev) if (device->is_init == RT_FALSE) { - mb26_net_init(device); + nt26k_net_init(device); device->is_init = RT_TRUE; netdev_low_level_set_status(netdev, RT_TRUE); @@ -671,7 +666,7 @@ static int mb26_netdev_set_up(struct netdev *netdev) return RT_EOK; } -static int mb26_netdev_set_down(struct netdev *netdev) +static int nt26k_netdev_set_down(struct netdev *netdev) { struct at_device *device = RT_NULL; @@ -684,7 +679,7 @@ static int mb26_netdev_set_down(struct netdev *netdev) if (device->is_init == RT_TRUE) { - mb26_power_off(device); + nt26k_power_off(device); device->is_init = RT_FALSE; netdev_low_level_set_status(netdev, RT_FALSE); @@ -694,10 +689,10 @@ static int mb26_netdev_set_down(struct netdev *netdev) return RT_EOK; } -static int mb26_netdev_set_dns_server(struct netdev *netdev, uint8_t dns_num, ip_addr_t *dns_server) +static int nt26k_netdev_set_dns_server(struct netdev *netdev, uint8_t dns_num, ip_addr_t *dns_server) { -#define MB26_DNS_RESP_LEN 64 -#define MB26_DNS_RESP_TIMEO rt_tick_from_millisecond(300) +#define NT26K_DNS_RESP_LEN 64 +#define NT26K_DNS_RESP_TIMEO rt_tick_from_millisecond(300) int result = RT_EOK; at_response_t resp = RT_NULL; @@ -713,7 +708,7 @@ static int mb26_netdev_set_dns_server(struct netdev *netdev, uint8_t dns_num, ip return -RT_ERROR; } - resp = at_create_resp(MB26_DNS_RESP_LEN, 0, MB26_DNS_RESP_TIMEO); + resp = at_create_resp(NT26K_DNS_RESP_LEN, 0, NT26K_DNS_RESP_TIMEO); if (resp == RT_NULL) { LOG_D("no memory for resp create."); @@ -742,7 +737,7 @@ __exit: } #ifdef NETDEV_USING_PING -static int mb26_netdev_ping(struct netdev *netdev, const char *host, size_t data_len, +static int nt26k_netdev_ping(struct netdev *netdev, const char *host, size_t data_len, uint32_t timeout, struct netdev_ping_resp *ping_resp #if RT_VER_NUM >= 0x50100 , @@ -750,13 +745,13 @@ static int mb26_netdev_ping(struct netdev *netdev, const char *host, size_t data #endif ) { -#define MB26_PING_RESP_SIZE 128 -#define MB26_PING_IP_SIZE 16 -#define MB26_PING_TIMEO (MB26_CON_REP_TIME) +#define NT26K_PING_RESP_SIZE 128 +#define NT26K_PING_IP_SIZE 16 +#define NT26K_PING_TIMEO (NT26K_CON_REP_TIME) rt_err_t result = RT_EOK; int response = -1, recv_data_len, ping_time, ttl; - char ip_addr[MB26_PING_IP_SIZE] = {0}; + char ip_addr[NT26K_PING_IP_SIZE] = {0}; at_response_t resp = RT_NULL; struct at_device *device = RT_NULL; @@ -775,7 +770,7 @@ static int mb26_netdev_ping(struct netdev *netdev, const char *host, size_t data return -RT_ERROR; } - resp = at_create_resp(MB26_PING_RESP_SIZE, 4, MB26_PING_TIMEO); + resp = at_create_resp(NT26K_PING_RESP_SIZE, 4, NT26K_PING_TIMEO); if (resp == RT_NULL) { LOG_E("no memory for resp create"); @@ -830,22 +825,22 @@ __exit: } #endif /* NETDEV_USING_PING */ -const struct netdev_ops mb26_netdev_ops = +const struct netdev_ops nt26k_netdev_ops = { - mb26_netdev_set_up, - mb26_netdev_set_down, + nt26k_netdev_set_up, + nt26k_netdev_set_down, RT_NULL, - mb26_netdev_set_dns_server, + nt26k_netdev_set_dns_server, RT_NULL, #ifdef NETDEV_USING_PING - mb26_netdev_ping, + nt26k_netdev_ping, #endif RT_NULL, }; -static struct netdev *mb26_netdev_add(const char *netdev_name) +static struct netdev *nt26k_netdev_add(const char *netdev_name) { #define ETHERNET_MTU 1380 #define HWADDR_LEN 8 @@ -865,7 +860,7 @@ static struct netdev *mb26_netdev_add(const char *netdev_name) } netdev->mtu = ETHERNET_MTU; - netdev->ops = &mb26_netdev_ops; + netdev->ops = &nt26k_netdev_ops; netdev->hwaddr_len = HWADDR_LEN; #ifdef SAL_USING_AT @@ -879,10 +874,10 @@ static struct netdev *mb26_netdev_add(const char *netdev_name) return netdev; } -/* ============================= mb26 device operations ============================= */ +/* ============================= nt26k device operations ============================= */ -/* initialize for mb26 */ -static void mb26_init_thread_entry(void *parameter) +/* initialize for nt26k */ +static void nt26k_init_thread_entry(void *parameter) { #define INIT_RETRY 5 #define CPIN_RETRY 5 @@ -906,16 +901,16 @@ static void mb26_init_thread_entry(void *parameter) } LOG_D("start init %s device.", device->name); - mb26_power_off(device); + nt26k_power_off(device); rt_thread_mdelay(100); while (retry_num--) { - /* power on the mb26 device */ - mb26_power_on(device); + /* power on the nt26k device */ + nt26k_power_on(device); rt_thread_mdelay(1000); - /* wait mb26 startup finish, send AT every 500ms, if receive OK, SYNC success*/ - if (at_client_obj_wait_connect(client, MB26_WAIT_CONNECT_TIME)) + /* wait nt26k startup finish, send AT every 500ms, if receive OK, SYNC success*/ + if (at_client_obj_wait_connect(client, NT26K_WAIT_CONNECT_TIME)) { result = -RT_ETIMEOUT; goto __exit; @@ -934,30 +929,24 @@ static void mb26_init_thread_entry(void *parameter) result = -RT_ERROR; goto __exit; } - - /* disable eDRX mode */ - if (at_obj_exec_cmd(device->client, resp, "AT+CEDRXS=0") != RT_EOK) - { - result = -RT_ERROR; - goto __exit; - } - /* disable PSM mode */ if (at_obj_exec_cmd(device->client, resp, "AT+CPSMS=0") != RT_EOK) { result = -RT_ERROR; goto __exit; } - - /* Get the baudrate */ - if (at_obj_exec_cmd(device->client, resp, "AT+IPR?") != RT_EOK) + /*AT+QICFG="dataformat" 设置收发模式*/ + if (at_obj_exec_cmd(device->client, resp, "AT+QICFG=\"dataformat\",%d,%d",AT_NSONMI_MODE_DEFAULT, AT_NSONMI_MODE_DEFAULT) != RT_EOK) + { + result = -RT_ERROR; + goto __exit; + } + /*设置显示模式*/ + if (at_obj_exec_cmd(device->client, resp, "AT+QICFG=\"viewmode\",1") != RT_EOK) { result = -RT_ERROR; goto __exit; } - at_resp_parse_line_args_by_kw(resp, "+IPR:", "+IPR: %d", &i); - LOG_D("%s device baudrate %d", device->name, i); - /* get module version */ if (at_obj_exec_cmd(device->client, resp, "AT+CGMR") != RT_EOK) { @@ -970,20 +959,17 @@ static void mb26_init_thread_entry(void *parameter) } /* set network interface device hardware address(IMEI) */ { -#define MB26_NETDEV_HWADDR_LEN 8 -#define MB26_IMEI_LEN 15 +#define NT26K_NETDEV_HWADDR_LEN 8 +#define NT26K_IMEI_LEN 15 - char imei[MB26_IMEI_LEN] = {0}; - // int i = 0, j = 0; - - /* send "AT+GSN" commond to get device IMEI */ - if (at_obj_exec_cmd(device->client, resp, "AT+CGSN=1") != RT_EOK) + char imei[NT26K_IMEI_LEN] = {0}; + /* send "AT+CGSN" commond to get device IMEI */ + if (at_obj_exec_cmd(device->client, resp, "AT+CGSN") != RT_EOK) { result = -RT_ERROR; goto __exit; } - - if (at_resp_parse_line_args_by_kw(resp, "+CGSN:", "+CGSN:%s", imei) <= 0) + if (at_resp_parse_line_args_by_kw(resp, "86", "%s", imei) <= 0) { LOG_E("%s device prase \"AT+CGSN=1\" cmd error.", device->name); result = -RT_ERROR; @@ -992,8 +978,8 @@ static void mb26_init_thread_entry(void *parameter) LOG_D("%s device IMEI number: %s", device->name, imei); - rt_memcpy(mb26.imei, imei, MB26_IMEI_LEN); - Flash_Sys_Cfg(kNbImeiId, mb26.imei, MB26_IMEI_LEN); + rt_memcpy(nt26k.imei, imei, NT26K_IMEI_LEN); + Flash_Sys_Cfg(kNbImeiId, nt26k.imei, NT26K_IMEI_LEN); } /* check SIM card */ for (i = 0; i < CPIN_RETRY; i++) @@ -1035,9 +1021,9 @@ static void mb26_init_thread_entry(void *parameter) /* set network interface device hardware iccid */ { -#define MB26_ICCID_LEN 20 +#define NT26K_ICCID_LEN 20 - char iccid[MB26_ICCID_LEN] = {0}; + char iccid[NT26K_ICCID_LEN] = {0}; /* send "AT+ECICCID" commond to get device iccid */ if (at_obj_exec_cmd(device->client, resp, "AT+ECICCID") != RT_EOK) @@ -1054,16 +1040,16 @@ static void mb26_init_thread_entry(void *parameter) LOG_D("%s device iccid number: %s", device->name, iccid); - rt_memcpy(mb26.iccid, iccid, MB26_ICCID_LEN); - Flash_Sys_Cfg(kNbIccidId, mb26.iccid, MB26_ICCID_LEN); + rt_memcpy(nt26k.iccid, iccid, NT26K_ICCID_LEN); + Flash_Sys_Cfg(kNbIccidId, nt26k.iccid, NT26K_ICCID_LEN); } /* set network interface device hardware imsi */ { -#define MB26_IMSI_LEN 15 +#define NT26K_IMSI_LEN 15 - char imsi[MB26_IMSI_LEN] = {0}; + char imsi[NT26K_IMSI_LEN] = {0}; /* send "AT+CIMI" commond to get device imsi */ if (at_obj_exec_cmd(device->client, resp, "AT+CIMI") != RT_EOK) @@ -1080,8 +1066,8 @@ static void mb26_init_thread_entry(void *parameter) LOG_D("%s device imsi number: %s", device->name, imsi); - rt_memcpy(mb26.imsi, imsi, MB26_IMSI_LEN); - Flash_Sys_Cfg(kNbImsiId, mb26.imsi, MB26_IMSI_LEN); + rt_memcpy(nt26k.imsi, imsi, NT26K_IMSI_LEN); + Flash_Sys_Cfg(kNbImsiId, nt26k.imsi, NT26K_IMSI_LEN); } /* check signal strength */ @@ -1098,7 +1084,7 @@ static void mb26_init_thread_entry(void *parameter) { LOG_D("%s device signal strength: %d, channel bit err_rate: %d", device->name, signal_strength, err_rate); - mb26.rssi = signal_strength; + nt26k.rssi = signal_strength; break; } } @@ -1138,31 +1124,6 @@ static void mb26_init_thread_entry(void *parameter) goto __exit; } - /* check the GPRS network IP address */ - for (i = 0; i < IPADDR_RETRY; i++) - { - - if (at_obj_exec_cmd(device->client, resp, "AT+CGPADDR=0") == RT_EOK) - { -#define IP_ADDR_SIZE_MAX 16 - char ipaddr[IP_ADDR_SIZE_MAX] = {0}; - - /* parse response data "+CGPADDR: 1," */ - if (at_resp_parse_line_args_by_kw(resp, "+CGPADDR:", "+CGPADDR: %*d,%s", ipaddr) > 0) - { - LOG_D("%s device IP address: %s", device->name, ipaddr); - break; - } - } - rt_thread_mdelay(1000); - } - if (i == IPADDR_RETRY) - { - LOG_E("%s device GPRS is get IP address failed", device->name); - result = -RT_ERROR; - goto __exit; - } - /* initialize successfully */ result = RT_EOK; break; @@ -1170,8 +1131,8 @@ static void mb26_init_thread_entry(void *parameter) __exit: if (result != RT_EOK) { - /* power off the mb26 device */ - // mb26_power_off(device); + /* power off the nt26k device */ + // nt26k_power_off(device); rt_thread_mdelay(1000); LOG_I("%s device initialize retry...", device->name); @@ -1186,11 +1147,11 @@ static void mb26_init_thread_entry(void *parameter) if (result == RT_EOK) { /* set network interface device status and address information */ - mb26_netdev_set_info(device->netdev); + // nt26k_netdev_set_info(device->netdev); /* check and create link staus sync thread */ - mb26_netdev_check_link_status(device->netdev); + // nt26k_netdev_check_link_status(device->netdev); LOG_I("%s device network initialize success.", device->name); - rt_completion_done(&mb26_init_complate); // 通知初始化完成 + rt_completion_done(&nt26k_init_complate); // 通知初始化完成 } else { @@ -1198,16 +1159,16 @@ static void mb26_init_thread_entry(void *parameter) } } -/* mb26 device network initialize */ -static int mb26_net_init(struct at_device *device) +/* nt26k device network initialize */ +static int nt26k_net_init(struct at_device *device) { -#ifdef AT_DEVICE_MB26_INIT_ASYN +#ifdef AT_DEVICE_NT26K_INIT_ASYN rt_thread_t tid; /* 初始化完成量对象 */ - rt_completion_init(&mb26_init_complate); + rt_completion_init(&nt26k_init_complate); - tid = rt_thread_create("mb26_net", mb26_init_thread_entry, (void *)device, - MB26_THREAD_STACK_SIZE, MB26_THREAD_PRIORITY, 20); + tid = rt_thread_create("nt26k_net", nt26k_init_thread_entry, (void *)device, + NT26K_THREAD_STACK_SIZE, NT26K_THREAD_PRIORITY, 20); if (tid) { rt_thread_startup(tid); @@ -1218,8 +1179,8 @@ static int mb26_net_init(struct at_device *device) return -RT_ERROR; } #else - mb26_init_thread_entry(device); -#endif /* AT_DEVICE_MB26_INIT_ASYN */ + nt26k_init_thread_entry(device); +#endif /* AT_DEVICE_NT26K_INIT_ASYN */ return RT_EOK; } @@ -1241,7 +1202,7 @@ void remove_crlf(char *str) } } -rt_err_t Mb26_Get_Signal_Info(struct at_device *device) +rt_err_t Nt26k_Get_Signal_Info(struct at_device *device) { #define RETRY 20 @@ -1271,7 +1232,7 @@ rt_err_t Mb26_Get_Signal_Info(struct at_device *device) { LOG_D("%s device signal strength: %d, channel bit err_rate: %d", device->name, signal_strength, err_rate); - mb26.rssi = signal_strength; + nt26k.rssi = signal_strength; break; } } @@ -1299,8 +1260,8 @@ rt_err_t Mb26_Get_Signal_Info(struct at_device *device) { LOG_D("%s device signal rsrp: %d, rsrq: %d", device->name, rsrp, rsrq); - mb26.rsrp = rsrp; - mb26.rsrq = rsrq; + nt26k.rsrp = rsrp; + nt26k.rsrq = rsrq; break; } } @@ -1332,9 +1293,9 @@ rt_err_t Mb26_Get_Signal_Info(struct at_device *device) if (snr != 0 && pci != 0) { - mb26.pci = pci; - mb26.snr = snr; - LOG_D("pci:%d,snr:%d", mb26.pci, mb26.snr); + nt26k.pci = pci; + nt26k.snr = snr; + LOG_D("pci:%d,snr:%d", nt26k.pci, nt26k.snr); break; } else @@ -1363,30 +1324,30 @@ rt_err_t Mb26_Get_Signal_Info(struct at_device *device) return result; } -/* mb26 device network interface attach +/* nt26k device network interface attach * - set network interface device link status */ -static int mb26_init(struct at_device *device) +static int nt26k_init(struct at_device *device) { - struct at_device_mb26 *mb26 = RT_NULL; + struct at_device_nt26k *nt26k = RT_NULL; RT_ASSERT(device); - mb26 = (struct at_device_mb26 *)device->user_data; - mb26->power_status = RT_FALSE; // default power is off. - mb26->sleep_status = RT_FALSE; // default sleep is disabled. + nt26k = (struct at_device_nt26k *)device->user_data; + nt26k->power_status = RT_FALSE; // default power is off. + nt26k->sleep_status = RT_FALSE; // default sleep is disabled. /* initialize AT client */ #if RT_VER_NUM >= 0x50100 - at_client_init(mb26->client_name, mb26->recv_line_num, mb26->recv_line_num); + at_client_init(nt26k->client_name, nt26k->recv_line_num, nt26k->recv_line_num); #else - at_client_init(mb26->client_name, mb26->recv_line_num); + at_client_init(nt26k->client_name, nt26k->recv_line_num); #endif - device->client = at_client_get(mb26->client_name); + device->client = at_client_get(nt26k->client_name); if (device->client == RT_NULL) { - LOG_E("get AT client(%s) failed.", mb26->client_name); + LOG_E("get AT client(%s) failed.", nt26k->client_name); return -RT_ERROR; } @@ -1394,43 +1355,43 @@ static int mb26_init(struct at_device *device) at_obj_set_urc_table(device->client, urc_table, sizeof(urc_table) / sizeof(urc_table[0])); #ifdef AT_USING_SOCKET - mb26_socket_init(device); + nt26k_socket_init(device); #endif - /* add mb26 device to the netdev list */ - device->netdev = mb26_netdev_add(mb26->device_name); + /* add nt26k device to the netdev list */ + device->netdev = nt26k_netdev_add(nt26k->device_name); if (device->netdev == RT_NULL) { - LOG_E("add netdev(%s) failed.", mb26->device_name); + LOG_E("add netdev(%s) failed.", nt26k->device_name); return -RT_ERROR; } - /* initialize mb26 pin configuration */ - if (mb26->pwr_en_pin != -1) + /* initialize nt26k pin configuration */ + if (nt26k->pwr_en_pin != -1) { - rt_pin_mode(mb26->pwr_en_pin, PIN_MODE_OUTPUT); - // rt_pin_write(mb26->pwr_en_pin, PIN_LOW); + rt_pin_mode(nt26k->pwr_en_pin, PIN_MODE_OUTPUT); + // rt_pin_write(nt26k->pwr_en_pin, PIN_LOW); } - if (mb26->rst_pin != -1) + if (nt26k->rst_pin != -1) { - rt_pin_mode(mb26->rst_pin, PIN_MODE_OUTPUT); + rt_pin_mode(nt26k->rst_pin, PIN_MODE_OUTPUT); } - if (mb26->wkp_pin != -1) + if (nt26k->wkp_pin != -1) { - rt_pin_mode(mb26->wkp_pin, PIN_MODE_OUTPUT); + rt_pin_mode(nt26k->wkp_pin, PIN_MODE_OUTPUT); } - /* initialize mb26 device network */ - return mb26_netdev_set_up(device->netdev); + /* initialize nt26k device network */ + return nt26k_netdev_set_up(device->netdev); } -static int mb26_deinit(struct at_device *device) +static int nt26k_deinit(struct at_device *device) { RT_ASSERT(device); - return mb26_netdev_set_down(device->netdev); + return nt26k_netdev_set_down(device->netdev); } -static int mb26_control(struct at_device *device, int cmd, void *arg) +static int nt26k_control(struct at_device *device, int cmd, void *arg) { int result = -RT_ERROR; @@ -1439,28 +1400,28 @@ static int mb26_control(struct at_device *device, int cmd, void *arg) switch (cmd) { case AT_DEVICE_CTRL_SLEEP: - result = mb26_sleep(device); + result = nt26k_sleep(device); break; case AT_DEVICE_CTRL_WAKEUP: - result = mb26_wakeup(device); + result = nt26k_wakeup(device); break; case AT_DEVICE_CTRL_NET_CONN: - result = at_device_mb26_connect_tcp(device); + result = at_device_nt26k_connect_tcp(device); break; case AT_DEVICE_CTRL_NET_DISCONN: - result = at_device_mb26_disconnect_tcp(device); // 直接删除Socket + result = at_device_nt26k_disconnect_tcp(device); // 直接删除Socket break; case AT_DEVICE_CTRL_GET_SIGNAL: - result = Mb26_Get_Signal_Info(device); + result = Nt26k_Get_Signal_Info(device); break; case AT_DEVICE_CTRL_RESET: - result = Mb26_Reset(device); + result = Nt26k_Reset(device); break; case AT_DEVICE_CTRL_POWER_ON: - result = mb26_power_on(device); + result = nt26k_power_on(device); break; case AT_DEVICE_CTRL_POWER_OFF: - result = mb26_power_off(device); + result = nt26k_power_off(device); break; case AT_DEVICE_CTRL_LOW_POWER: case AT_DEVICE_CTRL_SET_WIFI_INFO: @@ -1509,7 +1470,7 @@ int Time_Calibration(struct at_device *device) ; // 网络时间 int year, mounth, days, hous, min, sec; /*+CCLK:24/11/12,06:08:19+32*/ - if (at_resp_parse_line_args_by_kw(resp, "+CCLK:", "+CCLK:%d/%d/%d,%d:%d:%d+32", &year, &mounth, &days, &hous, &min, &sec) > 0) + if (at_resp_parse_line_args_by_kw(resp, "+CCLK:", "+CCLK: \"%d/%d/%d,%d:%d:%d+32\"", &year, &mounth, &days, &hous, &min, &sec) > 0) { rtc_dt.year = (2000 + year); rtc_dt.month = mounth; @@ -1531,14 +1492,14 @@ int Time_Calibration(struct at_device *device) return RT_ERROR; } -const struct at_device_ops mb26_device_ops = +const struct at_device_ops nt26k_device_ops = { - mb26_init, - mb26_deinit, - mb26_control, + nt26k_init, + nt26k_deinit, + nt26k_control, }; -int mb26_device_class_register(void) +int nt26k_device_class_register(void) { struct at_device_class *class = RT_NULL; @@ -1549,11 +1510,11 @@ int mb26_device_class_register(void) rt_free(class); return -RT_ENOMEM; } - class->device_ops = &mb26_device_ops; + class->device_ops = &nt26k_device_ops; - return at_device_class_register(class, AT_DEVICE_CLASS_MB26); + return at_device_class_register(class, AT_DEVICE_CLASS_NT26K); } -// INIT_DEVICE_EXPORT(mb26_device_class_register); -#endif //! NB_MODULE_SWITCH +// INIT_DEVICE_EXPORT(nt26k_device_class_register); +#endif //! IOT_MODULE_SWITCH -#endif /* AT_DEVICE_USING_MB26 */ +#endif /* AT_DEVICE_USING_NT26K */ diff --git a/bsp/src/bsp_flash.c b/bsp/src/bsp_flash.c index 70e00e6..3a8f08b 100644 --- a/bsp/src/bsp_flash.c +++ b/bsp/src/bsp_flash.c @@ -3,7 +3,7 @@ #include "bsp_rtc.h" // #include "bsp_wdg.h" #include "bsp_hr.h" -#include "at_device_mb26.h" +#include "at_device_nt26k.h" #include #include #include "user_sys.h" @@ -93,6 +93,8 @@ struct flash_sever_info sever_info = { .server_url = "8.130.117.149", .server_port = "7137", + // .server_url = "8.135.10.183", + // .server_port = "36125," }; diff --git a/bsp/src/bsp_h308.c b/bsp/src/bsp_h308.c index 03696cc..4039733 100644 --- a/bsp/src/bsp_h308.c +++ b/bsp/src/bsp_h308.c @@ -2,7 +2,7 @@ * @Author: mbw * @Date: 2024-11-14 10:21:04 * @LastEditors: mbw && 1600520629@qq.com - * @LastEditTime: 2024-12-30 09:24:19 + * @LastEditTime: 2024-12-30 17:30:15 * @FilePath: \JT-DT-YD4N02A_RTT_MRS-4G\bsp\src\bsp_h308.c * @Description: * @@ -285,7 +285,7 @@ static void h308_thread_entry(void *param) if (len >= 44) { ret = H308_GetFrameData(str, len, &H308.Data); - // LOG_I("str:[%s]", str); + LOG_I("str:[%s]", str); if (ret == 0) { H308_CheckData(); diff --git a/bsp/src/bsp_hr.c b/bsp/src/bsp_hr.c index 6fbcd25..1a926ed 100644 --- a/bsp/src/bsp_hr.c +++ b/bsp/src/bsp_hr.c @@ -13,7 +13,7 @@ #include "lwrb.h" #include "bsp_flash.h" #include "bsp_rtc.h" -#include "at_device_mb26.h" +#include "at_device_nt26k.h" #include "user_sys.h" #include #include "bsp_emv.h" diff --git a/bsp/src/bsp_led.c b/bsp/src/bsp_led.c index 69be81f..16d4eaf 100644 --- a/bsp/src/bsp_led.c +++ b/bsp/src/bsp_led.c @@ -1,7 +1,7 @@ #include "bsp_led.h" #include "rtthread.h" #include "pin.h" -#include "bsp_mb26.h" +#include "bsp_nt26k.h" #include "user_sys.h" @@ -27,7 +27,7 @@ static void BSP_Led_thread_entry(void *param) while (1) { #if 0 - if (mb26_conncet_tcp_flag) + if (nt26k_conncet_tcp_flag) { if ((SysControl.status == kNormalDetectionEvents) && (led_state_flag != RT_TRUE)) { diff --git a/bsp/src/bsp_mb26.c b/bsp/src/bsp_nt26k.c similarity index 50% rename from bsp/src/bsp_mb26.c rename to bsp/src/bsp_nt26k.c index a749165..6386342 100644 --- a/bsp/src/bsp_mb26.c +++ b/bsp/src/bsp_nt26k.c @@ -2,8 +2,8 @@ * @Author: mbw * @Date: 2024-10-09 08:42:14 * @LastEditors: mbw && 1600520629@qq.com - * @LastEditTime: 2024-12-26 14:35:18 - * @FilePath: \JT-DT-YD4N02A_RTT_MRS-4G\bsp\src\bsp_mb26.c + * @LastEditTime: 2024-12-30 17:33:50 + * @FilePath: \JT-DT-YD4N02A_RTT_MRS-4G\bsp\src\bsp_nt26k.c * @Description: * * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. @@ -18,9 +18,9 @@ * 2019-12-13 qiyongzhong first version */ -#include +#include #include "drv_gpio.h" -#include "bsp_mb26.h" +#include "bsp_nt26k.h" #include "user_sys.h" #include "bsp_flash.h" #include "bsp_h308.h" @@ -30,213 +30,213 @@ #include "bsp_relay.h" #include "bsp_rng.h" -#define LOG_TAG "mb26" +#define LOG_TAG "nt26k" #include -#if NB_MODULE_SWITCH == 1 -#define MB26_THREAD_STACK_SIZE (4096) -#define MB26_RECV_THREAD_STACK_SIZE (4096) -#define MB26_LIFE_THREAD_STACK_SIZE (1024) -#define MB26_THREAD_PRIORITY 25 -#define MB26_THREAD_TICKS 50 -#define MB26_RECV_THREAD_PRIORITY 24 -#define MB26_RECV_THREAD_TICKS 10 +#if IOT_MODULE_SWITCH == 1 +#define NT26K_THREAD_STACK_SIZE (4096) +#define NT26K_RECV_THREAD_STACK_SIZE (4096) +#define NT26K_LIFE_THREAD_STACK_SIZE (1024) +#define NT26K_THREAD_PRIORITY 25 +#define NT26K_THREAD_TICKS 50 +#define NT26K_RECV_THREAD_PRIORITY 24 +#define NT26K_RECV_THREAD_TICKS 10 -#define MB26_LIFE_THREAD_PRIORITY 26 -#define MB26_LIFE_THREAD_TICKS 10 +#define NT26K_LIFE_THREAD_PRIORITY 26 +#define NT26K_LIFE_THREAD_TICKS 10 -// static rt_uint32_t mb26_status = 0; +// static rt_uint32_t nt26k_status = 0; ALIGN(RT_ALIGN_SIZE) -static char mb26_thread_stack[MB26_THREAD_STACK_SIZE]; -static struct rt_thread mb26_thread; +static char nt26k_thread_stack[NT26K_THREAD_STACK_SIZE]; +static struct rt_thread nt26k_thread; ALIGN(RT_ALIGN_SIZE) -static char mb26_recv_thread_stack[MB26_RECV_THREAD_STACK_SIZE]; -static struct rt_thread mb26_recv_thread; +static char nt26k_recv_thread_stack[NT26K_RECV_THREAD_STACK_SIZE]; +static struct rt_thread nt26k_recv_thread; ALIGN(RT_ALIGN_SIZE) -static char mb26_life_thread_stack[MB26_LIFE_THREAD_STACK_SIZE]; -static struct rt_thread mb26_life_thread; +static char nt26k_life_thread_stack[NT26K_LIFE_THREAD_STACK_SIZE]; +static struct rt_thread nt26k_life_thread; struct rt_event at_device_event; -rt_sem_t mb26_recv_sem; -rt_sem_t mb26_life_sem; -static rt_timer_t mb26_timer; // 上报心跳 -static rt_timer_t mb26_upload_timer; // 更新本地时间定时器 -static rt_timer_t mb26_power_error_timer; // 上电失败情况下启动定时器 +rt_sem_t nt26k_recv_sem; +rt_sem_t nt26k_life_sem; +static rt_timer_t nt26k_timer; // 上报心跳 +static rt_timer_t nt26k_upload_timer; // 更新本地时间定时器 +static rt_timer_t nt26k_power_error_timer; // 上电失败情况下启动定时器 /*生命周期窗口定时器,用于管理tcp连接的断开*/ -static rt_timer_t mb26_life_timer; -rt_uint8_t mb26_conncet_tcp_flag; -Mb26EventIndex mb26_event_index; +static rt_timer_t nt26k_life_timer; +rt_uint8_t nt26k_conncet_tcp_flag; +Nt26kEventIndex nt26k_event_index; rt_uint8_t power_on_send_flag = 0; -rt_mutex_t mb26_mutex; -int BSP_Mb26_Init(struct Mb26_Ops *ops, rt_uint8_t version); -int BSP_Mb26_Update(struct Mb26_Ops *ops, rt_uint8_t device_type, rt_uint8_t event_type); -int Mb26_Send_Data(struct Mb26_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd, rt_uint8_t device_type, rt_uint8_t event_type); -int Data_Resp(struct Mb26_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd, rt_uint8_t device_type, rt_uint8_t event_type, char *data, rt_uint8_t res); -int Mb26_Recv_Data(struct Mb26_Ops *ops, char *data); +rt_mutex_t nt26k_mutex; +int BSP_Nt26k_Init(struct Nt26k_Ops *ops, rt_uint8_t version); +int BSP_Nt26k_Update(struct Nt26k_Ops *ops, rt_uint8_t device_type, rt_uint8_t event_type); +int Nt26k_Send_Data(struct Nt26k_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd, rt_uint8_t device_type, rt_uint8_t event_type); +int Data_Resp(struct Nt26k_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd, rt_uint8_t device_type, rt_uint8_t event_type, char *data, rt_uint8_t res); +int Nt26k_Recv_Data(struct Nt26k_Ops *ops, char *data); static struct DataBody body; -static struct Mb26DataFrame frame; -static struct Mb26RecvData mb26_recv; +static struct Nt26kDataFrame frame; +static struct Nt26kRecvData nt26k_recv; -struct Mb26_Ops mb26_ops = { +struct Nt26k_Ops nt26k_ops = { .body = &body, .frame = &frame, - .recv = &mb26_recv, - .init = BSP_Mb26_Init, - .update_data = BSP_Mb26_Update, - .send = Mb26_Send_Data, + .recv = &nt26k_recv, + .init = BSP_Nt26k_Init, + .update_data = BSP_Nt26k_Update, + .send = Nt26k_Send_Data, .Resp = Data_Resp, - // .Recv = Mb26_Recv_Data,//,没用到 + // .Recv = Nt26k_Recv_Data,//,没用到 }; -static struct at_device_mb26 _dev = +static struct at_device_nt26k _dev = { - MB26_SAMPLE_DEIVCE_NAME, - MB26_SAMPLE_CLIENT_NAME, + NT26K_SAMPLE_DEIVCE_NAME, + NT26K_SAMPLE_CLIENT_NAME, - MB26_PWR_EN_PIN, - MB26_RST_PIN, - MB26_WKP_PIN, + NT26K_PWR_EN_PIN, + NT26K_RST_PIN, + NT26K_WKP_PIN, - MB26_SAMPLE_RECV_BUFF_LEN, + NT26K_SAMPLE_RECV_BUFF_LEN, }; -static rt_uint32_t mb26_event_flags[kMb26MaxEventcnt] = {0}; -static rt_bool_t mb26_event_initialized = RT_FALSE; // 是否初始化完成 +static rt_uint32_t nt26k_event_flags[kNt26kMaxEventcnt] = {0}; +static rt_bool_t nt26k_event_initialized = RT_FALSE; // 是否初始化完成 typedef enum { - MB26_PRIORITY_LOWEST, // 4、优先级最低(定时心跳、浓度异常、报警触发、报警解除、传感器故障触发 传感器故障解除) - MB26_PRIORITY_MEDIUM, // 2、优先级第三高 自检触发 - MB26_PRIORITY_HIGH, // 1、优先级第二高 掉电 - MB26_PRIORITY_HIGHEST, // 0 优先级最高(设备上电时的定时心跳) -} Mb26Priority; + NT26K_PRIORITY_LOWEST, // 4、优先级最低(定时心跳、浓度异常、报警触发、报警解除、传感器故障触发 传感器故障解除) + NT26K_PRIORITY_MEDIUM, // 2、优先级第三高 自检触发 + NT26K_PRIORITY_HIGH, // 1、优先级第二高 掉电 + NT26K_PRIORITY_HIGHEST, // 0 优先级最高(设备上电时的定时心跳) +} Nt26kPriority; typedef struct { - Mb26Event event_flag; - Mb26Priority priority; + Nt26kEvent event_flag; + Nt26kPriority priority; const char *event_name; int (*send_func)(struct at_device *device, void *param); -} Mb26EventInfo; +} Nt26kEventInfo; -static void Mb26_Set_Event(Mb26Event event_type) +static void Nt26k_Set_Event(Nt26kEvent event_type) { - if (event_type < kMb26MaxEventcnt) + if (event_type < kNt26kMaxEventcnt) { - mb26_event_flags[event_type] = (1 << event_type); + nt26k_event_flags[event_type] = (1 << event_type); } } -void Mb26_Event_Init(void) +void Nt26k_Event_Init(void) { - rt_err_t ret = rt_event_init(&at_device_event, "mb26_event", RT_IPC_FLAG_PRIO); + rt_err_t ret = rt_event_init(&at_device_event, "nt26k_event", RT_IPC_FLAG_PRIO); if (ret == RT_EOK) { - mb26_event_initialized = RT_TRUE; - for (Mb26Event event = kMb26HeartbeatEvent; event < kMb26MaxEventcnt; event++) + nt26k_event_initialized = RT_TRUE; + for (Nt26kEvent event = kNt26kHeartbeatEvent; event < kNt26kMaxEventcnt; event++) { - Mb26_Set_Event(event); + Nt26k_Set_Event(event); } } else { - LOG_E("mb26_event init failed!"); + LOG_E("nt26k_event init failed!"); } } -rt_uint32_t Mb26_Get_Event_Flag(Mb26Event event_type) +rt_uint32_t Nt26k_Get_Event_Flag(Nt26kEvent event_type) { - if (event_type < kMb26MaxEventcnt) + if (event_type < kNt26kMaxEventcnt) { - return mb26_event_flags[event_type]; + return nt26k_event_flags[event_type]; } return 0; } -void Mb26_Send_Event(Mb26Event event_type) +void Nt26k_Send_Event(Nt26kEvent event_type) { - LOG_D("Send_Mb26_Event = %d", event_type); - mb26_event_index.last_event = mb26_event_index.current_event; - mb26_event_index.current_event = event_type; - if (mb26_event_initialized == RT_TRUE) + LOG_D("Send_Nt26k_Event = %d", event_type); + nt26k_event_index.last_event = nt26k_event_index.current_event; + nt26k_event_index.current_event = event_type; + if (nt26k_event_initialized == RT_TRUE) { - rt_event_send(&at_device_event, Mb26_Get_Event_Flag(event_type)); + rt_event_send(&at_device_event, Nt26k_Get_Event_Flag(event_type)); } else { - LOG_E("mb26_event_initialized is false"); + LOG_E("nt26k_event_initialized is false"); } } // 定义定时器回调函数 -static void Mb26_Ht_Timer_Cb(void *parameter) +static void Nt26k_Ht_Timer_Cb(void *parameter) { - Mb26_Send_Event(kMb26HeartbeatEvent); + Nt26k_Send_Event(kNt26kHeartbeatEvent); } // 定时器回调函数,当1分钟内没有数据交互时,关闭tcp连接 -static void Mb26_Life_Timer_Cb(void *parameter) +static void Nt26k_Life_Timer_Cb(void *parameter) { - rt_sem_release(mb26_life_sem); + rt_sem_release(nt26k_life_sem); } // 定时器回调函数,当1分钟内没有数据交互时,关闭tcp连接 -static void Mb26_Error_Timer_Cb(void *parameter) +static void Nt26k_Error_Timer_Cb(void *parameter) { if (power_on_send_flag) // 上电成功时,停止定时器 { - rt_timer_stop(mb26_power_error_timer); + rt_timer_stop(nt26k_power_error_timer); } else { - Mb26_Send_Event(kMb26PowerOnEvent); + Nt26k_Send_Event(kNt26kPowerOnEvent); } } // 重置定时器 -void Reset_Mb26_Life_Timer(void) +void Reset_Nt26k_Life_Timer(void) { - if (mb26_life_timer != RT_NULL) + if (nt26k_life_timer != RT_NULL) { - // rt_timer_stop(mb26_life_timer);//启动这个时,他会自动清除以前的定时器,所以不必担心是否已经启动的问题,困扰我不少时间,点进去第一二句就是 - rt_timer_start(mb26_life_timer); + // rt_timer_stop(nt26k_life_timer);//启动这个时,他会自动清除以前的定时器,所以不必担心是否已经启动的问题,困扰我不少时间,点进去第一二句就是 + rt_timer_start(nt26k_life_timer); } } -int _Pack_Send(struct Mb26_Ops *ops, char *buf) +int _Pack_Send(struct Nt26k_Ops *ops, char *buf) { - char mb26_send_buf[512] = {0}; // 发送缓冲区,用于存储最终发送的数据 + char nt26k_send_buf[512] = {0}; // 发送缓冲区,用于存储最终发送的数据 // char byteArr1[512]; // 转换成字节值 unsigned short crc16 = 0; // 存储CRC16校验和 - struct at_device *device = at_device_get_by_name(AT_DEVICE_NAMETYPE_NETDEV, MB26_SAMPLE_DEIVCE_NAME); + struct at_device *device = at_device_get_by_name(AT_DEVICE_NAMETYPE_NETDEV, NT26K_SAMPLE_DEIVCE_NAME); ASSERT(device); crc16 = crc1021(buf, rt_strlen(buf)); LOG_D("buf: %s", buf); LOG_D("crc16: %X", crc16); // 将数据、校验和及尾部标识添加到发送缓冲区中 - if (rt_snprintf(mb26_send_buf, sizeof(mb26_send_buf), + if (rt_snprintf(nt26k_send_buf, sizeof(nt26k_send_buf), "%s%04X%02X%02X%02X", buf, crc16, ops->frame->tail[0], ops->frame->tail[1], - ops->frame->tail[2]) >= sizeof(mb26_send_buf)) + ops->frame->tail[2]) >= sizeof(nt26k_send_buf)) { // 发生缓冲区溢出 - LOG_E("Buffer overflow in mb26_send_buf"); + LOG_E("Buffer overflow in nt26k_send_buf"); return -RT_ERROR; } // 打印调试信息 - // LOG_D("mb26_send_buf: %s", mb26_send_buf); - rt_uint16_t data_len = rt_strlen(mb26_send_buf); - // 通过AT指令发送数据给MB26模块 - if (at_send_data(device, mb26_send_buf, data_len / 2) != RT_EOK) + // LOG_D("nt26k_send_buf: %s", nt26k_send_buf); + rt_uint16_t data_len = rt_strlen(nt26k_send_buf); + // 通过AT指令发送数据给NT26K模块 + if (at_send_data(device, nt26k_send_buf, data_len / 2) != RT_EOK) { return -RT_ERROR; } @@ -245,10 +245,10 @@ int _Pack_Send(struct Mb26_Ops *ops, char *buf) } /** - * @brief 发送数据到mb26模块 + * @brief 发送数据到nt26k模块 * * 本函数根据提供的数据和参数构建一个格式化字符串,计算其CRC16校验和, - * 然后将该字符串发送给MB26模块 + * 然后将该字符串发送给NT26K模块 *@param version 协议版本 * @param data 要发送的十六进制数据字符串 * @param len 数据字符串的十六进制数据格式长度 @@ -256,13 +256,13 @@ int _Pack_Send(struct Mb26_Ops *ops, char *buf) * @param cmd_num 命令编号 * @return int 返回0表示成功,非零表示失败 */ -static int _Send_Handle(struct Mb26_Ops *ops, rt_size_t data_num, rt_size_t cmd_num, const char *data) +static int _Send_Handle(struct Nt26k_Ops *ops, rt_size_t data_num, rt_size_t cmd_num, const char *data) { // 临时缓冲区,用于格式化数据 char data_buf[512] = {0}; rt_size_t data_len = rt_strlen(data); - // 格式化数据,构建发送给MB26模块的数据包 + // 格式化数据,构建发送给NT26K模块的数据包 rt_int32_t len = rt_snprintf(data_buf, sizeof(data_buf), "%02X%02X%02X%02X%04X%04X%02X%04X%s", ops->frame->header[0], @@ -286,14 +286,14 @@ static int _Send_Handle(struct Mb26_Ops *ops, rt_size_t data_num, rt_size_t cmd_ } // 初始化函数 -int BSP_Mb26_Init(struct Mb26_Ops *ops, rt_uint8_t version) +int BSP_Nt26k_Init(struct Nt26k_Ops *ops, rt_uint8_t version) { if (ops->frame == RT_NULL) { LOG_E("Memory allocation failed"); return -RT_ENOMEM; } - rt_memset(ops->frame, 0, sizeof(struct Mb26DataFrame)); + rt_memset(ops->frame, 0, sizeof(struct Nt26kDataFrame)); ops->frame->header[0] = 0x4A; ops->frame->header[1] = 0x54; @@ -309,13 +309,13 @@ int BSP_Mb26_Init(struct Mb26_Ops *ops, rt_uint8_t version) return RT_EOK; } // 更新函数 -int BSP_Mb26_Update(struct Mb26_Ops *ops, rt_uint8_t device_type, rt_uint8_t event_type) +int BSP_Nt26k_Update(struct Nt26k_Ops *ops, rt_uint8_t device_type, rt_uint8_t event_type) { ops->body->device_type = device_type; ops->body->event_type = event_type; ops->body->hw = (rt_uint8_t)Flash_Get_SysCfg(kHwVerId); ops->body->sw = (rt_uint8_t)Flash_Get_SysCfg(kSwVerId); - rt_memcpy(ops->body->imei, &mb26, sizeof(mb26_sys_info)); // 直接赋值结构体数据 + rt_memcpy(ops->body->imei, &nt26k, sizeof(nt26k_sys_info)); // 直接赋值结构体数据 rt_memcpy(&(ops->body->lel), &H308.Data, (rt_ubase_t)offsetof(TsH308Data, checksum)); // 复制除了校验码以外的数据 ops->body->product_work_temperature = ops->body->temp; // 暂时定为激光器测量的环境温度 ops->body->work_duration = work_duration; @@ -326,7 +326,7 @@ int BSP_Mb26_Update(struct Mb26_Ops *ops, rt_uint8_t device_type, rt_uint8_t eve return RT_EOK; } -int Mb26_Send_Data(struct Mb26_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd, rt_uint8_t device_type, rt_uint8_t event_type) +int Nt26k_Send_Data(struct Nt26k_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd, rt_uint8_t device_type, rt_uint8_t event_type) { int ret = 0; char data_buf[512] = {0}; @@ -344,8 +344,8 @@ int Mb26_Send_Data(struct Mb26_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd, rt return RT_ERROR; } rt_memset(ops->body, 0, sizeof(struct DataBody)); - rt_mutex_take(mb26_mutex, RT_WAITING_FOREVER); - ret = mb26_ops.update_data(ops, device_type, event_type); + rt_mutex_take(nt26k_mutex, RT_WAITING_FOREVER); + ret = nt26k_ops.update_data(ops, device_type, event_type); if (ret == RT_EOK) { for (int i = 0; i < sizeof(struct DataBody); i++) @@ -359,15 +359,15 @@ int Mb26_Send_Data(struct Mb26_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd, rt ret = -ret; } } - rt_mutex_release(mb26_mutex); + rt_mutex_release(nt26k_mutex); return ret; } -int Data_Resp(struct Mb26_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd, rt_uint8_t device_type, rt_uint8_t event_type, char *data, rt_uint8_t res) +int Data_Resp(struct Nt26k_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd, rt_uint8_t device_type, rt_uint8_t event_type, char *data, rt_uint8_t res) { - if (mb26_conncet_tcp_flag != 1) + if (nt26k_conncet_tcp_flag != 1) { - LOG_E("mb26_conncet_tcp_flag error"); + LOG_E("nt26k_conncet_tcp_flag error"); return -RT_ERROR; } @@ -383,7 +383,7 @@ int Data_Resp(struct Mb26_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd, rt_uint return _Send_Handle(ops, data_num, cmd, data_buf); } -int Mb26_Recv_Data(struct Mb26_Ops *ops, char *data) +int Nt26k_Recv_Data(struct Nt26k_Ops *ops, char *data) { // ops->body = (struct DataBody *)rt_malloc(sizeof(struct DataBody)); // rt_memset(ops->body, 0, sizeof(struct DataBody)); @@ -398,27 +398,27 @@ int Mb26_Recv_Data(struct Mb26_Ops *ops, char *data) * @param param 操作结构体指针 * @return 操作结果 */ -int Mb26_Send_Heartbeat(struct at_device *device, void *param) +int Nt26k_Send_Heartbeat(struct at_device *device, void *param) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)param; + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param; int ret = 0; - if ((device == RT_NULL) || (mb26_ops == RT_NULL)) + if ((device == RT_NULL) || (nt26k_ops == RT_NULL)) { - LOG_E("mb26 param error\n"); + LOG_E("nt26k param error\n"); return RT_ERROR; } ret = device->class->device_ops->control(device, AT_DEVICE_CTRL_GET_SIGNAL, RT_NULL); if (ret != RT_EOK) { - LOG_E("mb26 get signal failed\n"); + LOG_E("nt26k get signal failed\n"); return -RT_ERROR; } - ret = mb26_ops->send(mb26_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_DATA_REPORT, DEVICE_TYPE_MB26, EVENT_TYPE_HEARTBEAT); + ret = nt26k_ops->send(nt26k_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_DATA_REPORT, DEVICE_TYPE_NT26K, EVENT_TYPE_HEARTBEAT); if (ret != RT_EOK) { - LOG_E("mb26 send data failed\n"); + LOG_E("nt26k send data failed\n"); return ret; } @@ -431,18 +431,18 @@ int Mb26_Send_Heartbeat(struct at_device *device, void *param) * @param param 操作结构体指针 * @return 操作结果 */ -int Mb26_Send_Time_Calibration(struct at_device *device, void *param) +int Nt26k_Send_Time_Calibration(struct at_device *device, void *param) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)param; - if ((device == RT_NULL) || (mb26_ops == RT_NULL)) + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param; + if ((device == RT_NULL) || (nt26k_ops == RT_NULL)) { - LOG_E("mb26 param error\n"); + LOG_E("nt26k param error\n"); return RT_ERROR; } - if (mb26_ops->send(mb26_ops, DATA_SERIAL_NUM, CMD_TYPE_TIME_CALIBRATION, DEVICE_TYPE_MB26, EVENT_TYPE_TIME_CALIBRATION)) + if (nt26k_ops->send(nt26k_ops, DATA_SERIAL_NUM, CMD_TYPE_TIME_CALIBRATION, DEVICE_TYPE_NT26K, EVENT_TYPE_TIME_CALIBRATION)) { - LOG_E("mb26 send cmd[%X] failed\n", CMD_TYPE_TIME_CALIBRATION); + LOG_E("nt26k send cmd[%X] failed\n", CMD_TYPE_TIME_CALIBRATION); return -RT_ERROR; } return RT_EOK; @@ -454,18 +454,18 @@ int Mb26_Send_Time_Calibration(struct at_device *device, void *param) * @param param 操作结构体指针 * @return 操作结果 */ -int Mb26_Send_Alarm(struct at_device *device, void *param) +int Nt26k_Send_Alarm(struct at_device *device, void *param) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)param; - if ((device == RT_NULL) || (mb26_ops == RT_NULL)) + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param; + if ((device == RT_NULL) || (nt26k_ops == RT_NULL)) { - LOG_E("mb26 param error\n"); + LOG_E("nt26k param error\n"); return RT_ERROR; } - if (mb26_ops->send(mb26_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_MB26, EVENT_TYPE_ALARM)) + if (nt26k_ops->send(nt26k_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_NT26K, EVENT_TYPE_ALARM)) { - LOG_E("mb26 send cmd[%X] failed\n", EVENT_TYPE_ALARM); + LOG_E("nt26k send cmd[%X] failed\n", EVENT_TYPE_ALARM); return -RT_ERROR; } return RT_EOK; @@ -477,18 +477,18 @@ int Mb26_Send_Alarm(struct at_device *device, void *param) * @param param 操作结构体指针 * @return 操作结果 */ -int Mb26_Send_Alarm_Recover(struct at_device *device, void *param) +int Nt26k_Send_Alarm_Recover(struct at_device *device, void *param) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)param; - if ((device == RT_NULL) || (mb26_ops == RT_NULL)) + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param; + if ((device == RT_NULL) || (nt26k_ops == RT_NULL)) { - LOG_E("mb26 param error\n"); + LOG_E("nt26k param error\n"); return RT_ERROR; } - if (mb26_ops->send(mb26_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_MB26, EVENT_TYPE_ALARM_RECOVER)) + if (nt26k_ops->send(nt26k_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_NT26K, EVENT_TYPE_ALARM_RECOVER)) { - LOG_E("mb26 send cmd[%X] failed\n", EVENT_TYPE_ALARM_RECOVER); + LOG_E("nt26k send cmd[%X] failed\n", EVENT_TYPE_ALARM_RECOVER); return -RT_ERROR; } return RT_EOK; @@ -500,18 +500,18 @@ int Mb26_Send_Alarm_Recover(struct at_device *device, void *param) * @param param 操作结构体指针 * @return 操作结果 */ -int Mb26_Send_Fault(struct at_device *device, void *param) +int Nt26k_Send_Fault(struct at_device *device, void *param) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)param; - if ((device == RT_NULL) || (mb26_ops == RT_NULL)) + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param; + if ((device == RT_NULL) || (nt26k_ops == RT_NULL)) { - LOG_E("mb26 param error\n"); + LOG_E("nt26k param error\n"); return RT_ERROR; } - if (mb26_ops->send(mb26_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_MB26, EVENT_TYPE_FAULT)) + if (nt26k_ops->send(nt26k_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_NT26K, EVENT_TYPE_FAULT)) { - LOG_E("mb26 send cmd[%X] failed\n", EVENT_TYPE_FAULT); + LOG_E("nt26k send cmd[%X] failed\n", EVENT_TYPE_FAULT); return -RT_ERROR; } return RT_EOK; @@ -523,18 +523,18 @@ int Mb26_Send_Fault(struct at_device *device, void *param) * @param param 操作结构体指针 * @return 操作结果 */ -int Mb26_Send_Fault_Recover(struct at_device *device, void *param) +int Nt26k_Send_Fault_Recover(struct at_device *device, void *param) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)param; - if ((device == RT_NULL) || (mb26_ops == RT_NULL)) + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param; + if ((device == RT_NULL) || (nt26k_ops == RT_NULL)) { - LOG_E("mb26 param error\n"); + LOG_E("nt26k param error\n"); return RT_ERROR; } - if (mb26_ops->send(mb26_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_MB26, EVENT_TYPE_FAULT_RECOVER)) + if (nt26k_ops->send(nt26k_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_NT26K, EVENT_TYPE_FAULT_RECOVER)) { - LOG_E("mb26 send cmd[%X] failed\n", EVENT_TYPE_FAULT_RECOVER); + LOG_E("nt26k send cmd[%X] failed\n", EVENT_TYPE_FAULT_RECOVER); return -RT_ERROR; } return RT_EOK; @@ -546,18 +546,18 @@ int Mb26_Send_Fault_Recover(struct at_device *device, void *param) * @param param 操作结构体指针 * @return 操作结果 */ -int Mb26_Send_Self_Check(struct at_device *device, void *param) +int Nt26k_Send_Self_Check(struct at_device *device, void *param) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)param; - if ((device == RT_NULL) || (mb26_ops == RT_NULL)) + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param; + if ((device == RT_NULL) || (nt26k_ops == RT_NULL)) { - LOG_E("mb26 param error\n"); + LOG_E("nt26k param error\n"); return RT_ERROR; } - if (mb26_ops->send(mb26_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_MB26, EVENT_TYPE_SELF_CHECK)) + if (nt26k_ops->send(nt26k_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_NT26K, EVENT_TYPE_SELF_CHECK)) { - LOG_E("mb26 send cmd[%X] failed\n", EVENT_TYPE_SELF_CHECK); + LOG_E("nt26k send cmd[%X] failed\n", EVENT_TYPE_SELF_CHECK); return -RT_ERROR; } return RT_EOK; @@ -569,18 +569,18 @@ int Mb26_Send_Self_Check(struct at_device *device, void *param) * @param param 操作结构体指针 * @return 操作结果 */ -int Mb26_Send_Silence(struct at_device *device, void *param) +int Nt26k_Send_Silence(struct at_device *device, void *param) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)param; - if ((device == RT_NULL) || (mb26_ops == RT_NULL)) + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param; + if ((device == RT_NULL) || (nt26k_ops == RT_NULL)) { - LOG_E("mb26 param error\n"); + LOG_E("nt26k param error\n"); return RT_ERROR; } - if (mb26_ops->send(mb26_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_MB26, EVENT_TYPE_SILENCE)) + if (nt26k_ops->send(nt26k_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_NT26K, EVENT_TYPE_SILENCE)) { - LOG_E("mb26 send cmd[%X] failed\n", EVENT_TYPE_SILENCE); + LOG_E("nt26k send cmd[%X] failed\n", EVENT_TYPE_SILENCE); return -RT_ERROR; } return RT_EOK; @@ -592,18 +592,18 @@ int Mb26_Send_Silence(struct at_device *device, void *param) * @param param 操作结构体指针 * @return 操作结果 */ -int Mb26_Send_Exception(struct at_device *device, void *param) +int Nt26k_Send_Exception(struct at_device *device, void *param) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)param; - if ((device == RT_NULL) || (mb26_ops == RT_NULL)) + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param; + if ((device == RT_NULL) || (nt26k_ops == RT_NULL)) { - LOG_E("mb26 param error\n"); + LOG_E("nt26k param error\n"); return RT_ERROR; } - if (mb26_ops->send(mb26_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_MB26, EVENT_TYPE_EXCEPTION)) + if (nt26k_ops->send(nt26k_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_NT26K, EVENT_TYPE_EXCEPTION)) { - LOG_E("mb26 send cmd[%X] failed\n", EVENT_TYPE_EXCEPTION); + LOG_E("nt26k send cmd[%X] failed\n", EVENT_TYPE_EXCEPTION); return -RT_ERROR; } return RT_EOK; @@ -615,18 +615,18 @@ int Mb26_Send_Exception(struct at_device *device, void *param) * @param param 操作结构体指针 * @return 操作结果 */ -int Mb26_Send_Valve_Status(struct at_device *device, void *param) +int Nt26k_Send_Valve_Status(struct at_device *device, void *param) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)param; - if ((device == RT_NULL) || (mb26_ops == RT_NULL)) + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param; + if ((device == RT_NULL) || (nt26k_ops == RT_NULL)) { - LOG_E("mb26 param error\n"); + LOG_E("nt26k param error\n"); return RT_ERROR; } - if (mb26_ops->send(mb26_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_MB26, EVENT_TYPE_VALVE_STATUS)) + if (nt26k_ops->send(nt26k_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_NT26K, EVENT_TYPE_VALVE_STATUS)) { - LOG_E("mb26 send cmd[%X] failed\n", EVENT_TYPE_VALVE_STATUS); + LOG_E("nt26k send cmd[%X] failed\n", EVENT_TYPE_VALVE_STATUS); return -RT_ERROR; } return RT_EOK; @@ -638,18 +638,18 @@ int Mb26_Send_Valve_Status(struct at_device *device, void *param) * @param param 操作结构体指针 * @return 操作结果 */ -int Mb26_Send_Fan_Status(struct at_device *device, void *param) +int Nt26k_Send_Fan_Status(struct at_device *device, void *param) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)param; - if ((device == RT_NULL) || (mb26_ops == RT_NULL)) + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param; + if ((device == RT_NULL) || (nt26k_ops == RT_NULL)) { - LOG_E("mb26 param error\n"); + LOG_E("nt26k param error\n"); return RT_ERROR; } - if (mb26_ops->send(mb26_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_MB26, EVENT_TYPE_FAN_STATUS)) + if (nt26k_ops->send(nt26k_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_NT26K, EVENT_TYPE_FAN_STATUS)) { - LOG_E("mb26 send cmd[%X] failed\n", EVENT_TYPE_FAN_STATUS); + LOG_E("nt26k send cmd[%X] failed\n", EVENT_TYPE_FAN_STATUS); return -RT_ERROR; } return RT_EOK; @@ -661,18 +661,18 @@ int Mb26_Send_Fan_Status(struct at_device *device, void *param) * @param param 操作结构体指针 * @return 操作结果 */ -int Mb26_Send_Temp_Anomaly(struct at_device *device, void *param) +int Nt26k_Send_Temp_Anomaly(struct at_device *device, void *param) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)param; - if ((device == RT_NULL) || (mb26_ops == RT_NULL)) + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param; + if ((device == RT_NULL) || (nt26k_ops == RT_NULL)) { - LOG_E("mb26 param error\n"); + LOG_E("nt26k param error\n"); return RT_ERROR; } - if (mb26_ops->send(mb26_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_MB26, EVENT_TYPE_TEMP_ANOMALY)) + if (nt26k_ops->send(nt26k_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_NT26K, EVENT_TYPE_TEMP_ANOMALY)) { - LOG_E("mb26 send cmd[%X] failed\n", EVENT_TYPE_TEMP_ANOMALY); + LOG_E("nt26k send cmd[%X] failed\n", EVENT_TYPE_TEMP_ANOMALY); return -RT_ERROR; } return RT_EOK; @@ -684,18 +684,18 @@ int Mb26_Send_Temp_Anomaly(struct at_device *device, void *param) * @param param 操作结构体指针 * @return 操作结果 */ -int Mb26_Send_Power_Off(struct at_device *device, void *param) +int Nt26k_Send_Power_Off(struct at_device *device, void *param) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)param; - if ((device == RT_NULL) || (mb26_ops == RT_NULL)) + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param; + if ((device == RT_NULL) || (nt26k_ops == RT_NULL)) { - LOG_E("mb26 param error\n"); + LOG_E("nt26k param error\n"); return RT_ERROR; } - if (mb26_ops->send(mb26_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_MB26, EVENT_TYPE_POWER_OFF)) + if (nt26k_ops->send(nt26k_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_NT26K, EVENT_TYPE_POWER_OFF)) { - LOG_E("mb26 send cmd[%X] failed\n", EVENT_TYPE_POWER_OFF); + LOG_E("nt26k send cmd[%X] failed\n", EVENT_TYPE_POWER_OFF); return -RT_ERROR; } return RT_EOK; @@ -707,18 +707,18 @@ int Mb26_Send_Power_Off(struct at_device *device, void *param) * @param param 操作结构体指针 * @return 操作结果 */ -int Mb26_Send_Power_On(struct at_device *device, void *param) +int Nt26k_Send_Power_On(struct at_device *device, void *param) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)param; - if ((device == RT_NULL) || (mb26_ops == RT_NULL)) + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param; + if ((device == RT_NULL) || (nt26k_ops == RT_NULL)) { - LOG_E("mb26 param error\n"); + LOG_E("nt26k param error\n"); return RT_ERROR; } - if (mb26_ops->send(mb26_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_MB26, EVENT_TYPE_POWER_ON)) + if (nt26k_ops->send(nt26k_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_NT26K, EVENT_TYPE_POWER_ON)) { - LOG_E("mb26 send cmd[%X] failed\n", EVENT_TYPE_POWER_ON); + LOG_E("nt26k send cmd[%X] failed\n", EVENT_TYPE_POWER_ON); return -RT_ERROR; } return RT_EOK; @@ -730,18 +730,18 @@ int Mb26_Send_Power_On(struct at_device *device, void *param) * @param param 操作结构体指针 * @return 操作结果 */ -int Mb26_Send_Device_Failure(struct at_device *device, void *param) +int Nt26k_Send_Device_Failure(struct at_device *device, void *param) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)param; - if ((device == RT_NULL) || (mb26_ops == RT_NULL)) + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param; + if ((device == RT_NULL) || (nt26k_ops == RT_NULL)) { - LOG_E("mb26 param error\n"); + LOG_E("nt26k param error\n"); return RT_ERROR; } - if (mb26_ops->send(mb26_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_MB26, EVENT_TYPE_DEVICE_FAILURE)) + if (nt26k_ops->send(nt26k_ops, DATA_SERIAL_NUM, CMD_TYPE_DEVICE_EVENT_REPORT, DEVICE_TYPE_NT26K, EVENT_TYPE_DEVICE_FAILURE)) { - LOG_E("mb26 send cmd[%X] failed\n", EVENT_TYPE_DEVICE_FAILURE); + LOG_E("nt26k send cmd[%X] failed\n", EVENT_TYPE_DEVICE_FAILURE); return -RT_ERROR; } return RT_EOK; @@ -750,39 +750,39 @@ int Mb26_Send_Device_Failure(struct at_device *device, void *param) 思路感觉就是得重新开一个线程,然后再开一个任务队列,将所有的事件,发送到任务队列 在线程中,对任务队列进行查看并处理,看目前都有哪些事件,是处于那个优先级得,如果是最低优先级,就只发送一帧数据就行了, 如果是不同优先级,按照优先级顺序发送事件,但感觉这样会使得程序更复杂,本来发送就很快,感觉没必要这样搞*/ -const Mb26EventInfo mb26_event_info[] = { - {kMb26PowerOnEvent, MB26_PRIORITY_HIGHEST, "上电心跳事件", Mb26_Send_Power_On}, - {kMb26PowerDownEvent, MB26_PRIORITY_HIGH, "掉电事件", Mb26_Send_Power_Off}, - {kMb26SelfCheckEvent, MB26_PRIORITY_MEDIUM, "自检事件", Mb26_Send_Self_Check}, - {kMb26HeartbeatEvent, MB26_PRIORITY_LOWEST, "定时心跳事件", Mb26_Send_Heartbeat}, - {kMb26TempAnomalyEvent, MB26_PRIORITY_LOWEST, "温度异常事件", Mb26_Send_Temp_Anomaly}, - {kMb26AlarmEvent, MB26_PRIORITY_LOWEST, "报警触发事件", Mb26_Send_Alarm}, - {kMb26AlarmRcyEvent, MB26_PRIORITY_LOWEST, "报警解除事件", Mb26_Send_Alarm_Recover}, - {kMb26FaultEvent, MB26_PRIORITY_LOWEST, "传感器故障事件", Mb26_Send_Fault}, - {kMb26FaultRcyEvent, MB26_PRIORITY_LOWEST, "传感器故障解除事件", Mb26_Send_Fault_Recover}, - {kMb26TimeCalibrationEvent, MB26_PRIORITY_LOWEST, "时间校准事件", Mb26_Send_Time_Calibration}, - {kMb26SilenceEvent, MB26_PRIORITY_LOWEST, "消音事件", Mb26_Send_Silence}, - {kMb26ExceptionEvent, MB26_PRIORITY_LOWEST, "异常事件", Mb26_Send_Exception}, - {kMb26ValveStatusEvent, MB26_PRIORITY_LOWEST, "电磁阀状态改变事件", Mb26_Send_Valve_Status}, - {kMb26FanStatusEvent, MB26_PRIORITY_LOWEST, "风机状态改变事件", Mb26_Send_Fan_Status}, - {kMb26DeviceFailureEvent, MB26_PRIORITY_LOWEST, "设备失效事件", Mb26_Send_Device_Failure}}; +const Nt26kEventInfo nt26k_event_info[] = { + {kNt26kPowerOnEvent, NT26K_PRIORITY_HIGHEST, "上电心跳事件", Nt26k_Send_Power_On}, + {kNt26kPowerDownEvent, NT26K_PRIORITY_HIGH, "掉电事件", Nt26k_Send_Power_Off}, + {kNt26kSelfCheckEvent, NT26K_PRIORITY_MEDIUM, "自检事件", Nt26k_Send_Self_Check}, + {kNt26kHeartbeatEvent, NT26K_PRIORITY_LOWEST, "定时心跳事件", Nt26k_Send_Heartbeat}, + {kNt26kTempAnomalyEvent, NT26K_PRIORITY_LOWEST, "温度异常事件", Nt26k_Send_Temp_Anomaly}, + {kNt26kAlarmEvent, NT26K_PRIORITY_LOWEST, "报警触发事件", Nt26k_Send_Alarm}, + {kNt26kAlarmRcyEvent, NT26K_PRIORITY_LOWEST, "报警解除事件", Nt26k_Send_Alarm_Recover}, + {kNt26kFaultEvent, NT26K_PRIORITY_LOWEST, "传感器故障事件", Nt26k_Send_Fault}, + {kNt26kFaultRcyEvent, NT26K_PRIORITY_LOWEST, "传感器故障解除事件", Nt26k_Send_Fault_Recover}, + {kNt26kTimeCalibrationEvent, NT26K_PRIORITY_LOWEST, "时间校准事件", Nt26k_Send_Time_Calibration}, + {kNt26kSilenceEvent, NT26K_PRIORITY_LOWEST, "消音事件", Nt26k_Send_Silence}, + {kNt26kExceptionEvent, NT26K_PRIORITY_LOWEST, "异常事件", Nt26k_Send_Exception}, + {kNt26kValveStatusEvent, NT26K_PRIORITY_LOWEST, "电磁阀状态改变事件", Nt26k_Send_Valve_Status}, + {kNt26kFanStatusEvent, NT26K_PRIORITY_LOWEST, "风机状态改变事件", Nt26k_Send_Fan_Status}, + {kNt26kDeviceFailureEvent, NT26K_PRIORITY_LOWEST, "设备失效事件", Nt26k_Send_Device_Failure}}; /** - * 处理MB26设备的事件 - * @param mb26_recv_event 接收到的MB26事件标志 + * 处理NT26K设备的事件 + * @param nt26k_recv_event 接收到的NT26K事件标志 * @return */ -int Mb26_Process_Events(Mb26Event mb26_recv_event, struct at_device *device, void *param) +int Nt26k_Process_Events(Nt26kEvent nt26k_recv_event, struct at_device *device, void *param) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)param; - const Mb26EventInfo *event = RT_NULL; + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param; + const Nt26kEventInfo *event = RT_NULL; - for (size_t i = 0; i < sizeof(mb26_event_info) / sizeof(Mb26EventInfo); ++i) + for (size_t i = 0; i < sizeof(nt26k_event_info) / sizeof(Nt26kEventInfo); ++i) { // 检查当前事件是否在接收到的事件标志中 - if (mb26_recv_event == mb26_event_info[i].event_flag) + if (nt26k_recv_event == nt26k_event_info[i].event_flag) { - event = &mb26_event_info[i]; + event = &nt26k_event_info[i]; break; } } @@ -796,23 +796,23 @@ int Mb26_Process_Events(Mb26Event mb26_recv_event, struct at_device *device, voi // 如果事件有关联的发送函数,则调用该发送函数 if (event->send_func) { - int result = event->send_func(device, mb26_ops); + int result = event->send_func(device, nt26k_ops); if (result != RT_EOK) { - LOG_E("mb26 send cmd failed\n"); - Mb26_Reset(device); // 重启模组 + LOG_E("nt26k send cmd failed\n"); + Nt26k_Reset(device); // 重启模组 rt_thread_mdelay(5000); - if (mb26_conncet_tcp_flag != 1) + if (nt26k_conncet_tcp_flag != 1) { if (device->class->device_ops->control(device, AT_DEVICE_CTRL_NET_CONN, RT_NULL) == RT_EOK) // 打开连接 { - LOG_D("mb26 connect tcp success\n"); - Reset_Mb26_Life_Timer(); + LOG_D("nt26k connect tcp success\n"); + Reset_Nt26k_Life_Timer(); // 重启后重新尝试发送 - result = event->send_func(device, mb26_ops); + result = event->send_func(device, nt26k_ops); if (result != RT_EOK) { - LOG_E("mb26 send cmd after module reset failed\n"); + LOG_E("nt26k send cmd after module reset failed\n"); if (device->class->device_ops->control(device, AT_DEVICE_CTRL_POWER_OFF, RT_NULL) == RT_EOK) // 打开连接 { @@ -832,13 +832,13 @@ int Mb26_Process_Events(Mb26Event mb26_recv_event, struct at_device *device, voi } else { - LOG_E("mb26 connect tcp failed\n"); - Mb26_Reset(device); // 重启模组 + LOG_E("nt26k connect tcp failed\n"); + Nt26k_Reset(device); // 重启模组 } } else { - LOG_E("MB26连接标志有BUG\n"); + LOG_E("NT26K连接标志有BUG\n"); } } else @@ -850,7 +850,7 @@ int Mb26_Process_Events(Mb26Event mb26_recv_event, struct at_device *device, voi } // 比较帧头和帧尾 -int Compare_HeaderToTail(struct Mb26_Ops *ops) +int Compare_HeaderToTail(struct Nt26k_Ops *ops) { // 比较帧头 for (int i = 0; i < 3; i++) @@ -882,15 +882,15 @@ int Compare_HeaderToTail(struct Mb26_Ops *ops) return RT_EOK; } -void Handle_Server_Reply(struct Mb26_Ops *ops) +void Handle_Server_Reply(struct Nt26k_Ops *ops) { - if (ops->recv->recv_data.event_type == INSTRUCTION_HEART_BEAT) + if ((ops->recv->recv_data.event_type == INSTRUCTION_HEART_BEAT)|| (ops->recv->recv_data.event_type == EVENT_TYPE_POWER_ON)) { - LOG_D("mb26 send data success\n"); + LOG_D("nt26k send data success\n"); } } -void Handle_Self_Check(struct Mb26_Ops *ops) +void Handle_Self_Check(struct Nt26k_Ops *ops) { LOG_D("服务器下发自检指令\n"); char imei[16] = {0}; @@ -902,10 +902,10 @@ void Handle_Self_Check(struct Mb26_Ops *ops) LOG_D("temp: %s", temp); Send_Laser_Alarm_Event(kSelfCheckEvent); rt_thread_mdelay(100); - ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_MB26, INSTRUCTION_DOWN_SELF_CHECK, temp, RESPONSE_CODE_SUCCESS); + ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_NT26K, INSTRUCTION_DOWN_SELF_CHECK, temp, RESPONSE_CODE_SUCCESS); } -void Handle_Mute(struct Mb26_Ops *ops) +void Handle_Mute(struct Nt26k_Ops *ops) { LOG_D("服务器下发消音指令\n"); @@ -916,10 +916,10 @@ void Handle_Mute(struct Mb26_Ops *ops) Send_Laser_Alarm_Event(KMuteEvent); rt_thread_mdelay(100); - ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_MB26, INSTRUCTION_DOWN_MUTE, temp, RESPONSE_CODE_SUCCESS); + ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_NT26K, INSTRUCTION_DOWN_MUTE, temp, RESPONSE_CODE_SUCCESS); } -void Handle_Close_Valve(struct Mb26_Ops *ops) +void Handle_Close_Valve(struct Nt26k_Ops *ops) { LOG_D("服务器下发关闭阀门指令\n"); @@ -933,10 +933,10 @@ void Handle_Close_Valve(struct Mb26_Ops *ops) // emv_state_flag = 0; EMV_CLOSE_VALVE; // rt_uint8_t ret = BSP_Set_Emv_Status(0); - ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_MB26, INSTRUCTION_DOWN_CLOSE_VALVE, temp, RESPONSE_CODE_SUCCESS); + ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_NT26K, INSTRUCTION_DOWN_CLOSE_VALVE, temp, RESPONSE_CODE_SUCCESS); } -void Handle_Open_Valve(struct Mb26_Ops *ops) +void Handle_Open_Valve(struct Nt26k_Ops *ops) { LOG_D("服务器下发打开阀门指令\n"); @@ -950,10 +950,10 @@ void Handle_Open_Valve(struct Mb26_Ops *ops) // rt_thread_mdelay(20); // emv_state_flag = 0; - // ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_MB26, INSTRUCTION_DOWN_OPEN_VALVE, temp, RESPONSE_CODE_SUCCESS); + // ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_NT26K, INSTRUCTION_DOWN_OPEN_VALVE, temp, RESPONSE_CODE_SUCCESS); } -void Handle_Open_Relay(struct Mb26_Ops *ops) +void Handle_Open_Relay(struct Nt26k_Ops *ops) { LOG_D("服务器下发打开继电器指令\n"); @@ -964,10 +964,10 @@ void Handle_Open_Relay(struct Mb26_Ops *ops) relay_state_flag = 1; rt_thread_mdelay(10); // rt_uint8_t ret = BSP_Set_Relay_Status(0); - ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_MB26, INSTRUCTION_DOWN_OPEN_RELAY, temp, RESPONSE_CODE_SUCCESS); + ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_NT26K, INSTRUCTION_DOWN_OPEN_RELAY, temp, RESPONSE_CODE_SUCCESS); } -void Handle_Close_Relay(struct Mb26_Ops *ops) +void Handle_Close_Relay(struct Nt26k_Ops *ops) { LOG_D("服务器下发关闭继电器指令\n"); @@ -979,10 +979,10 @@ void Handle_Close_Relay(struct Mb26_Ops *ops) relay_state_flag = 0; rt_thread_mdelay(100); - ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_MB26, INSTRUCTION_DOWN_CLOSE_RELAY, temp, RESPONSE_CODE_SUCCESS); + ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_NT26K, INSTRUCTION_DOWN_CLOSE_RELAY, temp, RESPONSE_CODE_SUCCESS); } -void Handle_Query_Params(struct Mb26_Ops *ops) +void Handle_Query_Params(struct Nt26k_Ops *ops) { rt_uint8_t data[10] = {0}; char str[64] = {0}; @@ -995,10 +995,10 @@ void Handle_Query_Params(struct Mb26_Ops *ops) rt_sprintf(str, "0000000000%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7], data[8], data[9]); rt_thread_mdelay(100); // 释放下线程 - ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_MB26, INSTRUCTION_DOWN_QUERY_PARAMS, str, RESPONSE_CODE_SUCCESS); + ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_NT26K, INSTRUCTION_DOWN_QUERY_PARAMS, str, RESPONSE_CODE_SUCCESS); } -int Handle_Config_Params(struct Mb26_Ops *ops) +int Handle_Config_Params(struct Nt26k_Ops *ops) { char data_buf[32] = {0}; rt_uint8_t recv_data[16] = {0}; @@ -1030,7 +1030,7 @@ int Handle_Config_Params(struct Mb26_Ops *ops) { if ((recv_data[2] > 25) || (recv_data[2] < 5)) /*家报的报警设定值应在5%~25%之间*/ { - if (ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_MB26, INSTRUCTION_DOWN_CONFIG_PARAMS, temp, RESPONSE_CODE_ACTION_FAILURE) == RT_EOK) + if (ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_NT26K, INSTRUCTION_DOWN_CONFIG_PARAMS, temp, RESPONSE_CODE_ACTION_FAILURE) == RT_EOK) { LOG_W("recv_data[3] :%d", recv_data[3]); LOG_W("配置参数超出范围,请核实后重试\n"); @@ -1043,13 +1043,13 @@ int Handle_Config_Params(struct Mb26_Ops *ops) { rt_uint16_t nb_upload_time = (uint16_t)Flash_Get_SysCfg(kNbUploadCycleId); unsigned long timeout = nb_upload_time * 60 * RT_TICK_PER_SECOND; - // rt_timer_stop(mb26_timer); - rt_timer_control(mb26_timer, RT_TIMER_CTRL_SET_TIME, (void *)&timeout); // 更新上报周期 - // rt_timer_control(mb26_timer, RT_TIMER_CTRL_GET_TIME, &timeout); + // rt_timer_stop(nt26k_timer); + rt_timer_control(nt26k_timer, RT_TIMER_CTRL_SET_TIME, (void *)&timeout); // 更新上报周期 + // rt_timer_control(nt26k_timer, RT_TIMER_CTRL_GET_TIME, &timeout); // LOG_D("timeout:%d", timeout/1000/60); - rt_timer_start(mb26_timer); + rt_timer_start(nt26k_timer); LOG_D("上报周期由%dmin更新为%dmin", ((flash_info[5] << 8) | flash_info[6]), nb_upload_time); - if (ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_MB26, INSTRUCTION_DOWN_CONFIG_PARAMS, temp, RESPONSE_CODE_SUCCESS) == RT_EOK) + if (ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_NT26K, INSTRUCTION_DOWN_CONFIG_PARAMS, temp, RESPONSE_CODE_SUCCESS) == RT_EOK) { LOG_D("配置参数写入成功\n"); } @@ -1058,7 +1058,7 @@ int Handle_Config_Params(struct Mb26_Ops *ops) else { LOG_D("配置参数写入失败\n"); - if (ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_MB26, INSTRUCTION_DOWN_CONFIG_PARAMS, temp, RESPONSE_CODE_ACTION_FAILURE) == RT_EOK) + if (ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_NT26K, INSTRUCTION_DOWN_CONFIG_PARAMS, temp, RESPONSE_CODE_ACTION_FAILURE) == RT_EOK) { LOG_D("写入失败响应成功\n"); } @@ -1067,14 +1067,14 @@ int Handle_Config_Params(struct Mb26_Ops *ops) } } } - if (ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_MB26, INSTRUCTION_DOWN_CONFIG_PARAMS, temp, RESPONSE_CODE_SUCCESS) == RT_EOK) + if (ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_NT26K, INSTRUCTION_DOWN_CONFIG_PARAMS, temp, RESPONSE_CODE_SUCCESS) == RT_EOK) { LOG_D("配置参数没有变化\n"); } return RT_EOK; } -void Handle_Time_Calibration_Data(struct Mb26_Ops *ops) +void Handle_Time_Calibration_Data(struct Nt26k_Ops *ops) { rt_uint8_t data[10] = {0}; TsRtcDateTime rtc_dt; @@ -1096,11 +1096,11 @@ void Handle_Time_Calibration_Data(struct Mb26_Ops *ops) rtc_dt.year, rtc_dt.month, rtc_dt.day, rtc_dt.hour, rtc_dt.minute, rtc_dt.second, rtc_dt.week); RTC_SetTime(rtc_dt.year, rtc_dt.month, rtc_dt.day, rtc_dt.hour, rtc_dt.minute, 0); /* Setup Time */ rt_thread_mdelay(100); // 释放下线程 - ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_TIME_CALIBRATION, DEVICE_TYPE_MB26, INSTRUCTION_DOWN_TIME_CALIBRATION, temp, RESPONSE_CODE_SUCCESS); + ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_TIME_CALIBRATION, DEVICE_TYPE_NT26K, INSTRUCTION_DOWN_TIME_CALIBRATION, temp, RESPONSE_CODE_SUCCESS); } // 下发修改服务器地址指令 -void Handle_Sever_Addr_Set(struct Mb26_Ops *ops) +void Handle_Sever_Addr_Set(struct Nt26k_Ops *ops) { rt_uint8_t data[6] = {0}; char imei[16] = {0}; @@ -1118,11 +1118,11 @@ void Handle_Sever_Addr_Set(struct Mb26_Ops *ops) else { LOG_D("服务器地址修改成功\n"); - ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_MB26, INSTRUCTION_DOWN_SEVER_ADDR, temp, RESPONSE_CODE_SUCCESS); + ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_NT26K, INSTRUCTION_DOWN_SEVER_ADDR, temp, RESPONSE_CODE_SUCCESS); } } -void Handle_Error(struct Mb26_Ops *ops, rt_err_t ret) +void Handle_Error(struct Nt26k_Ops *ops, rt_err_t ret) { LOG_E("数据帧解析失败,错误码: %d", ret); @@ -1131,49 +1131,49 @@ void Handle_Error(struct Mb26_Ops *ops, rt_err_t ret) Get_Nb_Imei(imei, FLASH_NB_IMEI_LEN); String2Hex(temp, imei); // 将字符串转为十六进制字符串 - ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_MB26, ops->recv->cmd, temp, RESPONSE_CODE_PARSE_FAIL); + ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_NT26K, ops->recv->cmd, temp, RESPONSE_CODE_PARSE_FAIL); } -void Handle_Instruction_Down(struct Mb26_Ops *ops) +void Handle_Instruction_Down(struct Nt26k_Ops *ops) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)ops; + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)ops; - switch (mb26_ops->recv->recv_data.event_type) + switch (nt26k_ops->recv->recv_data.event_type) { case INSTRUCTION_DOWN_SELF_CHECK: - Handle_Self_Check(mb26_ops); + Handle_Self_Check(nt26k_ops); break; case INSTRUCTION_DOWN_MUTE: - Handle_Mute(mb26_ops); + Handle_Mute(nt26k_ops); break; case INSTRUCTION_DOWN_CLOSE_VALVE: - Handle_Close_Valve(mb26_ops); + Handle_Close_Valve(nt26k_ops); break; case INSTRUCTION_DOWN_OPEN_VALVE: - Handle_Open_Valve(mb26_ops); + Handle_Open_Valve(nt26k_ops); break; case INSTRUCTION_DOWN_OPEN_RELAY: - Handle_Open_Relay(mb26_ops); + Handle_Open_Relay(nt26k_ops); break; case INSTRUCTION_DOWN_CLOSE_RELAY: - Handle_Close_Relay(mb26_ops); + Handle_Close_Relay(nt26k_ops); break; case INSTRUCTION_DOWN_QUERY_PARAMS: - Handle_Query_Params(mb26_ops); + Handle_Query_Params(nt26k_ops); break; case INSTRUCTION_DOWN_CONFIG_PARAMS: - Handle_Config_Params(mb26_ops); + Handle_Config_Params(nt26k_ops); break; case INSTRUCTION_DOWN_TIME_CALIBRATION: - Handle_Time_Calibration_Data(mb26_ops); + Handle_Time_Calibration_Data(nt26k_ops); break; case INSTRUCTION_DOWN_SEVER_ADDR: - Handle_Sever_Addr_Set(mb26_ops); + Handle_Sever_Addr_Set(nt26k_ops); break; } } -void Handle_Time_Calibration(struct Mb26_Ops *ops) +void Handle_Time_Calibration(struct Nt26k_Ops *ops) { rt_uint8_t data[10] = {0}; LOG_D("服务器下发时间校准数据\n"); @@ -1186,34 +1186,34 @@ void Handle_Time_Calibration(struct Mb26_Ops *ops) LOG_I("时间: %04d-%02d-%02d %02d:%02d:%02d (星期%d)\n", rtc_dt.year, rtc_dt.month, rtc_dt.day, rtc_dt.hour, rtc_dt.minute, rtc_dt.second, rtc_dt.week); RTC_SetTime(rtc_dt.year, rtc_dt.month, rtc_dt.day, rtc_dt.hour, rtc_dt.minute, rtc_dt.second); /* Setup Time */ - ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_MB26, INSTRUCTION_DOWN_TIME_CALIBRATION, MB26_DEFIENE_DATA, RESPONSE_CODE_SUCCESS); + ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_NT26K, INSTRUCTION_DOWN_TIME_CALIBRATION, NT26K_DEFIENE_DATA, RESPONSE_CODE_SUCCESS); } -void Handle_Cmd_Type(struct Mb26_Ops *ops) +void Handle_Cmd_Type(struct Nt26k_Ops *ops) { - struct Mb26_Ops *mb26_ops = (struct Mb26_Ops *)ops; + struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)ops; - switch (mb26_ops->recv->cmd) + switch (nt26k_ops->recv->cmd) { case CMD_TYPE_SERVER_REPLY: - Handle_Server_Reply(mb26_ops); + Handle_Server_Reply(nt26k_ops); break; case CMD_TYPE_INSTRUCTION_DOWN: - Handle_Instruction_Down(mb26_ops); + Handle_Instruction_Down(nt26k_ops); break; case CMD_TYPE_TIME_CALIBRATION: - Handle_Time_Calibration(mb26_ops); + Handle_Time_Calibration(nt26k_ops); break; default: - mb26_ops->Resp(mb26_ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_MB26, ops->recv->cmd, MB26_DEFIENE_DATA, RESPONSE_CODE_PARSE_FAIL); + nt26k_ops->Resp(nt26k_ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_NT26K, ops->recv->cmd, NT26K_DEFIENE_DATA, RESPONSE_CODE_PARSE_FAIL); break; } } -void Analyze_Recv_Frame(struct at_device *device, struct Mb26_Ops *ops) +void Analyze_Recv_Frame(struct at_device *device, struct Nt26k_Ops *ops) { rt_err_t ret = RT_EOK; - Reset_Mb26_Life_Timer(); // 只要数据,则重置定时器,不管数据是否正确 + Reset_Nt26k_Life_Timer(); // 只要数据,则重置定时器,不管数据是否正确 ret = Compare_HeaderToTail(ops); if (ret == RT_EOK) @@ -1231,196 +1231,196 @@ void Analyze_Recv_Frame(struct at_device *device, struct Mb26_Ops *ops) 发送一包数据后,转换到检测模式 120分钟发送一次数据 当有事件发生时,发送一包事件数据包 */ -static void Mb26_Send_Thread_Entry(void *param) +static void Nt26k_Send_Thread_Entry(void *param) { rt_err_t result = RT_EOK; - rt_uint32_t mb26_recv_event; - LOG_D("mb26 thread entry\n"); + rt_uint32_t nt26k_recv_event; + LOG_D("nt26k thread entry\n"); - struct Mb26_Ops *ops = (struct Mb26_Ops *)param; - struct at_device_mb26 *mb26 = &_dev; - struct at_device *device = at_device_get_by_name(AT_DEVICE_NAMETYPE_NETDEV, mb26->device_name); + struct Nt26k_Ops *ops = (struct Nt26k_Ops *)param; + struct at_device_nt26k *nt26k = &_dev; + struct at_device *device = at_device_get_by_name(AT_DEVICE_NAMETYPE_NETDEV, nt26k->device_name); RT_ASSERT(device); if (ops->init(ops, PROTOCOL_VERSION) != RT_EOK) { - LOG_E("mb26 init failed\n"); + LOG_E("nt26k init failed\n"); } else { - LOG_D("mb26 init success\n"); - rt_completion_wait(&mb26_init_complate, RT_WAITING_FOREVER); // wait for mb26 init finish - Mb26_Send_Event(kMb26PowerOnEvent); + LOG_D("nt26k init success\n"); + rt_completion_wait(&nt26k_init_complate, RT_WAITING_FOREVER); // wait for nt26k init finish + Nt26k_Send_Event(kNt26kPowerOnEvent); } while (1) { result = rt_event_recv(&at_device_event, - Mb26_Get_Event_Flag(kMb26PowerOnEvent) | - Mb26_Get_Event_Flag(kMb26HeartbeatEvent) | - Mb26_Get_Event_Flag(kMb26SelfCheckEvent) | - Mb26_Get_Event_Flag(kMb26SilenceEvent) | - Mb26_Get_Event_Flag(kMb26ExceptionEvent) | - Mb26_Get_Event_Flag(kMb26ValveStatusEvent) | - Mb26_Get_Event_Flag(kMb26FanStatusEvent) | - Mb26_Get_Event_Flag(kMb26TempAnomalyEvent) | - Mb26_Get_Event_Flag(kMb26PowerOnEvent) | - Mb26_Get_Event_Flag(kMb26PowerDownEvent) | - Mb26_Get_Event_Flag(kMb26AlarmEvent) | - Mb26_Get_Event_Flag(kMb26AlarmRcyEvent) | - Mb26_Get_Event_Flag(kMb26FaultEvent) | - Mb26_Get_Event_Flag(kMb26FaultRcyEvent) | - Mb26_Get_Event_Flag(kMb26DeviceFailureEvent) | - Mb26_Get_Event_Flag(kMb26TimeCalibrationEvent), + Nt26k_Get_Event_Flag(kNt26kPowerOnEvent) | + Nt26k_Get_Event_Flag(kNt26kHeartbeatEvent) | + Nt26k_Get_Event_Flag(kNt26kSelfCheckEvent) | + Nt26k_Get_Event_Flag(kNt26kSilenceEvent) | + Nt26k_Get_Event_Flag(kNt26kExceptionEvent) | + Nt26k_Get_Event_Flag(kNt26kValveStatusEvent) | + Nt26k_Get_Event_Flag(kNt26kFanStatusEvent) | + Nt26k_Get_Event_Flag(kNt26kTempAnomalyEvent) | + Nt26k_Get_Event_Flag(kNt26kPowerOnEvent) | + Nt26k_Get_Event_Flag(kNt26kPowerDownEvent) | + Nt26k_Get_Event_Flag(kNt26kAlarmEvent) | + Nt26k_Get_Event_Flag(kNt26kAlarmRcyEvent) | + Nt26k_Get_Event_Flag(kNt26kFaultEvent) | + Nt26k_Get_Event_Flag(kNt26kFaultRcyEvent) | + Nt26k_Get_Event_Flag(kNt26kDeviceFailureEvent) | + Nt26k_Get_Event_Flag(kNt26kTimeCalibrationEvent), RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, - RT_WAITING_FOREVER, &mb26_recv_event); // 这个事件一般是设备端发生了变化,发送到服务器时调用 + RT_WAITING_FOREVER, &nt26k_recv_event); // 这个事件一般是设备端发生了变化,发送到服务器时调用 if (result == RT_EOK) { - LOG_D("mb26 recv event OK\n"); - if (mb26_conncet_tcp_flag != 1) + LOG_D("nt26k recv event OK\n"); + if (nt26k_conncet_tcp_flag != 1) { if (device->class->device_ops->control(device, AT_DEVICE_CTRL_NET_CONN, RT_NULL) == RT_EOK) // 打开连接 { - LOG_D("mb26 connect tcp success\n"); - rt_timer_start(mb26_life_timer); + LOG_D("nt26k connect tcp success\n"); + rt_timer_start(nt26k_life_timer); } else { - LOG_E("mb26 connect tcp failed\n"); + LOG_E("nt26k connect tcp failed\n"); } } - if (mb26_conncet_tcp_flag) + if (nt26k_conncet_tcp_flag) { - Reset_Mb26_Life_Timer(); - if (mb26_recv_event & Mb26_Get_Event_Flag(kMb26PowerOnEvent)) + Reset_Nt26k_Life_Timer(); + if (nt26k_recv_event & Nt26k_Get_Event_Flag(kNt26kPowerOnEvent)) { - result = Mb26_Process_Events(kMb26PowerOnEvent, device, ops); // 当上电心跳包发送不成功时,其他事件不启动 + result = Nt26k_Process_Events(kNt26kPowerOnEvent, device, ops); // 当上电心跳包发送不成功时,其他事件不启动 if (result) { power_on_send_flag = 0; - rt_timer_start(mb26_power_error_timer); // 启动重连定时器, 3min一次,直到发送成功 - LOG_E("mb26 send data failed result = [%d]\n", result); + rt_timer_start(nt26k_power_error_timer); // 启动重连定时器, 3min一次,直到发送成功 + LOG_E("nt26k send data failed result = [%d]\n", result); } else { - rt_timer_start(mb26_timer); // 当上电心跳包发送成功时, 开始心跳包周期发送 + rt_timer_start(nt26k_timer); // 当上电心跳包发送成功时, 开始心跳包周期发送 power_on_send_flag = 1; - Mb26_Send_Event(kMb26TimeCalibrationEvent); // 上电网络连接成功时,更新下时间 - rt_timer_start(mb26_upload_timer); + Nt26k_Send_Event(kNt26kTimeCalibrationEvent); // 上电网络连接成功时,更新下时间 + rt_timer_start(nt26k_upload_timer); } } if (power_on_send_flag) { - if (mb26_recv_event & Mb26_Get_Event_Flag(kMb26HeartbeatEvent)) + if (nt26k_recv_event & Nt26k_Get_Event_Flag(kNt26kHeartbeatEvent)) { - result = Mb26_Process_Events(kMb26HeartbeatEvent, device, ops); + result = Nt26k_Process_Events(kNt26kHeartbeatEvent, device, ops); if (result) { - LOG_E("mb26 send data failed result = [%d]\n", result); + LOG_E("nt26k send data failed result = [%d]\n", result); } } - else if (mb26_recv_event & Mb26_Get_Event_Flag(kMb26TimeCalibrationEvent)) + else if (nt26k_recv_event & Nt26k_Get_Event_Flag(kNt26kTimeCalibrationEvent)) { Time_Calibration(device); } - else if (mb26_recv_event & Mb26_Get_Event_Flag(kMb26AlarmEvent)) + else if (nt26k_recv_event & Nt26k_Get_Event_Flag(kNt26kAlarmEvent)) { - result = Mb26_Process_Events(kMb26AlarmEvent, device, ops); + result = Nt26k_Process_Events(kNt26kAlarmEvent, device, ops); if (result) { - LOG_E("mb26 send data failed result = [%d]\n", result); + LOG_E("nt26k send data failed result = [%d]\n", result); } } - else if (mb26_recv_event & Mb26_Get_Event_Flag(kMb26AlarmRcyEvent)) + else if (nt26k_recv_event & Nt26k_Get_Event_Flag(kNt26kAlarmRcyEvent)) { - result = Mb26_Process_Events(kMb26AlarmRcyEvent, device, ops); + result = Nt26k_Process_Events(kNt26kAlarmRcyEvent, device, ops); if (result) { - LOG_E("mb26 send data failed result = [%d]\n", result); + LOG_E("nt26k send data failed result = [%d]\n", result); } } - else if (mb26_recv_event & Mb26_Get_Event_Flag(kMb26FaultEvent)) + else if (nt26k_recv_event & Nt26k_Get_Event_Flag(kNt26kFaultEvent)) { if (device_state_flag != 1) // 当设备失效时,只上报失效信息 { - result = Mb26_Process_Events(kMb26FaultEvent, device, ops); + result = Nt26k_Process_Events(kNt26kFaultEvent, device, ops); if (result) { - LOG_E("mb26 send data failed result = [%d]\n", result); + LOG_E("nt26k send data failed result = [%d]\n", result); } } } - else if (mb26_recv_event & Mb26_Get_Event_Flag(kMb26FaultRcyEvent)) + else if (nt26k_recv_event & Nt26k_Get_Event_Flag(kNt26kFaultRcyEvent)) { - result = Mb26_Process_Events(kMb26FaultRcyEvent, device, ops); + result = Nt26k_Process_Events(kNt26kFaultRcyEvent, device, ops); if (result) { - LOG_E("mb26 send data failed result = [%d]\n", result); + LOG_E("nt26k send data failed result = [%d]\n", result); } } - else if (mb26_recv_event & Mb26_Get_Event_Flag(kMb26SelfCheckEvent)) + else if (nt26k_recv_event & Nt26k_Get_Event_Flag(kNt26kSelfCheckEvent)) { - result = Mb26_Process_Events(kMb26SelfCheckEvent, device, ops); + result = Nt26k_Process_Events(kNt26kSelfCheckEvent, device, ops); if (result) { - LOG_E("mb26 send data failed result = [%d]\n", result); + LOG_E("nt26k send data failed result = [%d]\n", result); } } - else if (mb26_recv_event & Mb26_Get_Event_Flag(kMb26SilenceEvent)) + else if (nt26k_recv_event & Nt26k_Get_Event_Flag(kNt26kSilenceEvent)) { - result = Mb26_Process_Events(kMb26SilenceEvent, device, ops); + result = Nt26k_Process_Events(kNt26kSilenceEvent, device, ops); if (result) { - LOG_E("mb26 send data failed result = [%d]\n", result); + LOG_E("nt26k send data failed result = [%d]\n", result); } } - else if (mb26_recv_event & Mb26_Get_Event_Flag(kMb26ExceptionEvent)) + else if (nt26k_recv_event & Nt26k_Get_Event_Flag(kNt26kExceptionEvent)) { - result = Mb26_Process_Events(kMb26ExceptionEvent, device, ops); + result = Nt26k_Process_Events(kNt26kExceptionEvent, device, ops); if (result) { - LOG_E("mb26 send data failed result = [%d]\n", result); + LOG_E("nt26k send data failed result = [%d]\n", result); } } - else if (mb26_recv_event & Mb26_Get_Event_Flag(kMb26ValveStatusEvent)) + else if (nt26k_recv_event & Nt26k_Get_Event_Flag(kNt26kValveStatusEvent)) { - result = Mb26_Process_Events(kMb26ValveStatusEvent, device, ops); + result = Nt26k_Process_Events(kNt26kValveStatusEvent, device, ops); if (result) { - LOG_E("mb26 send data failed result = [%d]\n", result); + LOG_E("nt26k send data failed result = [%d]\n", result); } } - else if (mb26_recv_event & Mb26_Get_Event_Flag(kMb26FanStatusEvent)) + else if (nt26k_recv_event & Nt26k_Get_Event_Flag(kNt26kFanStatusEvent)) { - result = Mb26_Process_Events(kMb26FanStatusEvent, device, ops); + result = Nt26k_Process_Events(kNt26kFanStatusEvent, device, ops); if (result) { - LOG_E("mb26 send data failed result = [%d]\n", result); + LOG_E("nt26k send data failed result = [%d]\n", result); } } - else if (mb26_recv_event & Mb26_Get_Event_Flag(kMb26TempAnomalyEvent)) + else if (nt26k_recv_event & Nt26k_Get_Event_Flag(kNt26kTempAnomalyEvent)) { - result = Mb26_Process_Events(kMb26TempAnomalyEvent, device, ops); + result = Nt26k_Process_Events(kNt26kTempAnomalyEvent, device, ops); if (result) { - LOG_E("mb26 send data failed result = [%d]\n", result); + LOG_E("nt26k send data failed result = [%d]\n", result); } } - else if (mb26_recv_event & Mb26_Get_Event_Flag(kMb26PowerDownEvent)) + else if (nt26k_recv_event & Nt26k_Get_Event_Flag(kNt26kPowerDownEvent)) { - result = Mb26_Process_Events(kMb26PowerDownEvent, device, ops); + result = Nt26k_Process_Events(kNt26kPowerDownEvent, device, ops); if (result) { - LOG_E("mb26 send data failed result = [%d]\n", result); + LOG_E("nt26k send data failed result = [%d]\n", result); } - mb26_event_initialized = RT_FALSE; // 当接收到掉电事件时,发送完成后删除事件,不再接收其他事件 + nt26k_event_initialized = RT_FALSE; // 当接收到掉电事件时,发送完成后删除事件,不再接收其他事件 } - else if (mb26_recv_event & Mb26_Get_Event_Flag(kMb26DeviceFailureEvent)) + else if (nt26k_recv_event & Nt26k_Get_Event_Flag(kNt26kDeviceFailureEvent)) { - result = Mb26_Process_Events(kMb26DeviceFailureEvent, device, ops); + result = Nt26k_Process_Events(kNt26kDeviceFailureEvent, device, ops); if (result) { - LOG_E("mb26 send data failed result = [%d]\n", result); + LOG_E("nt26k send data failed result = [%d]\n", result); } } } @@ -1430,159 +1430,159 @@ static void Mb26_Send_Thread_Entry(void *param) } } -static void Mb26_Recv_Thread_Entry(void *parameter) +static void Nt26k_Recv_Thread_Entry(void *parameter) { - struct Mb26_Ops *ops = (struct Mb26_Ops *)parameter; - struct at_device_mb26 *mb26 = &_dev; - struct at_device *device = at_device_get_by_name(AT_DEVICE_NAMETYPE_NETDEV, mb26->device_name); + struct Nt26k_Ops *ops = (struct Nt26k_Ops *)parameter; + struct at_device_nt26k *nt26k = &_dev; + struct at_device *device = at_device_get_by_name(AT_DEVICE_NAMETYPE_NETDEV, nt26k->device_name); RT_ASSERT(device); rt_err_t ret; - LOG_D("mb26 recv thread entry\n"); + LOG_D("nt26k recv thread entry\n"); while (1) { - ret = rt_sem_take(mb26_recv_sem, RT_WAITING_FOREVER); // 这个主要用来处理的数据 + ret = rt_sem_take(nt26k_recv_sem, RT_WAITING_FOREVER); // 这个主要用来处理的数据 if (ret == RT_EOK) { - rt_timer_start(mb26_life_timer); + rt_timer_start(nt26k_life_timer); /*对数据帧进行分析,判断所处的是对服务器响应还是指令下发*/ Analyze_Recv_Frame(device, ops); } } } -static void Mb26_Life_Thread_Entry(void *parameter) +static void Nt26k_Life_Thread_Entry(void *parameter) { - struct at_device_mb26 *mb26 = &_dev; - struct at_device *device = at_device_get_by_name(AT_DEVICE_NAMETYPE_NETDEV, mb26->device_name); + struct at_device_nt26k *nt26k = &_dev; + struct at_device *device = at_device_get_by_name(AT_DEVICE_NAMETYPE_NETDEV, nt26k->device_name); RT_ASSERT(device); rt_err_t ret; - LOG_D("mb26_life_thread entry\n"); + LOG_D("nt26k_life_thread entry\n"); while (1) { - ret = rt_sem_take(mb26_life_sem, RT_WAITING_FOREVER); + ret = rt_sem_take(nt26k_life_sem, RT_WAITING_FOREVER); if (ret == RT_EOK) { - if (mb26_conncet_tcp_flag) + if (nt26k_conncet_tcp_flag) { device->class->device_ops->control(device, AT_DEVICE_CTRL_NET_DISCONN, RT_NULL); - LOG_D("close mb26 tcp connect\n "); + LOG_D("close nt26k tcp connect\n "); } } } } // 定时器回调函数,当1分钟内没有数据交互时,关闭tcp连接 -static void Mb26_Upload_Timer_Cb(void *parameter) +static void Nt26k_Upload_Timer_Cb(void *parameter) { - Mb26_Send_Event(kMb26TimeCalibrationEvent); // 更新下时间 + Nt26k_Send_Event(kNt26kTimeCalibrationEvent); // 更新下时间 } -int BSP_Mb26_Thread_Init(void) +int BSP_Nt26k_Thread_Init(void) { rt_err_t ret; - Mb26_Event_Init(); + Nt26k_Event_Init(); rt_uint32_t nb_upload_time = (uint16_t)Flash_Get_SysCfg(kNbUploadCycleId); unsigned long timeout = nb_upload_time * 60 * RT_TICK_PER_SECOND; LOG_I("上报服务器周期:%d分钟", nb_upload_time); - mb26_mutex = rt_mutex_create("mb26_mutex", RT_IPC_FLAG_FIFO); - if (mb26_mutex == RT_NULL) + nt26k_mutex = rt_mutex_create("nt26k_mutex", RT_IPC_FLAG_FIFO); + if (nt26k_mutex == RT_NULL) { - LOG_E("mb26_mutex create failed"); + LOG_E("nt26k_mutex create failed"); } - mb26_recv_sem = rt_sem_create("mb26_recv", 0, RT_IPC_FLAG_FIFO); - if (mb26_recv_sem == RT_NULL) + nt26k_recv_sem = rt_sem_create("nt26k_recv", 0, RT_IPC_FLAG_FIFO); + if (nt26k_recv_sem == RT_NULL) { - LOG_E("mb26_recv_sem create failed"); + LOG_E("nt26k_recv_sem create failed"); } - mb26_life_sem = rt_sem_create("mb26_life", 0, RT_IPC_FLAG_FIFO); - if (mb26_life_sem == RT_NULL) + nt26k_life_sem = rt_sem_create("nt26k_life", 0, RT_IPC_FLAG_FIFO); + if (nt26k_life_sem == RT_NULL) { - LOG_E("mb26_life_sem create failed"); + LOG_E("nt26k_life_sem create failed"); } // 创建定时器 - mb26_timer = rt_timer_create("heartbeat", - Mb26_Ht_Timer_Cb, // 回调函数 + nt26k_timer = rt_timer_create("heartbeat", + Nt26k_Ht_Timer_Cb, // 回调函数 RT_NULL, // 参数 timeout, // 定时周期(120分钟) RT_TIMER_FLAG_PERIODIC); // 周期性定时器 - if (mb26_timer == RT_NULL) + if (nt26k_timer == RT_NULL) { rt_kprintf("创建定时器失败\n"); return -1; } - mb26_life_timer = rt_timer_create("mb26_life", - Mb26_Life_Timer_Cb, + nt26k_life_timer = rt_timer_create("nt26k_life", + Nt26k_Life_Timer_Cb, RT_NULL, 30 * RT_TICK_PER_SECOND, RT_TIMER_FLAG_ONE_SHOT); - if (mb26_life_timer == RT_NULL) + if (nt26k_life_timer == RT_NULL) { rt_kprintf("创建定时器失败\n"); return -1; } - mb26_power_error_timer = rt_timer_create("mb26_error_timer", - Mb26_Error_Timer_Cb, + nt26k_power_error_timer = rt_timer_create("nt26k_error_timer", + Nt26k_Error_Timer_Cb, RT_NULL, 3 * 60 * RT_TICK_PER_SECOND, // (3分钟) RT_TIMER_FLAG_PERIODIC); - mb26_upload_timer = rt_timer_create("mb26_upload_timer", - Mb26_Upload_Timer_Cb, + nt26k_upload_timer = rt_timer_create("nt26k_upload_timer", + Nt26k_Upload_Timer_Cb, RT_NULL, 24 * 60 * 60 * RT_TICK_PER_SECOND, RT_TIMER_FLAG_PERIODIC); - ret = rt_thread_init(&mb26_thread, - "mb26_send_thread", - Mb26_Send_Thread_Entry, - &mb26_ops, - &mb26_thread_stack[0], - sizeof(mb26_thread_stack), - MB26_THREAD_PRIORITY, - MB26_THREAD_TICKS); - rt_thread_startup(&mb26_thread); + ret = rt_thread_init(&nt26k_thread, + "nt26k_send_thread", + Nt26k_Send_Thread_Entry, + &nt26k_ops, + &nt26k_thread_stack[0], + sizeof(nt26k_thread_stack), + NT26K_THREAD_PRIORITY, + NT26K_THREAD_TICKS); + rt_thread_startup(&nt26k_thread); - ret = rt_thread_init(&mb26_recv_thread, - "mb26_recv_thread", - Mb26_Recv_Thread_Entry, - &mb26_ops, - &mb26_recv_thread_stack[0], - sizeof(mb26_recv_thread_stack), - MB26_RECV_THREAD_PRIORITY, - MB26_RECV_THREAD_TICKS); - rt_thread_startup(&mb26_recv_thread); + ret = rt_thread_init(&nt26k_recv_thread, + "nt26k_recv_thread", + Nt26k_Recv_Thread_Entry, + &nt26k_ops, + &nt26k_recv_thread_stack[0], + sizeof(nt26k_recv_thread_stack), + NT26K_RECV_THREAD_PRIORITY, + NT26K_RECV_THREAD_TICKS); + rt_thread_startup(&nt26k_recv_thread); - ret = rt_thread_init(&mb26_life_thread, - "mb26_life_thread", - Mb26_Life_Thread_Entry, - &mb26_ops, - &mb26_life_thread_stack[0], - sizeof(mb26_life_thread_stack), - MB26_LIFE_THREAD_PRIORITY, - MB26_LIFE_THREAD_TICKS); - rt_thread_startup(&mb26_life_thread); + ret = rt_thread_init(&nt26k_life_thread, + "nt26k_life_thread", + Nt26k_Life_Thread_Entry, + &nt26k_ops, + &nt26k_life_thread_stack[0], + sizeof(nt26k_life_thread_stack), + NT26K_LIFE_THREAD_PRIORITY, + NT26K_LIFE_THREAD_TICKS); + rt_thread_startup(&nt26k_life_thread); return ret; } -// INIT_APP_EXPORT(BSP_Mb26_Thread_Init); +// INIT_APP_EXPORT(BSP_Nt26k_Thread_Init); -int mb26_device_register(void) +int nt26k_device_register(void) { - struct at_device_mb26 *mb26 = &_dev; + struct at_device_nt26k *nt26k = &_dev; - return at_device_register(&(mb26->device), - mb26->device_name, - mb26->client_name, - AT_DEVICE_CLASS_MB26, - (void *)mb26); + return at_device_register(&(nt26k->device), + nt26k->device_name, + nt26k->client_name, + AT_DEVICE_CLASS_NT26K, + (void *)nt26k); } -// INIT_COMPONENT_EXPORT(mb26_device_register); +// INIT_COMPONENT_EXPORT(nt26k_device_register); -#endif // NB_MODULE_SWITCH +#endif // IOT_MODULE_SWITCH diff --git a/packages/at_device-2.1.0/at_device.h b/packages/at_device-2.1.0/at_device.h index f30caf7..3166193 100644 --- a/packages/at_device-2.1.0/at_device.h +++ b/packages/at_device-2.1.0/at_device.h @@ -55,7 +55,7 @@ extern "C" { #define AT_DEVICE_CLASS_L610 0X15U #define AT_DEVICE_CLASS_ML305 0X16U #define AT_DEVICE_CLASS_ML307 0X17U -#define AT_DEVICE_CLASS_MB26 0X18U +#define AT_DEVICE_CLASS_NT26K 0X18U /* Options and Commands for AT device control opreations */ #define AT_DEVICE_CTRL_POWER_ON 0x01L diff --git a/rt-thread/rtconfig.h b/rt-thread/rtconfig.h index 98d081b..55fb148 100644 --- a/rt-thread/rtconfig.h +++ b/rt-thread/rtconfig.h @@ -16,7 +16,7 @@ #define ENABLE_LOG_ALL #define TEST_ENABLE //打开所有的终端测试程序 #define ULOG_OUTPUT_LVL 7 // 生产时将其设为0 - #define NB_MODULE_SWITCH 1 //开启NB物联网功能 + #define IOT_MODULE_SWITCH 1 //开启NB物联网功能 /* RT-Thread Kernel */ @@ -204,12 +204,12 @@ /* end of CYW43439 WiFi */ /* end of Wi-Fi */ #define PKG_USING_AT_DEVICE - #define AT_DEVICE_USING_MB26 - #define AT_DEVICE_MB26_INIT_ASYN// - #define AT_DEVICE_MB26_SAMPLE + #define AT_DEVICE_USING_NT26K + #define AT_DEVICE_NT26K_INIT_ASYN// + #define AT_DEVICE_NT26K_SAMPLE - #define MB26_SAMPLE_CLIENT_NAME "uart1" - #define MB26_SAMPLE_RECV_BUFF_LEN 512 + #define NT26K_SAMPLE_CLIENT_NAME "uart1" + #define NT26K_SAMPLE_RECV_BUFF_LEN 512 #define PKG_USING_AT_DEVICE_LATEST_VERSION #define PKG_AT_DEVICE_VER_NUM 0x99999