优化了重连

This commit is contained in:
小马_666 2025-01-22 13:33:38 +08:00
parent 47d78d713f
commit a4200d2e9d
11 changed files with 113 additions and 112 deletions

View File

@ -5,7 +5,18 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-85070147670020151" id="ilg.gnumcueclipse.managedbuild.cross.riscv.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT RISC-V Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true"> <provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-522711856992418268" id="ilg.gnumcueclipse.managedbuild.cross.riscv.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT RISC-V Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
</extension>
</configuration>
<configuration id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2086971888" name="dbg">
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-548012040577782093" id="ilg.gnumcueclipse.managedbuild.cross.riscv.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT RISC-V Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/> <language-scope id="org.eclipse.cdt.core.g++"/>
</provider> </provider>

View File

@ -4,20 +4,15 @@ Series=CH32V307
RTOS=NoneOS RTOS=NoneOS
MCU=CH32V307RVT6 MCU=CH32V307RVT6
Link=WCH-Link Link=WCH-Link
PeripheralVersion============1.4 PeripheralVersion=============1.4
Description============ROM(byte): 256K, SRAM(byte): 64K, CHIP PINS: 64, GPIO PORTS: 51.\nWCH CH32V3 series of mainstream MCUs covers the needs of a large variety of applications in the industrial,medical and consumer markets. High performance with first-class peripherals and low-power,low-voltage operation is paired with a high level of integration at accessible prices with a simple architecture and easy-to-use tools. Description=============ROM(byte): 256K, SRAM(byte): 64K, CHIP PINS: 64, GPIO PORTS: 51.\nWCH CH32V3 series of mainstream MCUs covers the needs of a large variety of applications in the industrial,medical and consumer markets. High performance with first-class peripherals and low-power,low-voltage operation is paired with a high level of integration at accessible prices with a simple architecture and easy-to-use tools.
Mcu Type=CH32V30x Mcu Type=CH32V30x
Address=0x08000000 Address=0x08000000
Target Path=obj\JT-DT-YD4N02A_RTT_MRS-4G.hex Target Path=obj\JT-DT-YD4N02A_RTT_MRS-4G.hex
Exe Path=
Exe Arguments=
CLKSpeed=1 CLKSpeed=1
DebugInterfaceMode=0 DebugInterfaceMode=-1
Erase All=true Erase All=true
Program=true Program=true
Verify=true Verify=true
Reset=true Reset=true
SDIPrintf=false SDIPrintf=false
Disable Power Output=false
Clear CodeFlash=false
Disable Code-Protect=false

View File

@ -1,62 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8" ?>
<launchConfiguration type="com.mounriver.debug.gdbjtag.openocd.launchConfigurationType"> <launchConfiguration type="com.mounriver.debug.gdbjtag.openocd.launchConfigurationType">
<booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.doStartGdbServer" value="true"/> <booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.doStartGdbServer" value="true" />
<booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.doFirstReset" value="true"/> <booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.doFirstReset" value="true" />
<booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.enableSemihosting" value="false"/> <booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.enableSemihosting" value="false" />
<booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.enableSemihostingNew" value="false"/> <booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.enableSemihostingNew" value="false" />
<booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.doDebugInRam" value="false"/> <booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.doDebugInRam" value="false" />
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/> <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true" />
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForSymbols" value="true"/> <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForSymbols" value="true" />
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/> <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false" />
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/> <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true" />
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForImage" value="true"/> <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForImage" value="true" />
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/> <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false" />
<booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.doContinue" value="true"/> <booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.doContinue" value="true" />
<booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.doSecondReset" value="true"/> <booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.doSecondReset" value="true" />
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/> <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true" />
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/> <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false" />
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/> <booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true" />
<booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.doGdbServerAllocateConsole" value="true"/> <booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.doGdbServerAllocateConsole" value="true" />
<booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.doGdbServerAllocateTelnetConsole" value="false"/> <booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.doGdbServerAllocateTelnetConsole" value="false" />
<booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.doStartGdbCLient" value="true"/> <booleanAttribute key="com.mounriver.debug.gdbjtag.openocd.doStartGdbCLient" value="true" />
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/> <booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false" />
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="false"/> <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="false" />
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useRemoteTarget" value="true"/> <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useRemoteTarget" value="true" />
<stringAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbServerExecutable" value="${eclipse_home}toolchain/OpenOCD/bin/${openocd_executable}"/> <stringAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbServerExecutable" value="${eclipse_home}toolchain/OpenOCD/bin/${openocd_executable}" />
<stringAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbServerTclPortNumber" value="6666"/> <stringAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbServerTclPortNumber" value="6666" />
<stringAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbServerOther" value="-f &quot;${eclipse_home}toolchain/OpenOCD/bin/wch-riscv.cfg&quot;"/> <stringAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbServerOther" value="-f &quot;${eclipse_home}toolchain/OpenOCD/bin/wch-riscv.cfg&quot;" />
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/> <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost" />
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="${eclipse_home}toolchain/RISC-V Embedded GCC12/bin/riscv-none-elf-gdb.exe"/> <stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="${eclipse_home}toolchain/RISC-V Embedded GCC12/bin/riscv-none-elf-gdb.exe" />
<stringAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbClientOtherOptions" value=""/> <stringAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbClientOtherOptions" value="" />
<stringAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbClientOtherCommands" value="set mem inaccessible-by-default off&#xD;&#xA;set architecture riscv:rv32&#xD;&#xA;set remotetimeout unlimited&#xD;&#xA;set disassembler-options xw"/> <stringAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbClientOtherCommands" value="set mem inaccessible-by-default off&#xD;&#xA;set architecture riscv:rv32&#xD;&#xA;set remotetimeout unlimited&#xD;&#xA;set disassembler-options xw" />
<stringAttribute key="com.mounriver.debug.gdbjtag.openocd.firstResetType" value="init"/> <stringAttribute key="com.mounriver.debug.gdbjtag.openocd.firstResetType" value="init" />
<stringAttribute key="com.mounriver.debug.gdbjtag.openocd.otherInitCommands" value=""/> <stringAttribute key="com.mounriver.debug.gdbjtag.openocd.otherInitCommands" value="" />
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/> <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value="" />
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/> <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value="" />
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/> <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value="" />
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/> <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value="" />
<stringAttribute key="com.mounriver.debug.gdbjtag.openocd.secondResetType" value="halt"/> <stringAttribute key="com.mounriver.debug.gdbjtag.openocd.secondResetType" value="halt" />
<stringAttribute key="com.mounriver.debug.gdbjtag.openocd.otherRunCommands" value=""/> <stringAttribute key="com.mounriver.debug.gdbjtag.openocd.otherRunCommands" value="" />
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="handle_reset"/> <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="handle_reset" />
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/> <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value="" />
<stringAttribute key="com.mounriver.debug.gdbjtag.svdPath" value="${eclipse_home}template/wizard/WCH/RISC-V/CH32V307/NoneOS/CH32V307xx.svd"/> <stringAttribute key="com.mounriver.debug.gdbjtag.svdPath" value="${eclipse_home}template/wizard/WCH/RISC-V/CH32V307/NoneOS/CH32V307xx.svd" />
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="obj/JT-DT-YD4N02A_RTT_MRS-4G.elf"/> <stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="obj\JT-DT-YD4N02A_RTT_MRS-4G.elf" />
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="JT-DT-YD4N02A_RTT_MRS-4G"/> <stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="JT-DT-YD4N02A_RTT_MRS-4G" />
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/> <stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="" />
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDevice" value="GNU MCU OpenOCD"/> <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDevice" value="GNU MCU OpenOCD" />
<stringAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbServerConnectionAddress" value=""/> <stringAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbServerConnectionAddress" value="" />
<stringAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbServerLog" value=""/> <stringAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbServerLog" value="" />
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/> <stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value="" />
<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/> <stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory" />
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?>\r\n&lt;memoryBlockExpressionList context=&quot;Context string&quot;/>\r\n"/> <stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;\r\n&lt;memoryBlockExpressionList context=&quot;Context string&quot;/&gt;\r\n" />
<intAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbServerGdbPortNumber" value="3333"/> <intAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbServerGdbPortNumber" value="3333" />
<intAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbServerTelnetPortNumber" value="4444"/> <intAttribute key="com.mounriver.debug.gdbjtag.openocd.gdbServerTelnetPortNumber" value="4444" />
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="3333"/> <intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="3333" />
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/> <intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2" />
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="JT-DT-YD4N02A_RTT_MRS-4G"/> <listEntry value="/JT-DT-YD4N02A_RTT_MRS-4G" />
</listAttribute> </listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/> <listEntry value="4" />
</listAttribute> </listAttribute>
</launchConfiguration> </launchConfiguration>

View File

@ -461,8 +461,8 @@ int main(void)
{ {
Flash_Write_Record(kRecordSensoEndOfLife); Flash_Write_Record(kRecordSensoEndOfLife);
} }
// LED_Y_END_OF_LIFE; LED_Y_END_OF_LIFE;
Send_Laser_Alarm_Event(kNormalDetectionEvents); // Send_Laser_Alarm_Event(kNormalDetectionEvents);
} }
} }
} }

View File

@ -202,7 +202,7 @@ struct Nt26k_Ops
extern struct Nt26k_Ops nt26k_ops; extern struct Nt26k_Ops nt26k_ops;
extern rt_sem_t nt26k_recv_sem; extern rt_sem_t nt26k_recv_sem;
extern rt_sem_t nt26k_recv_heart_sem; extern rt_sem_t nt26k_recv_msg_sem;
extern rt_sem_t nt26k_disconnect_sem; extern rt_sem_t nt26k_disconnect_sem;
extern rt_uint8_t nt26k_conncet_tcp_flag; extern rt_uint8_t nt26k_conncet_tcp_flag;
extern rt_uint8_t nt26k_connect_sever_flag; extern rt_uint8_t nt26k_connect_sever_flag;

View File

@ -231,11 +231,12 @@ static void urc_tcp_recv(struct at_client *client, const char *data, rt_size_t s
(nt26k_ops.recv->recv_data.event_type == EVENT_TYPE_POWER_ON)) (nt26k_ops.recv->recv_data.event_type == EVENT_TYPE_POWER_ON))
// 加这个的原因就是如果有指令下发,会出现两个信号量,指令会执行两次,所以排除心跳包才释放信号量 // 加这个的原因就是如果有指令下发,会出现两个信号量,指令会执行两次,所以排除心跳包才释放信号量
{ {
rt_sem_release(nt26k_recv_heart_sem);// 接收到的是心跳包 rt_sem_release(nt26k_recv_msg_sem);// 接收到的是心跳包
} }
else else
{ {
rt_sem_release(nt26k_recv_sem); rt_sem_release(nt26k_recv_sem);
rt_sem_release(nt26k_recv_msg_sem);// 接收到的是心跳包
} }
} }
else else

View File

@ -34,18 +34,17 @@ static rt_uint8_t uart4_rx_rb_data[UART4_RX_RB_LENGTH];
static rt_sem_t uart4_rx_ok_sem; static rt_sem_t uart4_rx_ok_sem;
// static rt_timer_t uart4_rx_timer; static struct rt_timer uart4_rx_timer;
static struct rt_timer uart4_rx_timer1;
uint8_t sensor_rx_count = 0; // 接收缓冲区中,已经收到的数据包数量 uint8_t sensor_rx_count = 0; // 接收缓冲区中,已经收到的数据包数量
uint8_t sensor_rx_flag = 0; // 接收缓冲区中,已经收到的数据包数量
TsH308 H308 = {0}; TsH308 H308 = {0};
void _UART4_RxTimeout(void *parameter) void _UART4_RxTimeout(void *parameter)
{ {
sensor_rx_flag = 0;
rt_sem_release(uart4_rx_ok_sem); rt_sem_release(uart4_rx_ok_sem);
// rt_timer_stop(uart4_rx_timer); rt_timer_stop(&uart4_rx_timer);
rt_timer_stop(&uart4_rx_timer1);
} }
static uint8_t H308_XorChecksum(char *str, int len) static uint8_t H308_XorChecksum(char *str, int len)
@ -232,10 +231,10 @@ uint8_t IS_H308_EndOfLife(void)
H308.end_of_life = 1; H308.end_of_life = 1;
} }
} }
// else else
// { {
// H308.end_of_life = 0; H308.end_of_life = 0;
// } }
return H308.end_of_life; return H308.end_of_life;
} }
@ -367,13 +366,8 @@ int BSP_H308_Init(void)
} }
// TODO:这里改的静态 // TODO:这里改的静态
rt_timer_init(&uart4_rx_timer1, "_UART4_RxTimeout", _UART4_RxTimeout, RT_NULL, 200, RT_TIMER_FLAG_PERIODIC); rt_timer_init(&uart4_rx_timer, "_UART4_RxTimeout", _UART4_RxTimeout, RT_NULL, 100, RT_TIMER_FLAG_PERIODIC);
// rt_timer_start(&uart4_rx_timer1);
// uart4_rx_timer = rt_timer_create("_UART4_RxTimeout", _UART4_RxTimeout, RT_NULL, 200, RT_TIMER_FLAG_PERIODIC);
// if (uart4_rx_timer == RT_NULL)
// {
// LOG_E("uart4_rx_timer create failed");
// }
UART4_Init(); UART4_Init();
rt_err_t ret = rt_thread_init(&h308_thread, rt_err_t ret = rt_thread_init(&h308_thread,
"h308_thread", "h308_thread",
@ -407,9 +401,11 @@ void UART4_IRQHandler(void)
{ {
uint8_t temp = USART_ReceiveData(UART4); uint8_t temp = USART_ReceiveData(UART4);
lwrb_write(&uart4_rx_rb, &temp, 1); lwrb_write(&uart4_rx_rb, &temp, 1);
// sensor_rx_count++; if (sensor_rx_flag == 0)
// rt_timer_start(uart4_rx_timer); {
rt_timer_start(&uart4_rx_timer1); sensor_rx_flag = 1;
rt_timer_start(&uart4_rx_timer);
}
} }
rt_interrupt_leave(); rt_interrupt_leave();

View File

@ -61,7 +61,7 @@ static struct rt_thread nt26k_life_thread;
struct rt_event at_device_event; struct rt_event at_device_event;
rt_sem_t nt26k_recv_sem; rt_sem_t nt26k_recv_sem;
rt_sem_t nt26k_recv_heart_sem; // 用于接收心跳信号 rt_sem_t nt26k_recv_msg_sem; // 用于接收信号
rt_sem_t nt26k_disconnect_sem; rt_sem_t nt26k_disconnect_sem;
static rt_timer_t nt26k_timer; // 上报心跳 static rt_timer_t nt26k_timer; // 上报心跳
static rt_timer_t nt26k_upload_timer; // 更新本地时间定时器 static rt_timer_t nt26k_upload_timer; // 更新本地时间定时器
@ -767,6 +767,7 @@ const Nt26kEventInfo nt26k_event_info[] = {
int Nt26k_Process_Events(Nt26kEvent nt26k_recv_event, struct at_device *device, void *param) int Nt26k_Process_Events(Nt26kEvent nt26k_recv_event, struct at_device *device, void *param)
{ {
rt_uint8_t max_retry_count = (rt_uint8_t)Flash_Get_SysCfg(kIotRetryId); rt_uint8_t max_retry_count = (rt_uint8_t)Flash_Get_SysCfg(kIotRetryId);
LOG_D("max_retry_count:%d\n", max_retry_count);
struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param; struct Nt26k_Ops *nt26k_ops = (struct Nt26k_Ops *)param;
const Nt26kEventInfo *event = RT_NULL; const Nt26kEventInfo *event = RT_NULL;
@ -804,11 +805,9 @@ int Nt26k_Process_Events(Nt26kEvent nt26k_recv_event, struct at_device *device,
} }
else else
{ {
if ((rt_strcmp(event->event_name, "定时心跳事件") == RT_EOK) || (rt_strcmp(event->event_name, "上电心跳事件") == RT_EOK)) // 定时心跳是有回应的 if (rt_sem_take(nt26k_recv_msg_sem, 5000) == RT_EOK)
{ {
if (rt_sem_take(nt26k_recv_heart_sem, 5000) == RT_EOK) LOG_D("收到回复\n");
{
LOG_D("收到心跳回复\n");
nt26k_connect_sever_flag = 1; nt26k_connect_sever_flag = 1;
return RT_EOK; // 函数执行完毕返回0 return RT_EOK; // 函数执行完毕返回0
} }
@ -816,8 +815,7 @@ int Nt26k_Process_Events(Nt26kEvent nt26k_recv_event, struct at_device *device,
{ {
// 收不到说明在平台未注册,此时nt26k_connect_sever_flag 为0但nt26k_conncet_tcp_flag = 1此时不发起重连等待事件触发就行 // 收不到说明在平台未注册,此时nt26k_connect_sever_flag 为0但nt26k_conncet_tcp_flag = 1此时不发起重连等待事件触发就行
nt26k_connect_sever_flag = 0; nt26k_connect_sever_flag = 0;
continue; return RT_EOK;
}
} }
} }
if (rt_strcmp(event->event_name, "掉电事件") == RT_EOK) if (rt_strcmp(event->event_name, "掉电事件") == RT_EOK)
@ -1574,10 +1572,10 @@ int BSP_Nt26k_Thread_Init(void)
{ {
LOG_E("nt26k_recv_sem create failed"); LOG_E("nt26k_recv_sem create failed");
} }
nt26k_recv_heart_sem = rt_sem_create("nt26k_recv_heart", 0, RT_IPC_FLAG_PRIO); nt26k_recv_msg_sem = rt_sem_create("nt26k_recv_heart", 0, RT_IPC_FLAG_PRIO);
if (nt26k_recv_heart_sem == RT_NULL) if (nt26k_recv_msg_sem == RT_NULL)
{ {
LOG_E("nt26k_recv_heart_sem create failed"); LOG_E("nt26k_recv_msg_sem create failed");
} }
nt26k_disconnect_sem = rt_sem_create("nt26k_life", 0, RT_IPC_FLAG_PRIO); nt26k_disconnect_sem = rt_sem_create("nt26k_life", 0, RT_IPC_FLAG_PRIO);
if (nt26k_disconnect_sem == RT_NULL) if (nt26k_disconnect_sem == RT_NULL)

View File

@ -15,8 +15,8 @@
/*使用动态日志及密码功能时,需开启宏 FINSH_USING_AUTH ULOG_USING_FILTER ENABLE_LOG_ALL ULOG_OUTPUT_LVL = 7 以及设置ulog.c 1522行 输出等级为0*/ /*使用动态日志及密码功能时,需开启宏 FINSH_USING_AUTH ULOG_USING_FILTER ENABLE_LOG_ALL ULOG_OUTPUT_LVL = 7 以及设置ulog.c 1522行 输出等级为0*/
/**/ /**/
#define FINSH_USING_AUTH //开启终端密码登录功能 // #define FINSH_USING_AUTH //开启终端密码登录功能
#define ULOG_USING_FILTER //开启动态修改日志等级 默认修改在ulog.c 1522行 // #define ULOG_USING_FILTER //开启动态修改日志等级 默认修改在ulog.c 1522行
#define ENABLE_LOG_ALL #define ENABLE_LOG_ALL
#define TEST_ENABLE //打开所有的终端测试程序 #define TEST_ENABLE //打开所有的终端测试程序
@ -156,10 +156,10 @@
#define AT_USING_CLIENT #define AT_USING_CLIENT
#define AT_CLIENT_NUM_MAX 1 #define AT_CLIENT_NUM_MAX 1
#ifdef FINSH_USING_AUTH // #ifdef FINSH_USING_AUTH
#define AT_USING_CLI #define AT_USING_CLI
#define AT_PRINT_RAW_CMD #define AT_PRINT_RAW_CMD
#endif // #endif
#define AT_CMD_MAX_LEN 256 #define AT_CMD_MAX_LEN 256
#define AT_SW_VERSION_NUM 0x10301 #define AT_SW_VERSION_NUM 0x10301