fix:修改UDP通讯中,取电变化上报机制
1、问题点:当RCU网络状态异常的情况下,网络还处于协商状态下,还未进入正常通讯环节时,取电变化不会进行判断。这会导致取电变化上报与实际产生取电状态时间点对不上。 2、将BLV_C1F_Module代码上传至Gitea,之前代码修改记录请查看 .\BasicCode\Readme.txt
This commit is contained in:
4426
BasicCode/Drive/NET/BLV_NET_Function.c
Normal file
4426
BasicCode/Drive/NET/BLV_NET_Function.c
Normal file
File diff suppressed because it is too large
Load Diff
526
BasicCode/Drive/NET/BLV_NET_Function.h
Normal file
526
BasicCode/Drive/NET/BLV_NET_Function.h
Normal file
@@ -0,0 +1,526 @@
|
||||
#ifndef _BLV_NET_FUNCTION_H_
|
||||
#define _BLV_NET_FUNCTION_H_
|
||||
|
||||
#include "stdint.h"
|
||||
#include "CH57x_common.h" //CH57X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>
|
||||
#include "BLV_Dev_Option.h"
|
||||
|
||||
#define RCU_NO_SERVER 0x00 //RCU<43><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define RCU_LOCAL_SERVER 0x01 //RCU<43><55><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define RCU_CLOUD_SERVER 0x02 //RCU<43>ƶ˷<C6B6><CBB7><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define FRAME_HEADER 2 //֡ͷ
|
||||
#define FRAME_LEN 2 //֡<><D6A1>
|
||||
#define SYSTEM_ID 4 //ϵͳID
|
||||
#define CMD_CODE 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define FLOOR_NUM 4 //¥<><C2A5><EFBFBD><EFBFBD>
|
||||
#define FRAME_NO 2 //֡<><D6A1>
|
||||
|
||||
#define CRC_LEN 2 //У<>鳤<EFBFBD><E9B3A4>
|
||||
|
||||
#define SYSLOCK_LEN 1 //ϵͳ<CFB5><CDB3>
|
||||
#define CARDTYPE_LEN 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define DOOR_LEN 1 //<2F>Ŵ<EFBFBD>״̬
|
||||
#define ELE_LEN 2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define HOST_TEM_LEN 1 //<2F><><EFBFBD><EFBFBD><EFBFBD>¶<EFBFBD>
|
||||
|
||||
#define FRAME_HEAD_OFFSET 0 //ͷλ<CDB7><CEBB> 0
|
||||
#define FRAME_LEN_OFFSET 2 //֡<><D6A1>λ<EFBFBD><CEBB> 2
|
||||
#define SYSTEM_ID_OFFSET 4 //ϵͳIDλ<44><CEBB> 4
|
||||
#define CMD_OFFSET 8 //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> 8
|
||||
#define FRAME_NO_OFFSET 9 //֡<><D6A1>λ<EFBFBD><CEBB> 9
|
||||
#define FLOOR_NUM_OFFSET 11 //¥<><C2A5><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> 11
|
||||
#define HEAD_LEN 15 //ͷ<><CDB7><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> 15
|
||||
|
||||
#define UDP_FRAME_MIN_LEN (HEAD_LEN + CRC_LEN)
|
||||
|
||||
#define USER_CODE 4 //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define SERVER_IF 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
||||
#define IP_ADDR 4 //IP<49><50>ַ
|
||||
#define PORT_NUM 2 //<2F>˿ں<CBBF>
|
||||
#define CRC_LEN 2 //У<>鳤<EFBFBD><E9B3A4>
|
||||
#define RCU_SUBNET_MASK 4 //RCU<43><55><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define RCU_GATEWAY 4 //RCU<43><55><EFBFBD><EFBFBD>
|
||||
#define RCU_PORT 2 //RCU<43>˿ں<CBBF>
|
||||
#define RCU_MAC 6 //RCUMAC<41><43>ַ
|
||||
#define RCU_SECRET_LEN 32 //RCU<43><55>Կ<EFBFBD><D4BF><EFBFBD><EFBFBD>32<33>ֽ<EFBFBD>
|
||||
#define RCU_SoftwareVer 20 //RCU<43>̼<EFBFBD><CCBC>汾
|
||||
#define RCU_ConfigVer 3 //RCU<43><55><EFBFBD>ð汾<C3B0><E6B1BE>
|
||||
#define FTPUSERNAME 1 //FTP <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>ռ<EFBFBD>õ<EFBFBD><C3B5>ֽ<EFBFBD>
|
||||
#define FTPPASSWORD 1 //FTP <20><><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>ռ<EFBFBD>õ<EFBFBD><C3B5>ֽ<EFBFBD>
|
||||
#define FTPFILENAME 1 //FTP <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>ռ<EFBFBD>õ<EFBFBD><C3B5>ֽ<EFBFBD>
|
||||
|
||||
#define FILE_TYPE 1
|
||||
#define FILE_MD5 16 //<2F>ļ<EFBFBD>MD5ֵ<35><D6B5><EFBFBD><EFBFBD>
|
||||
#define FILE_SIZE 4 //<2F>ļ<EFBFBD><C4BC><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
#define BLOCK_NUM 2 //<2F><><EFBFBD><EFBFBD>С
|
||||
#define STATUS 1 //״̬
|
||||
|
||||
#define DATATYPE_IAP 0x00 //<2F>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define DATATYPE_CONFIG 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define DATATYPE_UNDEFINED 0x02 //<2F><>Ч<EFBFBD><D0A7><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#if (Restart_Address_EN==0x01) //ʹ<><CAB9><EFBFBD><EFBFBD><DFBC>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> - ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD>Ҫʹ<D2AA>ö<EFBFBD>Ӧ<EFBFBD>°<EFBFBD><C2B0><EFBFBD>Launcher<65><72><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>Ŀά<C4BF><CEAC>
|
||||
#define RUN_MAX_BLOCK 460 //app<70><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 20220611 - <20><EFBFBD>APP<50><50><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>Ϊ230K
|
||||
#else
|
||||
#define RUN_MAX_BLOCK 432 //app<70><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#endif
|
||||
|
||||
#define CFG_MAX_BLOCK 850 //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define HEAD_SOFT_COM 0xa90ff0 //ͷ<><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>汾<EFBFBD>Ƚ<EFBFBD>
|
||||
|
||||
#define IAPSTART 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ
|
||||
#define IAPFINISH 0x02 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IAPTIMEOUT 0x03 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
|
||||
|
||||
#define IAP_STATE_COMPLETE 0x01 //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
||||
#define CLOUD_IAP_TFTP_STATE_COMPLETE 0x02 //<2F>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
||||
#define CLOUD_IAP_FTP_STATE_COMPLETE 0x03 //<2F>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
||||
|
||||
#define IAPTFTPWRITE 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>tftp<74><70><EFBFBD><EFBFBD>
|
||||
#define IAPTFTPREAD 0x02 //<2F>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>tftp<74>õ<EFBFBD>
|
||||
#define IAPTFTPLOG 0x03 //<2F>ƶ<EFBFBD>дLOG
|
||||
|
||||
#define TFTPWRITESTART 0x01
|
||||
#define TFTPREADSTART 0x02
|
||||
#define TFTPWRITEJOURNAL 0X03
|
||||
|
||||
#define Search_Cmd 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define Search_Cmd_EnSure_Rev_Len (HEAD_LEN+CRC_LEN)
|
||||
#define Search_Cmd_Rev_Len (HEAD_LEN + USER_CODE + SERVER_IF + IP_ADDR + PORT_NUM + CRC_LEN) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ճ<EFBFBD><D5B3><EFBFBD>
|
||||
#define Search_Cmd_Rev_UserCode (HEAD_LEN)
|
||||
#define Search_Cmd_Rev_ClientIf (Search_Cmd_Rev_UserCode + USER_CODE)
|
||||
#define Search_Cmd_Rev_ClientIp (Search_Cmd_Rev_ClientIf + SERVER_IF)
|
||||
#define Search_Cmd_Rev_ClientPort (Search_Cmd_Rev_ClientIp + IP_ADDR)
|
||||
#define Search_Cmd_Send_Len (HEAD_LEN + USER_CODE + RCU_SUBNET_MASK + RCU_GATEWAY + RCU_PORT + RCU_MAC + RCU_SoftwareVer + RCU_ConfigVer + CRC_LEN)
|
||||
#define Search_Cmd_Send_UserCode (HEAD_LEN)
|
||||
#define Search_Cmd_Send_Subnet (Search_Cmd_Rev_UserCode + USER_CODE)
|
||||
#define Search_Cmd_Send_Gateway (Search_Cmd_Send_Subnet + RCU_SUBNET_MASK)
|
||||
#define Search_Cmd_Send_Port (Search_Cmd_Send_Gateway + RCU_GATEWAY)
|
||||
#define Search_Cmd_Send_Mac (Search_Cmd_Send_Port + RCU_PORT)
|
||||
#define Search_Cmd_Send_SoftwareVer (Search_Cmd_Send_Mac + RCU_MAC)
|
||||
#define Search_Cmd_Send_ConfigVer (Search_Cmd_Send_SoftwareVer + RCU_SoftwareVer)
|
||||
|
||||
#define Heart_Cmd 0x02
|
||||
#define Heart_Cmd_Send_Len (HEAD_LEN + CRC_LEN)
|
||||
|
||||
|
||||
#define IAP_Cmd 0x0A //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define IAP_Ready 0x00 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IAP_Finish 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IAP_Error 0x02 //<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7> //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IAP_Error_Block 0x03 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IAP_Error_File 0x04 //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IAP_Error_MD5 0x05 //<2F><><EFBFBD><EFBFBD>MD5ֵ<35><D6B5><EFBFBD><EFBFBD>
|
||||
|
||||
#define IAP_Cmd_Rev_Len (HEAD_LEN + IP_ADDR + RCU_PORT + FILE_MD5 + BLOCK_NUM +CRC_LEN)
|
||||
#define IAP_Cmd_Rev_Ip (HEAD_LEN) //λ<><CEBB> 15
|
||||
#define IAP_Cmd_Rev_Port (IAP_Cmd_Rev_Ip + IP_ADDR) //λ<><CEBB> 19
|
||||
#define IAP_Cmd_Rev_Md5 (IAP_Cmd_Rev_Port + RCU_PORT) //λ<><CEBB> 21
|
||||
#define IAP_Cmd_Rev_Block (IAP_Cmd_Rev_Md5 + FILE_MD5) //λ<><CEBB> 37
|
||||
#define IAP_Cmd_Send_Len (HEAD_LEN + STATUS + RCU_SoftwareVer + CRC_LEN)
|
||||
#define IAP_Cmd_Send_State (HEAD_LEN)
|
||||
#define IAP_Cmd_Send_SoftwareVer (IAP_Cmd_Send_State + STATUS)
|
||||
|
||||
#define Subgroup_Cmd 0xA2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA><EFBFBD><EFBFBD>
|
||||
#define CONFIG_Ready 0x00 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define CONFIG_Finish 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define CONFIG_Error 0x02 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define CONFIG_Error_Block 0x03 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define CONFIG_Error_File 0x04 //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define CONFIG_Error_Md5 0x05 //<2F><><EFBFBD><EFBFBD>MD5ֵ<35><D6B5><EFBFBD><EFBFBD>
|
||||
|
||||
#define CONFIG_Cmd_Rev_Len (HEAD_LEN + IP_ADDR + RCU_PORT + FILE_MD5 + BLOCK_NUM +CRC_LEN)
|
||||
#define CONFIG_Cmd_Rev_Ip (HEAD_LEN + FILE_MD5_BLOCK_NUM)
|
||||
#define CONFIG_Cmd_Rev_Port (HEAD_LEN + FILE_MD5_BLOCK_NUM + IP_ADDR)
|
||||
#define CONFIG_Cmd_Send_Len (HEAD_LEN + STATUS + CRC_LEN)
|
||||
#define CONFIG_Cmd_Send_State (HEAD_LEN)
|
||||
|
||||
#define CLOUD_IAP_Cmd 0x68
|
||||
#define CLOUD_IAP_Ready 0x00
|
||||
#define CLOUD_IAP_Finish 0x01
|
||||
#define CLOUD_IAP_Error 0x02
|
||||
#define CLOUD_IAP_Error_Block 0x03
|
||||
#define CLOUD_IAP_Error_File 0x04
|
||||
#define CLOUD_IAP_Error_Md5 0x05
|
||||
|
||||
//#define CLOUD_IAP_Cmd_Rev_Len (HEAD_LEN + IP_ADDR + RCU_PORT + FILE_MD5 + BLOCK_NUM + FILE_TYPE + FILE_NAME + CRC_LEN)
|
||||
#define CLOUD_IAP_Cmd_Rev_Ip (HEAD_LEN) //λ<><CEBB> 15
|
||||
#define CLOUD_IAP_Cmd_Rev_Port (CLOUD_IAP_Cmd_Rev_Ip + IP_ADDR) //λ<><CEBB> 19
|
||||
#define CLOUD_IAP_Cmd_Rev_Md5 (CLOUD_IAP_Cmd_Rev_Port + RCU_PORT) //λ<><CEBB> 21
|
||||
#define CLOUD_IAP_Cmd_Rev_Block (CLOUD_IAP_Cmd_Rev_Md5 + FILE_MD5) //λ<><CEBB> 37
|
||||
#define CLOUD_IAP_Cmd_Rev_Filetype (CLOUD_IAP_Cmd_Rev_Block + BLOCK_NUM) //λ<><CEBB> 39
|
||||
#define CLOUD_IAP_Cmd_Rev_Filename (CLOUD_IAP_Cmd_Rev_Filetype + FILE_TYPE) //λ<><CEBB> 40
|
||||
#define CLOUD_IAP_Cmd_Send_Len (HEAD_LEN + STATUS + RCU_SoftwareVer + FILE_TYPE + CRC_LEN)
|
||||
#define CLOUD_IAP_Cmd_Send_State (HEAD_LEN)
|
||||
#define CLOUD_IAP_Cmd_Send_SoftwareVer (CLOUD_IAP_Cmd_Send_State + STATUS)
|
||||
#define CLOUD_IAP_Cmd_Send_Filetype (CLOUD_IAP_Cmd_Send_SoftwareVer + RCU_SoftwareVer)
|
||||
|
||||
#define UDP_PackData 15
|
||||
|
||||
#define In_Set_RoomRent_Cmd 0x0C //<2F><><EFBFBD>÷<EFBFBD>̬
|
||||
#define In_QueryTime_Cmd 0x08 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//#define In_SyncTime_Cmf 0x0A //ͬ<><CDAC>ʱ<EFBFBD><CAB1>
|
||||
#define In_RoomState_Cmd 0x0E //״̬<D7B4>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD> 2025-09-25 ȡ<><C8A1>
|
||||
#define In_DevCtr_Cmd 0x0F //<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEA3AC><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƺ͵<C6BA><CDB5><EFBFBD>
|
||||
#define In_SingleAirCtrl_Cmd 0x13 //<2F>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define In_Sys_Key_Cmd 0x24 //һ<><D2BB><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define In_SetSecretKey_Cmd 0x28 //<2F><><EFBFBD><EFBFBD>MQTT<54><54>Կ
|
||||
#define In_ReadSecretKey_Cmd 0x29 //<2F><>ȡMQTT<54><54>Կ
|
||||
|
||||
#define In_ReadRegister_Cmd 0x30 //<2F><>ȡӳ<C8A1><D3B3><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2021-07-13 <20><><EFBFBD><EFBFBD>
|
||||
#define In_WriteRegister_Cmd 0x31 //<2F><><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2021-07-13 <20><><EFBFBD><EFBFBD>
|
||||
#define In_Get_RoomRent_Cmd 0x32 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>̬<EFBFBD><CCAC>Ϣ 2025-09-09
|
||||
#define In_Reboot_Reason_Cmd 0x33 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD> 2025-09-25 <20><><EFBFBD><EFBFBD>
|
||||
#define In_PeriodicReport_Cmd 0x34 //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD> 2025-09-25 <20><><EFBFBD><EFBFBD>
|
||||
#define In_Power_Change_Cmd 0x35 //ȡ<><C8A1>״̬<D7B4>ϱ<EFBFBD> 2025-09-25 <20><><EFBFBD><EFBFBD>
|
||||
#define In_DevState_Cmd 0x36 //<2F>豸״̬<D7B4>ϱ<EFBFBD> 2025-09-25 <20><><EFBFBD><EFBFBD>
|
||||
|
||||
#define In_Read_MCUSystem_Cmd 0xB1 //<2F><>ȡϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
#define In_BLVIAP_Cmd 0xB2 //BLV_Cx<43><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Aϵ<41><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD><CCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EEA3AC><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ִ<EFBFBD>е<EFBFBD>BLV_Cxϵ<78>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define In_BLVIAPCheck_Cmd 0xB3 //BLV_Cx<43><78><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define In_BLVIAPJump_Cmd 0xB4 //BLV_Cx<43><78>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>
|
||||
#define In_BLVIAPLogic_Cmd 0xB5 //BLV_Cx<43><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EEA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Aϵ<41><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD><CCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EEA3AC><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>BLV_Cxϵ<78>е<EFBFBD><D0B5><EFBFBD><DFBC>ļ<EFBFBD>
|
||||
#define In_BLVIAPPlan_Cmd 0xB6 //BLV_Cx<43>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4>ϱ<EFBFBD>
|
||||
#define In_BLVPCTest_Cmd 0xD1 //BLV-C1 PC<50><43><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>״̬ 2021-07-13 <20><><EFBFBD><EFBFBD>
|
||||
#define In_BLVConfig_Cmd 0xD2 //BLV-C1<43><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>·<EFBFBD> 2025-10-09 ȡ<><C8A1>ʹ<EFBFBD><CAB9>
|
||||
#define In_BLVPCTestDevice_Cmd 0xD3 //BLV-C1 PC<50><43><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2021-10-26 <20><><EFBFBD><EFBFBD>
|
||||
#define In_BLVFlashInfoWrite_CMD 0xD4 //BLV-C1 Flashд<68><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2021-12-01 <09><><EFBFBD><EFBFBD>
|
||||
#define In_BLVFlashInfoRead_CMD 0xD5 //BLV-C1 Flashд<68><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2021-12-01 <09><><EFBFBD><EFBFBD>
|
||||
#define In_BLVQueryTFTPIP_CMD 0xD6 //<2F>ӷ<EFBFBD><D3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TFTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP
|
||||
#define In_BLVRpDomainCtrl_Cmd 0xD7 //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||
#define In_BLVQueryCommonState_Cmd 0xD8 //ѯ<>ʹ<EFBFBD><CAB9><EFBFBD>״̬
|
||||
|
||||
#define In_BLVTFTPDomainName_Cmd 0xD9 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>RCU-TFTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define In_BLVTFTPDataRead_Cmd 0xDA //TFTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>ȡ
|
||||
#define In_BLVDayNightTimeSet_Cmd 0xDB //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>䷶Χ<E4B7B6><CEA7><EFBFBD><EFBFBD>
|
||||
|
||||
#define In_SeriaNet_Cmd 0x70 //<><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>
|
||||
#define In_SeriaNetReported_Cmd 0x71 //<><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
|
||||
|
||||
#define WriteRegister_Cmd_Send_Len 18 //<2F><>ͷ<EFBFBD><CDB7>15Byte+<2B><><EFBFBD>ݣ<EFBFBD>1Byte+CRC<52><43>2Byte
|
||||
#define BLVConfig_Cmd_Send_Len 18 //<2F><>ͷ<EFBFBD><CDB7>15Byte+<2B><><EFBFBD>ݣ<EFBFBD>1Byte+CRC<52><43>2Byte
|
||||
#define SeriaNet_Cmd_Send_Len 19 //<2F><>ͷ<EFBFBD><CDB7>15Byte+<2B><><EFBFBD>ݣ<EFBFBD>2Byte+CRC<52><43>2Byte
|
||||
|
||||
#define IAPPlan_State_Starting 0x01 //<2F><><EFBFBD><EFBFBD>״̬ - <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IAPPlan_State_Underway 0x02 //<2F><><EFBFBD><EFBFBD>״̬ - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IAPPlan_State_Checking 0x03 //<2F><><EFBFBD><EFBFBD>״̬ - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
|
||||
#define IAPPlan_State_CheckSucc 0x04 //<2F><><EFBFBD><EFBFBD>״̬ - У<><D0A3><EFBFBD>ɹ<EFBFBD>,RCU<43><55><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IAPPlan_State_IAPTimeout 0x05 //<2F><><EFBFBD><EFBFBD>״̬ - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
|
||||
|
||||
#define UDP_ActSend_PowerChange_Flag 0x01 //UDP<44><50><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> - ȡ<><C8A1>״̬<D7B4>仯 <20><>־λ
|
||||
#define UDP_ActSend_DevState_Flag 0x02 //UDP<44><50><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> - <20>豸״̬<D7B4>仯 <20><>־λ
|
||||
#define UDP_ActSend_Periodic_Flag 0x04 //UDP<44><50><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <20><>־λ
|
||||
#define UDP_ActSend_Reboot_Flag 0x08 //UDP<44><50><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> - RCU<43><55><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD> <20><>־λ
|
||||
#define UDP_ActSend_RoomState_Flag 0x10 //UDP<44><50><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> - <20><>ȡ<EFBFBD><C8A1>̬<EFBFBD><CCAC>Ϣ <20><>־λ
|
||||
#define UDP_ActSend_TimeSync_Flag 0x20 //UDP<44><50><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> - ʱ<><CAB1>ͬ<EFBFBD><CDAC> <20><>־λ
|
||||
#define UDP_ActSend_Heart_Flag 0x40 //UDP<44><50><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>־λ
|
||||
|
||||
/***************************************************************************************************/
|
||||
//<2F><><EFBFBD>Թ滮<D4B9>ĵ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ʱҪ<CAB1><D2AA>֤<EFBFBD>ռ<EFBFBD><D5BC><EFBFBD>С<EFBFBD><D0A1>512<31>ı<EFBFBD><C4B1><EFBFBD>
|
||||
//Flash<73><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش洢<D8B4><E6B4A2>ַ
|
||||
#define Flash_IAP_FEATURE_ADDRESS 0x00000000 //Flash<73>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APP<50><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
|
||||
//Flash APP<50><50><EFBFBD>ŵ<EFBFBD>ַ -- <20><>ֻ<EFBFBD><D6BB>д<EFBFBD><D0B4>ʱʹ<CAB1>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>FlashĬ<68>ϲ<EFBFBD><CFB2><EFBFBD>0x05000 ~ 0x3FFFF 2022-06-01<30><EFBFBD>
|
||||
#if (Restart_Address_EN==0x01) //<2F>°<EFBFBD><C2B0><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַΪ0x05000,<2C><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>Ŀά<C4BF><CEAC>
|
||||
#define IAP_RUN_START_PAGE_ADDRESS_FALSH 0x05000 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼҳ<CABC><D2B3>ַ - flash
|
||||
#else
|
||||
#define IAP_RUN_START_PAGE_ADDRESS_FALSH 0x08000 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼҳ<CABC><D2B3>ַ - flash
|
||||
#endif
|
||||
#define IAP_RUN_END_PAGE_ADDRESS_FALSH 0x3E7FF //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹҳ<D6B9><D2B3>ַ - flash
|
||||
//Flash APP<50><50><EFBFBD>õ<EFBFBD>ַ -- <20>豸<EFBFBD><E8B1B8><EFBFBD>ô<EFBFBD><C3B4><EFBFBD> 32K 2021-07-13
|
||||
#define FLASH_CONFIG_DeviceSize 240 //һ<><D2BB><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>СΪ240Byte
|
||||
#define FLASH_CONFIG_FILE_ADDRESS 0x80000 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ŵ<EFBFBD>ַ
|
||||
#define FLASH_CONFIG_DataSize_ADDRESS 0x80000 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
#define FLASH_CONFIG_RUN_START_ADDRESS 0x80100 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼҳ<CABC><D2B3>ַ - flash
|
||||
#define FLASH_CONFIG_RUN_END_ADDRESS 0x87FFF //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹҳ<D6B9><D2B3>ַ - flash
|
||||
#define FLASH_Register_Start_ADDRESS 0x88000 //<2F><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>ֵ - <20><>ʼ<EFBFBD><CABC>ַ
|
||||
#define FLASH_Register_End_ADDRESS 0x887FF //<2F><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>ֵ - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
|
||||
#define LOGIC_DataFlag 0xCC060001 //<2F><EFBFBD><DFBC><EFBFBD>־
|
||||
#define FLASH_LOGIC_FILE_ADDRESS 0x090000
|
||||
#define FLASH_LOGIC_DataFlag_ADDRESS 0x090000 //<2F>ļ<EFBFBD><C4BC><EFBFBD>־λ - 4Byte
|
||||
#define FLASH_LOGIC_DataSize_ADDRESS 0x090004 //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> - 4Byte
|
||||
#define FLASH_LOGIC_DataMD5_ADDRESS 0x090008 //<2F>ļ<EFBFBD>MD5У<35><D0A3>ֵ - 16Byte
|
||||
|
||||
#define FLASH_LOGIC_DataStart_ADDRESS 0x090200
|
||||
#define FLASH_LOGIC_DataEnd_ADDRESS 0x0FFFFF
|
||||
|
||||
//SRAM<41><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش洢<D8B4><E6B4A2>ַ
|
||||
#define SRAM_IAP_APP_FILE_ADDRESS 0x00050000 //SRAM<41>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APP<50>ļ<EFBFBD><C4BC>ĵ<EFBFBD>ַ - 218K
|
||||
//#define SRAM_IAP_CONFIG_FILE_ADDRESS 0x00086600 //SRAM<41>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CONFIG<49>ļ<EFBFBD>ͷ<EFBFBD>ĵ<EFBFBD>ַ - 32K <20><><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<DEB9><D8A3><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ʹ<EFBFBD>ã<EFBFBD>
|
||||
//#define SRAM_IAP_CONFIG_DataSize_ADDRESS 0x00086600 //SRAM<41>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CONFIG<49>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3>ȵĵ<C8B5>ַ
|
||||
//#define SRAM_IAP_CONFIG_START_ADDRESS 0x00086700 //SRAM<41>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CONFIG<49>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2>ʼ<EFBFBD><CABC>ַ
|
||||
//#define SRAM_IAP_CONFIG_END_ADDRESS 0x0008E5FF //SRAM<41>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CONFIG<49>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
#define SRAM_IAP_IP_ADDRESS 0x0008E600 //SRAM<41>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>IP - 4Byte <09><>ʱ<EFBFBD><CAB1>UDP<44><50>ַ<EFBFBD><D6B7><EFBFBD>ſռ䣬<D5BC><E4A3AC><EFBFBD><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD><EFBFBD><CDB8>UDP<44><50>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>
|
||||
#define SRAM_IAP_PORT_ADDRESS 0x0008E604 //SRAM<41>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>prot - 2Byte <09><>ʱ<EFBFBD><CAB1>UDP<44><50>ַ<EFBFBD><D6B7><EFBFBD>ſռ䣬<D5BC><E4A3AC><EFBFBD><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD><EFBFBD><CDB8>UDP<44><50>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>
|
||||
#define SRAM_IAP_NET_UPGRADE_Flag_ADDRESS 0x0008E606 //SRAM<41>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ - 1Byte
|
||||
#define SRAM_IAP_UPGRADE_Reply_NUM_ADDRESS 0x0008E607 //SRAM<41>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD>APP<50><50>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD> - 1Byte
|
||||
|
||||
//SRAM<41><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>·<EFBFBD><C2B7><EFBFBD><EFBFBD>ش洢<D8B4><E6B4A2>ַ <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> 448K 2022-04-17 <20><><EFBFBD><EFBFBD><EFBFBD>滮<EFBFBD>ռ<EFBFBD><D5BC><EFBFBD>0x00380000 ~ 0x003FFFFF 512K<32><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Flash<73><68>û<EFBFBD><C3BB>512K<32>ռ䣬ֻ<E4A3AC><D6BB>448K<38>ռ<EFBFBD>
|
||||
#define SRAM_IAP_LOGIC_FILE_ADDRESS 0x00390000 //SRAM<41><4D><EFBFBD><EFBFBD><DFBC>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
|
||||
#define SRAM_IAP_LOGIC_DataFlag_ADDRESS 0x00390000 //<2F>ļ<EFBFBD><C4BC><EFBFBD>־λ - 4Byte
|
||||
#define SRAM_IAP_LOGIC_DataSize_ADDRESS 0x00390004 //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> - 4Byte
|
||||
#define SRAM_IAP_LOGIC_DataMD5_ADDRESS 0x00390008 //<2F>ļ<EFBFBD>MD5У<35><D0A3>ֵ - 16Byte
|
||||
|
||||
#define SRAM_IAP_LOGIC_DataStart_ADDRESS 0x00390200
|
||||
#define SRAM_IAP_LOGIC_DataEnd_ADDRESS 0x003FFFFF
|
||||
|
||||
//<2F><>Ŀ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>
|
||||
#define SRAM_Register_Start_ADDRESS 0x0008E900
|
||||
#define SRAM_Register_End_ADDRESS 0x0008EFFF
|
||||
|
||||
#define Register_OFFSET_LEN 0x0400 //<2F><>ǰ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>ռ䳤<D5BC><E4B3A4> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3>ⳤ<EFBFBD><E2B3A4>ҲӦ<D2B2>ñ仯
|
||||
//<2F><>Ŀ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>ƫ<EFBFBD>Ƶ<EFBFBD>ַ
|
||||
#define Register_NetIP_OFFSET 0x0000 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50>ַ - DHCP<43><50><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>֮<EFBFBD><EFBFBD>DHCPʧ<50><CAA7>֮<EFBFBD><D6AE> ʹ<>õ<EFBFBD>IP<49><50>ַ - PC<50><43><EFBFBD><EFBFBD>MCUĬ<55><C4AC>IP
|
||||
#define Register_NetPort_OFFSET 0x0004 //<2F><><EFBFBD><EFBFBD>ͨѶ<CDA8>˿<EFBFBD> - PC<50><43><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
||||
#define Register_NetMask_OFFSET 0x0008 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - PC<50><43><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
||||
#define Register_NetGateway_OFFSET 0x000C //<2F><><EFBFBD><EFBFBD> - PC<50><43><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
||||
#define Register_DNSServerIP_OFFSET 0x0010 //DNS<4E><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ - PC<50><43><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
||||
#define Register_NETMACKADDR_OFFSET 0x0014 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MACK<43><4B>ַ
|
||||
#define Register_WebServerIP_OFFSET 0x0018 //<2F>ƶ˷<C6B6><CBB7><EFBFBD><EFBFBD><EFBFBD>IP<49><50>ַ - PC<50><43><EFBFBD>õ<EFBFBD><C3B5>ƶ<EFBFBD>IP<49><50>ַ
|
||||
#define Register_WebServerPort_OFFSET 0x001C //<2F>ƶ˷<C6B6><CBB7><EFBFBD><EFBFBD><EFBFBD>ͨѶ<CDA8>˿<EFBFBD> - 2025-10-11 <20><><EFBFBD><EFBFBD>
|
||||
#define Register_MandateExpiresTime_OFFSET 0x0020 //MCU<43><55>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> - <20><>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>
|
||||
#define Register_CurrentUsageTime_OFFSET 0x0024 //MCU<43><55>ǰʱ<C7B0><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define Register_MandateUTC_OFFSET 0x0028 //<2F><>Ȩʱ<C8A8><CAB1> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩʱ<C8A8>ĵ<EFBFBD>ǰUTCʱ<43><CAB1>
|
||||
#define Register_MandateLock_OFFSET 0x002C //<2F><>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>
|
||||
#define Register_NetInfo_EN_OFFSET 0x0030 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD>DHCPʹ<50><CAB9> - 1Byte<74><65><EFBFBD><EFBFBD>ʾDHCPʹ<50><CAB9> 1Byte<74>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50>ΪĬ<CEAA><C4AC>IP<49><50>ַ - PC<50><43><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
||||
|
||||
#define Register_NetOfflineTime_OFFSET 0x0034 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʱ<EFBFBD><CAB1> - 4Byte <09><>λ<EFBFBD><CEBB>ms 2025-10-11
|
||||
#define Register_ProjectCode_OFFSET 0x0038 //<2F><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>
|
||||
#define Register_SoftwareVersion_OFFSET 0x003C //<2F><><EFBFBD><EFBFBD><EFBFBD>汾<EFBFBD><E6B1BE> - <20>̼<EFBFBD><CCBC>汾<EFBFBD><E6B1BE>
|
||||
#define Register_ConfigVersion_OFFSET 0x0040 //<2F><><EFBFBD>ð汾<C3B0><E6B1BE>
|
||||
#define Register_RoomNumber_OFFSET 0x0044 //<2F><><EFBFBD><EFBFBD>
|
||||
#define Register_HouseType_OFFSET 0x0048 //<2F><><EFBFBD><EFBFBD>
|
||||
#define Register_RoomRent_OFFSET 0x004C //<2F><>̬<EFBFBD><CCAC>Ϣ - <20><><EFBFBD><EFBFBD>״̬
|
||||
#define Register_SeasonStatus_OFFSET 0x0050 //<2F><><EFBFBD><EFBFBD>״̬
|
||||
#define Register_TFTPStatus_OFFSET 0x0054 //TFTP<54><50>־<EFBFBD><D6BE><EFBFBD><EFBFBD> 4Byte
|
||||
#define Register_TFTPUploadTime_OFFSET 0x0058 //TFTP<54><50>־<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> 4Byte
|
||||
#define Register_BLVServerDmLen_OFFSET 0x005C //BLV<4C><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4Byte
|
||||
#define Register_BLVServerDmName_OFFSET 0x0060 //BLV<4C><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 64Byte
|
||||
#define Register_UDPPeriodicTime_OFFSET 0x00A0 //UDPͨѶ <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4Byte <09><>λ:ms 2025-10-11
|
||||
|
||||
#define Register_RoomNumNote_OFFSET 0x0100 //<2F><><EFBFBD>ű<EFBFBD>ע<EFBFBD><D7A2>Ϣ<EFBFBD><CFA2><EFBFBD>ŵ<EFBFBD>ַ<EFBFBD>ռ<EFBFBD> - 16Byte
|
||||
#define Register_RoomTypeNote_OFFSET 0x0110 //<2F><><EFBFBD>ͱ<EFBFBD>ע<EFBFBD><D7A2>Ϣ<EFBFBD><CFA2><EFBFBD>ŵ<EFBFBD>ַ<EFBFBD>ռ<EFBFBD> - 16Byte
|
||||
#define Register_RoomNote_OFFSET 0x0120 //<2F><><EFBFBD>䱸ע<E4B1B8><D7A2>Ϣ<EFBFBD><CFA2><EFBFBD>ŵ<EFBFBD>ַ<EFBFBD>ռ<EFBFBD> - 96Byte
|
||||
#define Register_TFTPLOGPort_OFFSET 0x0180 //TFTP<54><50>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD> - 2Byte 2024-04-08
|
||||
#define Register_TFTPLOGTime_OFFSET 0x0182 //TFTP<54><50>־<EFBFBD>ϴ<EFBFBD>ʱ<EFBFBD><CAB1> - 2Byte 2024-04-08
|
||||
#define Register_TFTPDmLens_OFFSET 0x0184 //TFTP<54><50>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - 1Byte 2024-04-08
|
||||
#define Register_TFTPDmName_OFFSET 0x0185 //TFTP<54><50>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - 255Byte 2024-04-08
|
||||
|
||||
|
||||
//APP Flag
|
||||
#define App_Procedure_Ready 0x66
|
||||
#define App_Procedure_Not_Ready 0x44
|
||||
#define App_CRC_Size 2048 //App CRC У<><D0A3><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>С
|
||||
|
||||
|
||||
/*APP<50><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ - 512Byte*/
|
||||
typedef enum{
|
||||
F_App_Check = 0x00, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD> 2Byte
|
||||
F_App_Flag = 0x02, //APP Flag<61><67>־ 1Byte
|
||||
F_App_Vendor_ID = 0x03, //<2F><><EFBFBD>̱<EFBFBD><CCB1><EFBFBD> Vendor ID 2Byte
|
||||
F_App_Product_ID = 0x05, //<2F><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD> Product ID 2Byte
|
||||
F_App_Product_Name = 0x07, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 16Byte
|
||||
F_App_House_Type = 0x17, //<2F>Ƶ껧<C6B5><EABBA7> 4Byte
|
||||
F_App_Version = 0x1B, //<2F><><EFBFBD><EFBFBD><EFBFBD>汾<EFBFBD><E6B1BE> 4byte
|
||||
F_App_Start_Addr = 0x1F, //APP <20><>ʼ<EFBFBD><CABC>ַ 4byte
|
||||
F_App_End_Addr = 0x23, //APP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ 4Byte
|
||||
F_App_CRC_Len = 0x27, //APP CRC Len 2Byte
|
||||
F_App_CRC = 0x29, //APP Flash CRC <09><><EFBFBD><EFBFBD>471Byte
|
||||
}FLASH_FEATURE_E;
|
||||
|
||||
/*Config<69><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ - 240Byte*/
|
||||
typedef enum{
|
||||
F_Config_Type = 0x00, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0x00:<3A>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD> 0x01:<3A>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
||||
F_Config_DevType, //<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
||||
F_Config_DevAddr, //<2F>豸<EFBFBD><E8B1B8>ַ
|
||||
F_Config_DevBaud, //<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
F_Config_DevPort, //<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
F_Config_DevAgre, //<2F>豸Э<E8B1B8><D0AD>
|
||||
F_Config_Retain, //<2F><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD> - 64Byte
|
||||
F_Config_Name = 0x46, //<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD> - 16Byte
|
||||
F_Config_Alias = 0x56, //<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD> - 16Byte
|
||||
F_Config_Remark = 0x66, //<2F><>ע - 138Byte
|
||||
}FLASH_CONFIG_E;
|
||||
|
||||
/******************************************************************************************************/
|
||||
/*TFTP <20><><EFBFBD><EFBFBD>LOG<4F><47><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>*/
|
||||
#define TFTP_Destination_Port 69 //TFTP<54><50><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
||||
#define TFTP_LOG_Local_Port 65500 //TFTP LOG<4F><47><EFBFBD>䱾<EFBFBD>ض˿<D8B6>
|
||||
#define DOMAINNAME_MAX 100 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB3A4><EFBFBD><EFBFBD>
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint16_t Port; //TFTP LOG<4F><47><EFBFBD>䱾<EFBFBD>ض˿<D8B6>
|
||||
uint16_t Time; //<2F><>־<EFBFBD>ϱ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
uint8_t DN_Lens; //TFTP<54><50>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
char DomainName[DOMAINNAME_MAX]; //TFTP<54><50>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}__attribute__ ((__packed__))TFTP_LOG;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t DN_Lens; //RCU <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
char DomainName[DOMAINNAME_MAX]; //RCU <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}__attribute__ ((__packed__))RCU_DOMAIN_T;
|
||||
|
||||
/******************************************************************************************************/
|
||||
|
||||
#define NET_REV_LEN 530
|
||||
#define dat_buf_size 128
|
||||
#define TFTP_IAP_Timeout 30000
|
||||
|
||||
#define TFTP_LOG_Exceed_Size 4096 //<2F><>־<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>1 - <20><EFBFBD><DEB6><EFBFBD>С
|
||||
#define TFTP_LOG_Exceed_Time 7200 //<2F><>־<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>2 - <20><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t IapFileType:2; //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>0<EFBFBD>ǹ̼<C7B9> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t TftpStart:2; //tftp<74><70>ʼ 1д 2<><32>
|
||||
uint8_t IapState:2; //<2F><><EFBFBD><EFBFBD>״̬ <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t IapType:2; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
uint8_t NewIapFlag; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̱<EFBFBD>־λ - 2022-01-05
|
||||
|
||||
uint8_t IapErrFlag; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
||||
|
||||
uint8_t IapPercent; //<2F><><EFBFBD><EFBFBD>ռ<EFBFBD>õİٷֱ<D9B7>
|
||||
|
||||
uint8_t FtpFileNameLen; //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
uint8_t FtpFileName[dat_buf_size]; //<2F>ļ<EFBFBD><C4BC><EFBFBD>
|
||||
uint8_t Md5[16]; //MD5ֵ
|
||||
|
||||
uint16_t TFTP_Port;
|
||||
|
||||
uint16_t BlockSize; //<2F><><EFBFBD><EFBFBD>С
|
||||
uint16_t Write_Block; //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
uint32_t FlashWriteAddress; //<2F><><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>ĵ<EFBFBD>ַ
|
||||
uint32_t TotalCount; //<2F>ļ<EFBFBD><C4BC>ܴ<EFBFBD>С
|
||||
uint32_t WriteCount; //<2F>ļ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>С
|
||||
|
||||
uint32_t processing_tick; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
}__attribute__ ((__packed__))IAPVarTypeStruct; //<2F><><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>һЩ<D2BB><D0A9><EFBFBD><EFBFBD>
|
||||
|
||||
#define TFTP_DATA_LEN_MAX 517
|
||||
|
||||
#define TFTP_OPCODE_LEN 2
|
||||
#define TFTP_BLKNUM_LEN 2
|
||||
|
||||
#define TFTP_DATA_PKT_HDR_LEN (TFTP_OPCODE_LEN + TFTP_BLKNUM_LEN)
|
||||
#define TFTP_ERR_PKT_HDR_LEN (TFTP_OPCODE_LEN + TFTP_ERRCODE_LEN)
|
||||
#define TFTP_ACK_PKT_LEN (TFTP_OPCODE_LEN + TFTP_BLKNUM_LEN)
|
||||
#define TFTP_DATA_PKT_LEN_MAX (TFTP_DATA_PKT_HDR_LEN + TFTP_DATA_LEN_MAX)
|
||||
#define TFTP_MAX_RETRIES 3
|
||||
#define TFTP_TIMEOUT_INTERVAL 5
|
||||
|
||||
#define TFTP_READ_PKT_LEN 4
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t op; /*WRQ */
|
||||
|
||||
/* last block read */
|
||||
uint8_t data[TFTP_DATA_LEN_MAX];
|
||||
unsigned long data_len;
|
||||
/* destination ip:port */
|
||||
uint8_t to_ip[4];
|
||||
int to_port;
|
||||
/* next block number */
|
||||
int block;
|
||||
/* total number of bytes transferred */
|
||||
int tot_bytes;
|
||||
/* timer interrupt count when last packet was sent */
|
||||
/* this should be used to resend packets on timeout */
|
||||
unsigned long long last_time;
|
||||
uint8_t retry_num;
|
||||
}tftp_connection_args;
|
||||
|
||||
|
||||
enum UDP_INTERNAL_STA{
|
||||
STA_INIT = 0,
|
||||
STA_INIT_WAIT = 1,
|
||||
STA_INIT_IDLE = 2,
|
||||
STA_Realy_Upgrade = 3,
|
||||
STA_INIT_CONNECT,
|
||||
STA_LOG,
|
||||
STA_SEND_WAIT,
|
||||
STA_SEND_LOG,
|
||||
STA_SEND_RETRY,
|
||||
STA_END,
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
TFTP_RRQ = 1,
|
||||
TFTP_WRQ = 2,
|
||||
TFTP_DATA = 3,
|
||||
TFTP_ACK = 4,
|
||||
TFTP_ERROR = 5,
|
||||
TFTP_OPTION = 6,
|
||||
} tftp_opcode;
|
||||
|
||||
|
||||
extern IAPVarTypeStruct* IAPVarTypeStruct_Ptr;
|
||||
extern uint8_t TFTP_LOG_sta;
|
||||
extern uint32_t ProjectCode;
|
||||
extern UINT8 Versions[4];
|
||||
extern uint16_t sever_port;
|
||||
|
||||
void UDP_ADD_SoftwareVer(uint8_t *data);
|
||||
void UDP_ADD_ConfigVer(uint8_t *data);
|
||||
void UDP_Add_Header(uint8_t *data,uint8_t cmd,uint16_t length, uint16_t frame_no);
|
||||
void UDP_Add_ServerIp(uint8_t *data);
|
||||
void UDP_Add_Subnet(uint8_t *data);
|
||||
void UDP_Add_Gateway(uint8_t *data);
|
||||
void UDP_Add_Mac(uint8_t *data);
|
||||
void UDP_Add_Model(uint8_t *data);
|
||||
void UDP_Add_Port(uint8_t *data);
|
||||
|
||||
uint8_t Udp_Internal_Subgroup(uint8_t* data, uint16_t DataLen, uint8_t*ip, uint16_t port);
|
||||
uint8_t Udp_Internal_IAP(uint8_t* data,uint16_t DataLen, uint8_t *ip,uint16_t port);
|
||||
uint8_t UDP_CLOUD_IAP_Cmd(uint8_t* data,uint16_t DataLen, uint8_t *ip,uint16_t port);
|
||||
uint8_t Udp_Internal_ReplyIAP(void);
|
||||
void UDP_Search_Ack(void);
|
||||
void UDP_Heart_Send(void);
|
||||
void Udp_Internal_Reboot_Reason_Report_CMD(void);
|
||||
void Udp_Internal_Power_Change_Report_CMD(void);
|
||||
void Udp_Internal_GetTime_CMD(void);
|
||||
void Udp_Internal_GetRoomRent_CMD(void);
|
||||
|
||||
uint8_t Udp_Internal_GetTime_Process(uint8_t *data, uint16_t DataLen, uint8_t *ip,uint16_t port);
|
||||
uint8_t Udp_Internal_Process_Ack(uint8_t cmd,uint16_t frame_no,uint8_t *ip,uint16_t port);
|
||||
uint8_t Udp_Internal_Search(uint8_t* data, uint16_t DataLen, uint8_t *ip,uint16_t port);
|
||||
|
||||
uint8_t Udp_Internal_PC_Testing_Reply(uint8_t *reply_data,uint16_t reply_len,uint16_t pack_frame,uint8_t *ip,uint16_t port);
|
||||
uint8_t Udp_Internal_PC_Testing_Reported(uint8_t *reply_data,uint16_t reply_len,uint8_t *ip,uint16_t port);
|
||||
uint8_t Udp_Internal_PC_Testing_DataDeal(uint8_t* data, uint16_t DataLen, uint8_t *ip,uint16_t port);
|
||||
uint8_t Udp_Internal_BLVPCTestDevice_Process(uint8_t* data, uint16_t DataLen, uint8_t *ip,uint16_t port);
|
||||
|
||||
|
||||
uint32_t UDP_Conversion_Baud(uint8_t data);
|
||||
uint8_t UDP_Baud_Conversion_Data(uint32_t data);
|
||||
uint8_t Udp_Internal_SeriaNet_Process(uint8_t* data, uint16_t DataLen, uint8_t *ip,uint16_t port);
|
||||
uint8_t Udp_Internal_SeriaNet_Uploading(uint8_t port,uint32_t baud,uint32_t data_addr);
|
||||
uint8_t Udp_Internal_SeriaNet_Uploading2(uint8_t port,uint32_t baud,uint8_t* data, uint16_t DataLen);
|
||||
uint8_t Udp_Internal_SeriaNet_Response_Timeout(void);
|
||||
uint8_t Udp_Internal_Set_MQTT_SecretKey_Process(uint8_t* data, uint16_t DataLen, uint8_t *ip,uint16_t port);
|
||||
uint8_t Udp_Internal_Read_MQTT_SecretKey_Process(uint8_t* data, uint16_t DataLen, uint8_t *ip,uint16_t port);
|
||||
uint8_t Udp_Internal_Write_FlashInfo_Process(uint8_t* data, uint16_t DataLen, uint8_t *ip,uint16_t port);
|
||||
uint8_t Udp_Internal_Read_FlashInfo_Process(uint8_t* data, uint16_t DataLen, uint8_t *ip,uint16_t port);
|
||||
|
||||
void Udp_Internal_Analysis(UINT8 *data, UINT32 len, uint8_t* ip, uint16_t port);
|
||||
|
||||
uint8_t Udp_Internal_BLVIAP(uint8_t* data,uint16_t DataLen, uint8_t *ip,uint16_t port);
|
||||
uint8_t Udp_Internal_BLVIAPCheck_Process(uint8_t* data,uint16_t DataLen, uint8_t *ip,uint16_t port);
|
||||
uint8_t Udp_Internal_BLVIAPJUMP_Process(uint8_t* data,uint16_t DataLen, uint8_t *ip,uint16_t port);
|
||||
|
||||
|
||||
void TFTP_CMD_Analysis(UINT8 *data, UINT32 len, uint8_t* ip, uint16_t port);
|
||||
void TFTP_FILE_Analysis(UINT8 *data, UINT32 len, uint8_t* ip, uint16_t port);
|
||||
void Udp_Internal_Task(void);
|
||||
|
||||
#endif
|
||||
448
BasicCode/Drive/NET/DNS.c
Normal file
448
BasicCode/Drive/NET/DNS.c
Normal file
@@ -0,0 +1,448 @@
|
||||
#include "DNS.h"
|
||||
#include "CH57xNET.H"
|
||||
#include "DBG.h"
|
||||
|
||||
#define CH57xNET_DBG 1
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
UINT8 DNS_SERVER_IP[4]={223,5,5,5}; /* DNS<4E><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1 */
|
||||
UINT8 DNS_SERVER_IP2[4]={114,114,114,114}; /* DNS<4E><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2 */
|
||||
#define IPPORT_DOMAIN 53 /* DNSĬ<53>϶˿<CFB6> */
|
||||
UINT16 MSG_ID = 0x1100; /* <20><>ʶ */
|
||||
//UINT32 count = 0;
|
||||
//UINT8 dns_buf[MAX_DNS_BUF_SIZE];
|
||||
UINT8* dns_buf = NULL;
|
||||
|
||||
//UINT8 url_dn4[] = "www.boonlive-rcu.com";
|
||||
/*******************************************************************************
|
||||
* Function Name : get16
|
||||
* Description : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>UINT8<54><38><EFBFBD><EFBFBD>תΪUINT16<31><36>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||
* Input : s -UINT8<54><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* Output : None
|
||||
* Return : ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>UINT16<31><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*******************************************************************************/
|
||||
UINT16 get16(UINT8 * s)
|
||||
{
|
||||
UINT16 i;
|
||||
|
||||
i = *s++ << 8;
|
||||
i = i + *s;
|
||||
return i;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : ParseName
|
||||
* Description : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* Input : msg -ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ָ<EFBFBD><D6B8>
|
||||
compressed -ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
buf -<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* Output : None
|
||||
* Return : ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD>ĵij<C4B5><C4B3><EFBFBD>
|
||||
*******************************************************************************/
|
||||
int ParseName(UINT8 * msg, UINT8 * compressed, char * buf)
|
||||
{
|
||||
UINT16 slen; /* <20><>ǰƬ<C7B0>γ<EFBFBD><CEB3><EFBFBD>*/
|
||||
UINT8 * cp;
|
||||
int clen = 0; /* ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
int indirect = 0;
|
||||
int nseg = 0; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
|
||||
cp = compressed;
|
||||
for (;;){
|
||||
slen = *cp++; /* <20><><EFBFBD>ֽڵļ<DAB5><C4BC><EFBFBD>ֵ*/
|
||||
if (!indirect) clen++;
|
||||
if ((slen & 0xc0) == 0xc0){ /* <20><><EFBFBD><EFBFBD><EFBFBD>ֽڸ<D6BD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ1<CEAA><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>ʽ */
|
||||
if (!indirect) clen++;
|
||||
indirect = 1;
|
||||
cp = &msg[((slen & 0x3f)<<8) + *cp]; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>ֵָ<D6B5><D6B8>ƫ<EFBFBD>Ƶ<EFBFBD>ָ<EFBFBD><D6B8>λ<EFBFBD><CEBB> */
|
||||
slen = *cp++;
|
||||
}
|
||||
if (slen == 0) break; /* <20><><EFBFBD><EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (!indirect) clen += slen;
|
||||
while (slen-- != 0) *buf++ = (char)*cp++;
|
||||
*buf++ = '.';
|
||||
nseg++;
|
||||
}
|
||||
if (nseg == 0){
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; */
|
||||
*buf++ = '.';
|
||||
}
|
||||
*buf++ = '\0';
|
||||
return clen; /* ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD> */
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : DnsQuestion
|
||||
* Description : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
||||
* Input : msg -ָ<><D6B8><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ĵ<EFBFBD>ָ<EFBFBD><D6B8>
|
||||
cp -ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>ָ<EFBFBD><D6B8>
|
||||
* Output : None
|
||||
* Return : ָ<><D6B8><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>¼<EFBFBD><C2BC>ָ<EFBFBD><D6B8>
|
||||
*******************************************************************************/
|
||||
UINT8 * DnsQuestion(UINT8 * msg, UINT8 * cp)
|
||||
{
|
||||
int len;
|
||||
char name[MAX_DNS_BUF_SIZE];
|
||||
|
||||
len = ParseName(msg, cp, name);
|
||||
cp += len;
|
||||
cp += 2; /* <20><><EFBFBD><EFBFBD> */
|
||||
cp += 2; /* <20><> */
|
||||
return cp;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : DnsAnswer
|
||||
* Description : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>еĻش<C4BB><D8B4><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
||||
* Input : msg -ָ<><D6B8><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ĵ<EFBFBD>ָ<EFBFBD><D6B8>
|
||||
cp -ָ<><D6B8><EFBFBD>ش<EFBFBD><D8B4><EFBFBD>¼<EFBFBD><C2BC>ָ<EFBFBD><D6B8>
|
||||
psip
|
||||
* Output : None
|
||||
* Return :ָ<><D6B8><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>¼<EFBFBD><C2BC>ָ<EFBFBD><D6B8>
|
||||
*******************************************************************************/
|
||||
UINT8 * DnsAnswer(UINT8 * msg, UINT8 * cp, UINT8 * pSip)
|
||||
{
|
||||
int len, type;
|
||||
char name[MAX_DNS_BUF_SIZE];
|
||||
|
||||
len = ParseName(msg, cp, name);
|
||||
cp += len;
|
||||
type = get16(cp);
|
||||
cp += 2; /* <20><><EFBFBD><EFBFBD> */
|
||||
cp += 2; /* <20><> */
|
||||
cp += 4; /* <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> */
|
||||
cp += 2; /* <20><>Դ<EFBFBD><D4B4><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> */
|
||||
switch ( type ){
|
||||
case TYPE_A:
|
||||
pSip[0] = *cp++;
|
||||
pSip[1] = *cp++;
|
||||
pSip[2] = *cp++;
|
||||
pSip[3] = *cp++;
|
||||
break;
|
||||
case TYPE_CNAME:
|
||||
case TYPE_MB:
|
||||
case TYPE_MG:
|
||||
case TYPE_MR:
|
||||
case TYPE_NS:
|
||||
case TYPE_PTR:
|
||||
len = ParseName(msg, cp, name);
|
||||
cp += len;
|
||||
break;
|
||||
case TYPE_HINFO:
|
||||
case TYPE_MX:
|
||||
case TYPE_SOA:
|
||||
case TYPE_TXT:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return cp;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : parseMSG
|
||||
* Description : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>Դ<EFBFBD><D4B4>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
||||
* Input : msg -ָ<><D6B8>DNS<4E><53><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
cp -ָ<><D6B8><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ĵ<EFBFBD>ָ<EFBFBD><D6B8>
|
||||
* Output : None
|
||||
* Return :<3A>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
|
||||
*******************************************************************************/
|
||||
|
||||
UINT8 parseMSG(struct dhdr * pdhdr, UINT8 * pbuf, UINT8 * pSip)
|
||||
{
|
||||
UINT16 tmp;
|
||||
UINT16 i;
|
||||
UINT8 * msg;
|
||||
UINT8 * cp;
|
||||
|
||||
msg = pbuf;
|
||||
memset(pdhdr, 0, sizeof(*pdhdr));
|
||||
pdhdr->id = get16(&msg[0]);
|
||||
tmp = get16(&msg[2]);
|
||||
if (tmp & 0x8000) pdhdr->qr = 1;
|
||||
pdhdr->opcode = (tmp >> 11) & 0xf;
|
||||
if (tmp & 0x0400) pdhdr->aa = 1;
|
||||
if (tmp & 0x0200) pdhdr->tc = 1;
|
||||
if (tmp & 0x0100) pdhdr->rd = 1;
|
||||
if (tmp & 0x0080) pdhdr->ra = 1;
|
||||
pdhdr->rcode = tmp & 0xf;
|
||||
pdhdr->qdcount = get16(&msg[4]);
|
||||
pdhdr->ancount = get16(&msg[6]);
|
||||
pdhdr->nscount = get16(&msg[8]);
|
||||
pdhdr->arcount = get16(&msg[10]);
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD><C9B1><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3>Ȳ<EFBFBD><C8B2><EFBFBD>*/
|
||||
cp = &msg[12];
|
||||
/* <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD> */
|
||||
for (i = 0; i < pdhdr->qdcount; i++)
|
||||
{
|
||||
cp = DnsQuestion(msg, cp);
|
||||
}
|
||||
/* <20>ش<EFBFBD> */
|
||||
for (i = 0; i < pdhdr->ancount; i++)
|
||||
{
|
||||
cp = DnsAnswer(msg, cp, pSip);
|
||||
}
|
||||
/*<2A><>Ȩ */
|
||||
for (i = 0; i < pdhdr->nscount; i++)
|
||||
{
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/ ;
|
||||
}
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ */
|
||||
for (i = 0; i < pdhdr->arcount; i++)
|
||||
{
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/ ;
|
||||
}
|
||||
if(pdhdr->rcode == 0) return 1; /* rcode = 0:<3A>ɹ<EFBFBD> */
|
||||
else return 0;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : put16
|
||||
* Description :UINT16 <20><>ʽ<EFBFBD><CABD><EFBFBD>ݰ<EFBFBD>UINT8<54><38>ʽ<EFBFBD>浽<EFBFBD><E6B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* Input : s -<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
i -UINT16<31><36><EFBFBD><EFBFBD>
|
||||
* Output : None
|
||||
* Return : ƫ<><C6AB>ָ<EFBFBD><D6B8>
|
||||
*******************************************************************************/
|
||||
UINT8 * put16(UINT8 * s, UINT16 i)
|
||||
{
|
||||
*s++ = i >> 8;
|
||||
*s++ = i;
|
||||
return s;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : MakeDnsQuery
|
||||
* Description : <20><><EFBFBD><EFBFBD>DNS<4E><53>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
|
||||
input : op - <20>ݹ<EFBFBD>
|
||||
* name - ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
* buf - DNS<4E><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
* len - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
* Output : None
|
||||
* Return : ָ<><D6B8>DNS<4E><53><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
*******************************************************************************/
|
||||
UINT16 MakeDnsQueryMsg(UINT16 op, char * name, UINT8 * buf, UINT16 len)
|
||||
{
|
||||
UINT8 *cp;
|
||||
char *cp1;
|
||||
char tmpname[MAX_DNS_BUF_SIZE];
|
||||
char *dname;
|
||||
UINT16 p;
|
||||
UINT16 dlen;
|
||||
|
||||
//printf("Domain name:%s \n",name);
|
||||
cp = buf;
|
||||
MSG_ID++;
|
||||
cp = put16(cp, MSG_ID); /* <20><>ʶ */
|
||||
p = (op << 11) | 0x0100;
|
||||
cp = put16(cp, p); /* 0x0100<30><30>Recursion desired */
|
||||
cp = put16(cp, 1); /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1 */
|
||||
cp = put16(cp, 0); /* <20><>Դ<EFBFBD><D4B4>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>0 */
|
||||
cp = put16(cp, 0); /* <20><>Դ<EFBFBD><D4B4>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>0 */
|
||||
cp = put16(cp, 0); /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>0 */
|
||||
|
||||
strcpy(tmpname, name);
|
||||
dname = tmpname;
|
||||
dlen = strlen(dname);
|
||||
for (;;){ /* <20><><EFBFBD><EFBFBD>DNS<4E><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>URIд<49>뵽buf<75><66><EFBFBD><EFBFBD>ȥ */
|
||||
cp1 = strchr(dname, '.');
|
||||
if (cp1 != NULL) len = cp1 - dname;
|
||||
else len = dlen;
|
||||
*cp++ = len;
|
||||
if (len == 0) break;
|
||||
strncpy((char *)cp, dname, len);
|
||||
cp += len;
|
||||
if (cp1 == NULL)
|
||||
{
|
||||
*cp++ = 0;
|
||||
break;
|
||||
}
|
||||
dname += len+1; /* dname<6D><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD> */
|
||||
dlen -= len+1; /* dname<6D><65><EFBFBD>ȼ<EFBFBD>С */
|
||||
}
|
||||
cp = put16(cp, 0x0001); /* type <20><>1------ip<69><70>ַ */
|
||||
cp = put16(cp, 0x0001); /* class<73><73>1-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ */
|
||||
return ((UINT16)(cp - buf));
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : DnsQuery
|
||||
* Description : <20><><EFBFBD><EFBFBD>DNS<4E><53>ѯ
|
||||
input : s -socket<65><74><EFBFBD><EFBFBD>
|
||||
* name - ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
pSip -<2D><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
|
||||
* Output : None
|
||||
* Return : <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>2
|
||||
*******************************************************************************/
|
||||
//UINT8 DnsQuery2(UINT8* s, UINT8 * name, UINT8 * pSip)
|
||||
//{
|
||||
// struct dhdr dhp;
|
||||
|
||||
// UINT8 ret;
|
||||
// UINT32 len;
|
||||
// if(Status >1 ){
|
||||
// count++;
|
||||
// DelayMs(10);
|
||||
// if( count>20000 ){
|
||||
//#if CH57xNET_DBG
|
||||
// printf("DNS Fail!!!!!\n");
|
||||
//#endif
|
||||
// count=0;
|
||||
// Status = 0;
|
||||
// return 2;
|
||||
// }
|
||||
// }
|
||||
// if(Status == 1)
|
||||
// {
|
||||
// DNS_SocketParamInit(s, DNS_SERVER_IP, 4000, IPPORT_DOMAIN);
|
||||
// //UDPSocketParamInit(*s,DNS_SERVER_IP,4000,IPPORT_DOMAIN);
|
||||
// Status = 2;
|
||||
//#if CH57xNET_DBG
|
||||
// printf(" 2 status = %d!\n",Status);
|
||||
//#endif
|
||||
// }
|
||||
// if(Status ==2)
|
||||
// {
|
||||
// len = MakeDnsQueryMsg(0,(char *)name, dns_buf, MAX_DNS_BUF_SIZE);
|
||||
// ret = CH57xNET_SocketSend(*s,dns_buf,&len);
|
||||
// if ( ret ) return(0);
|
||||
// else{
|
||||
// Status = 3;
|
||||
//#if CH57xNET_DBG
|
||||
// printf("status = 3!\n");
|
||||
//#endif
|
||||
// }
|
||||
// }
|
||||
// if(Status ==4)
|
||||
// {
|
||||
// //CH57xNET_SocketClose(*s,TCP_CLOSE_NORMAL );
|
||||
// return(parseMSG(&dhp, dns_buf, pSip)); /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD>*/
|
||||
//
|
||||
// }
|
||||
// return 0;
|
||||
//}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : DnsQuery_Task
|
||||
* Description : <20><><EFBFBD><EFBFBD>DNS<4E><53>ѯ
|
||||
input : s -socket<65><74><EFBFBD><EFBFBD>
|
||||
* name - ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
pSip -<2D><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
|
||||
* Output : None
|
||||
* Return : <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>2
|
||||
*<2A><> <20><> : ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*******************************************************************************/
|
||||
UINT8 DnsQuery_Task(UINT8* s, UINT8 * name, UINT8 * pSip)
|
||||
{
|
||||
static uint32_t dnschange_wait_tick1 = 0;
|
||||
switch(server_info.dns_sta)
|
||||
{
|
||||
case DNS_INIT:
|
||||
{
|
||||
if(dns_buf == NULL) dns_buf = (UINT8*)malloc(MAX_DNS_BUF_SIZE/2); //ΪDNS<4E><53><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>
|
||||
UINT8 ret = DNS_SocketParamInit(s, DNS_SERVER_IP, 4000, IPPORT_DOMAIN); //<2F><><EFBFBD><EFBFBD>DNS<4E>õ<EFBFBD><C3B5><EFBFBD><D7BD><EFBFBD>
|
||||
if(ret == CH57xNET_ERR_SUCCESS)
|
||||
{
|
||||
server_info.dns_sta = DNS_DATA_SEND;
|
||||
Dbg_Println(DBG_BIT_NET_STATUS_bit,"DNS socket<65><74><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>,DNS Server IP:%d.%d.%d.%d",\
|
||||
DNS_SERVER_IP[0],DNS_SERVER_IP[1],DNS_SERVER_IP[2],DNS_SERVER_IP[3]);
|
||||
}
|
||||
else
|
||||
{
|
||||
Dbg_Println(DBG_BIT_NET_STATUS_bit,"DNS socket<65><74><EFBFBD>´<EFBFBD><C2B4><EFBFBD>,DNS Server IP:%d.%d.%d.%d",\
|
||||
DNS_SERVER_IP[0],DNS_SERVER_IP[1],DNS_SERVER_IP[2],DNS_SERVER_IP[3]);
|
||||
server_info.dns_sta = DNS_ClOSE; //2023-03-06
|
||||
server_info.dns_fail++; //2023-03-06
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case DNS_INIT1:
|
||||
{
|
||||
if(dns_buf == NULL) dns_buf = (UINT8*)malloc(MAX_DNS_BUF_SIZE/2); //ΪDNS<4E><53><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>
|
||||
UINT8 ret = DNS_SocketParamInit(s, DNS_SERVER_IP2, 4000, IPPORT_DOMAIN); //<2F><><EFBFBD><EFBFBD>DNS<4E>õ<EFBFBD><C3B5><EFBFBD><D7BD><EFBFBD>
|
||||
if(ret == CH57xNET_ERR_SUCCESS)
|
||||
{
|
||||
server_info.dns_sta = DNS_DATA_SEND;
|
||||
Dbg_Println(DBG_BIT_NET_STATUS_bit,"DNS socket<65><74><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>,DNS Server IP:%d.%d.%d.%d",\
|
||||
DNS_SERVER_IP2[0],DNS_SERVER_IP2[1],DNS_SERVER_IP2[2],DNS_SERVER_IP2[3]);
|
||||
}
|
||||
else
|
||||
{
|
||||
Dbg_Println(DBG_BIT_NET_STATUS_bit,"DNS socket<65><74><EFBFBD>´<EFBFBD><C2B4><EFBFBD>,DNS Server IP:%d.%d.%d.%d",\
|
||||
DNS_SERVER_IP2[0],DNS_SERVER_IP2[1],DNS_SERVER_IP2[2],DNS_SERVER_IP2[3]);
|
||||
server_info.dns_sta = DNS_ClOSE; //2023-03-06
|
||||
server_info.dns_fail++; //2023-03-06
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case DNS_DATA_SEND:
|
||||
{
|
||||
UINT32 len = MakeDnsQueryMsg(0,(char *)name, dns_buf, MAX_DNS_BUF_SIZE); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
UINT8 ret = CH57xNET_SocketSend(*s, dns_buf, &len); //<2F><><EFBFBD>͵<EFBFBD>DNS<4E><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(ret == CH57xNET_ERR_SUCCESS)
|
||||
{
|
||||
|
||||
Dbg_Println(DBG_BIT_NET_STATUS_bit,"DNS<EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
else Dbg_Println(DBG_BIT_NET_STATUS_bit,"DNS<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
||||
server_info.wait_cot = SysTick_10ms;
|
||||
server_info.dns_sta = DNS_WAIT_RECV;
|
||||
server_info.dns_flg = 0x00;
|
||||
}
|
||||
break;
|
||||
|
||||
case DNS_WAIT_RECV: //<2F><><EFBFBD><EFBFBD>DNS<4E>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA>ر<EFBFBD><D8B1><EFBFBD><D7BD><EFBFBD>
|
||||
|
||||
if(server_info.dns_flg == 1) //<2F><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ip
|
||||
{
|
||||
struct dhdr dhp;
|
||||
UINT8 rev = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Dbg_Println(DBG_BIT_NET_STATUS_bit,"DNS <20><>ʱ<EFBFBD><CAB1>%d0ms", SysTick_10ms - server_info.wait_cot);
|
||||
|
||||
rev = parseMSG(&dhp, dns_buf, pSip); /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>ֵ<EFBFBD><D6B5>0x01:<3A>ɹ<EFBFBD><C9B9><EFBFBD>0x00:ʧ<><CAA7>*/
|
||||
|
||||
CH57xNET_SocketClose(*s,SOCK_STAT_CLOSED );
|
||||
|
||||
Dbg_Println(DBG_BIT_NET_STATUS_bit,"<EFBFBD>ͷ<EFBFBD>DNS<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
|
||||
if(rev == 0x01) /*parseMSG <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD> 2022-06-08*/
|
||||
{
|
||||
return 0x01; //<2F><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
|
||||
}else {
|
||||
server_info.dns_fail++;
|
||||
server_info.dns_sta = DNS_ClOSE;
|
||||
dnschange_wait_tick1 = SysTick_10ms;
|
||||
}
|
||||
|
||||
}
|
||||
else if(SysTick_10ms - server_info.wait_cot > 200) //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ճ<EFBFBD>ʱ
|
||||
{
|
||||
server_info.wait_cot = SysTick_10ms;
|
||||
server_info.dns_sta = DNS_ClOSE;
|
||||
server_info.dns_fail++;
|
||||
}
|
||||
break;
|
||||
case DNS_ClOSE:
|
||||
free(dns_buf); //<2F>ͷ<EFBFBD>DNS<4E>ռ<EFBFBD>
|
||||
dns_buf = NULL;
|
||||
CH57xNET_SocketClose(*s,SOCK_STAT_CLOSED ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(server_info.dns_fail == 0x01)
|
||||
{
|
||||
if(SysTick_10ms - dnschange_wait_tick1 > 50)
|
||||
{
|
||||
Dbg_Println(DBG_BIT_NET_STATUS_bit,"<EFBFBD>л<EFBFBD>DNS<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dnschange_wait_tick1 = SysTick_10ms;
|
||||
server_info.dns_sta = DNS_INIT1;
|
||||
}
|
||||
}
|
||||
else if(server_info.dns_fail >= 0x02)
|
||||
{
|
||||
*s = 0;
|
||||
server_info.dns_fail = 0x00;
|
||||
return 0x02; //<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
}
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
98
BasicCode/Drive/NET/DNS.h
Normal file
98
BasicCode/Drive/NET/DNS.h
Normal file
@@ -0,0 +1,98 @@
|
||||
#ifndef _DNS_H_
|
||||
#define _DNS_H_
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include "CH57x_common.h"
|
||||
#include "net.h"
|
||||
|
||||
#define MAX_URL_SIZE 128
|
||||
#define MAX_DNS_BUF_SIZE 256 /*DNS<4E><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
#define CH563NET_DBG 1 /* printf<74><66><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9> */
|
||||
|
||||
#define SERVER_NAME_DNS "www.boonlive-rcu.com"
|
||||
#define TFTPSERVER_NAME_DNS "blv-tftp-log.blv-oa.com" //"BoonliveNAS.synology.me"
|
||||
#define UDPSERVER_NAME_DNS "rcu-udp-svr.blv-oa.com"
|
||||
|
||||
/*
|
||||
********************************************************************************
|
||||
Define Part
|
||||
********************************************************************************
|
||||
*/
|
||||
|
||||
#define TYPE_A 1 /* Host address */
|
||||
#define TYPE_NS 2 /* Name server */
|
||||
#define TYPE_MD 3 /* Mail destination (obsolete) */
|
||||
#define TYPE_MF 4 /* Mail forwarder (obsolete) */
|
||||
#define TYPE_CNAME 5 /* Canonical name */
|
||||
#define TYPE_SOA 6 /* Start of Authority */
|
||||
#define TYPE_MB 7 /* Mailbox name (experimental) */
|
||||
#define TYPE_MG 8 /* Mail group member (experimental) */
|
||||
#define TYPE_MR 9 /* Mail rename name (experimental) */
|
||||
#define TYPE_NULL 10 /* Null (experimental) */
|
||||
#define TYPE_WKS 11 /* Well-known sockets */
|
||||
#define TYPE_PTR 12 /* Pointer record */
|
||||
#define TYPE_HINFO 13 /* Host information */
|
||||
#define TYPE_MINFO 14 /* Mailbox information (experimental)*/
|
||||
#define TYPE_MX 15 /* Mail exchanger */
|
||||
#define TYPE_TXT 16 /* Text strings */
|
||||
#define TYPE_ANY 255 /* Matches any type */
|
||||
|
||||
#define CLASS_IN 1 /* The ARPA Internet */
|
||||
|
||||
typedef enum
|
||||
{
|
||||
DNS_INIT,
|
||||
DNS_INIT1,
|
||||
DNS_DATA_SEND,
|
||||
DNS_WAIT_RECV,
|
||||
DNS_ANALYSIS,
|
||||
DNS_ClOSE,
|
||||
}DNS_STA;
|
||||
|
||||
struct dhdr
|
||||
{
|
||||
UINT16 id; /* <20><>ʶ */
|
||||
UINT8 qr; /* <20><>ѯ<EFBFBD><D1AF>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>־*/
|
||||
UINT8 opcode;
|
||||
UINT8 aa; /* <20><>Ȩ<EFBFBD>ش<EFBFBD> */
|
||||
UINT8 tc; /* <20>ɽضϵ<D8B6> */
|
||||
UINT8 rd; /* <20><><EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD>*/
|
||||
UINT8 ra; /* <20><><EFBFBD>Եݹ<D4B5> */
|
||||
UINT8 rcode; /* Ӧ<><D3A6><EFBFBD><EFBFBD> */
|
||||
UINT16 qdcount; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
UINT16 ancount; /* Ӧ<><D3A6><EFBFBD><EFBFBD> */
|
||||
UINT16 nscount; /* <20><>Ȩ<EFBFBD><C8A8> */
|
||||
UINT16 arcount; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC> */
|
||||
};
|
||||
|
||||
//extern UINT8 dns_buf[MAX_DNS_BUF_SIZE];
|
||||
extern UINT8* dns_buf;
|
||||
extern UINT8 DNS_SERVER_IP[4];
|
||||
|
||||
UINT16 get16(UINT8 * s);
|
||||
|
||||
int ParseName(UINT8 * msg, UINT8 * compressed, char * buf);
|
||||
|
||||
UINT8 * DnsQuestion(UINT8 * msg, UINT8 * cp);
|
||||
|
||||
UINT8 * DnsAnswer(UINT8 * msg, UINT8 * cp, UINT8 * pSip);
|
||||
|
||||
UINT8 parseMSG(struct dhdr * pdhdr, UINT8 * pbuf, UINT8 * pSip);
|
||||
|
||||
UINT8 * put16(UINT8 * s, UINT16 i);
|
||||
|
||||
UINT16 MakeDnsQueryMsg(UINT16 op, char * name, UINT8 * buf, UINT16 len);
|
||||
|
||||
//UINT8 DnsQuery(UINT8 s, UINT8 * name, UINT8 * pSip);
|
||||
|
||||
//UINT8 DnsQuery(UINT8 s, UINT8 * name, UINT8 * pSip);
|
||||
|
||||
UINT8 DnsQuery2(UINT8* s, UINT8 * name, UINT8 * pSip);
|
||||
|
||||
void UDPSocketParamInit(UINT8 sockindex,UINT8 *addr,UINT16 SourPort,UINT16 DesPort);
|
||||
|
||||
UINT8 DnsQuery_Task(UINT8* s, UINT8 * name, UINT8 * pSip);
|
||||
|
||||
#endif
|
||||
1599
BasicCode/Drive/NET/net.c
Normal file
1599
BasicCode/Drive/NET/net.c
Normal file
File diff suppressed because it is too large
Load Diff
219
BasicCode/Drive/NET/net.h
Normal file
219
BasicCode/Drive/NET/net.h
Normal file
@@ -0,0 +1,219 @@
|
||||
#ifndef _DHCP_H_
|
||||
#define _DHCP_H_
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "CH57x_common.h"
|
||||
#include "CH57xNET.H"
|
||||
#include "DNS.h"
|
||||
#include "BLV_NET_Function.h"
|
||||
|
||||
#define KEEPLIVE_ENABLE 1 /* <20><><EFBFBD><EFBFBD>KEEPLIVE<56><45><EFBFBD><EFBFBD> */
|
||||
#define RECE_BUF_LEN 536 /* <20><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD>С */
|
||||
|
||||
#define Net_NO_SERVER 0x00 //<2F><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define Net_LOCAL_SERVER 0x01 //<2F><><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define Net_CLOUD_SERVER 0x02 //<2F>ƶ˷<C6B6><CBB7><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define INTERRUPT_RECV_EN 0 //<2F><><EFBFBD><EFBFBD><EFBFBD>жϷ<D0B6>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||
#define APPCALLBACK_RECV_EN 1 //ʹ<>ܻص<DCBB><D8B5><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||
#define USE_AUTO_OBTAIN_IP 0 //DHCP<43>Զ<EFBFBD><D4B6><EFBFBD>ȡip 0<><30>DHCP<43>Զ<EFBFBD><D4B6><EFBFBD>ȡ; 1<><31><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>
|
||||
#define USE_BLE_OBTAIN_IP 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡip
|
||||
#define User_NET_DNS_EN 1 //NET DNSʹ<53><CAB9>
|
||||
|
||||
#define SOCKET_TYPE_TCP 1 //<2F><><EFBFBD><EFBFBD>TCP<43><50><EFBFBD><EFBFBD><D7BD><EFBFBD>
|
||||
#define SOCKET_TYPE_MQTT 2 //<2F><><EFBFBD><EFBFBD>MQTT<54><54><EFBFBD><EFBFBD><D7BD><EFBFBD>
|
||||
#define SOCKET_TYPE_UDP 3 //<2F><><EFBFBD><EFBFBD>UDP<44><50><EFBFBD><EFBFBD><D7BD><EFBFBD>
|
||||
|
||||
#define NET_RESEND_TIMES 3 /*<2A>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ7<D6B5><37>ʵ<EFBFBD><CAB5><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>+1 */
|
||||
|
||||
#define USER_NET_Register_Timeout 30 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD>ʱ,<2C><>λ<EFBFBD><CEBB>S
|
||||
#define USER_NET_Send_Timeout 20 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵȴ<DDB5><C8B4>ظ<EFBFBD>ʱ<EFBFBD><CAB1>,<2C><>λ<EFBFBD><CEBB>S
|
||||
#define USER_NET_Register_Times 10 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD>
|
||||
#define USER_NET_Send_Times 10 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
typedef void (*AppCallBack)(struct _SCOK_INF *,UINT32 ,UINT16 ,UINT8 *,UINT32 ); /* <20><><EFBFBD>ջص<D5BB><D8B5><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
|
||||
typedef enum
|
||||
{
|
||||
NET_INIT = 0,
|
||||
NET_PHY_WAIT,
|
||||
NET_DHCP,
|
||||
NET_DHCP_WAIT,
|
||||
NET_TFTP,
|
||||
NET_DNS,
|
||||
NET_DNS2,
|
||||
NET_WAIT,
|
||||
NET_COMPLETE,
|
||||
NET_MQTT_DNS,
|
||||
NET_MQTT_INIT,
|
||||
NET_MQTT_WAIT,
|
||||
NET_WAIT_MAC_RESTART,
|
||||
NET_START_TO_INIT,
|
||||
NET_CON_WAIT,
|
||||
NET_SOCKET_WAIT,
|
||||
}NET_STA;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
MQTT_DNS = 0,
|
||||
MQTT_INIT,
|
||||
MQTT_WAIT,
|
||||
MQTT_COMPLETE,
|
||||
MQTT_RCON,
|
||||
MQTT_FAIL,
|
||||
}MQTT_STA; //2023-03-17
|
||||
|
||||
typedef enum
|
||||
{
|
||||
SOCKET_SEND,
|
||||
SOCKET_RESEND,
|
||||
SOCKET_COMPLETE,
|
||||
|
||||
}SOCKET_STA;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
NET_STATUS_INIT = 0, //δ<><CEB4>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
NET_STATUS_PHY_DISCONN, //<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD> <20><> PHYЭ<59><D0AD>ʧ<EFBFBD><CAA7>
|
||||
NET_STATUS_IP_CONFLI, //IP<49><50>ͻ
|
||||
NET_STATUS_UNREACH, //<2F><><EFBFBD>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
NET_STATUS_NORMAL, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
}NET_STATUS;
|
||||
|
||||
#pragma pack(1)
|
||||
typedef struct
|
||||
{
|
||||
UINT8 local_ip[4]; //<2F><><EFBFBD><EFBFBD>ip<69><70>ַ
|
||||
UINT8 gwip_addr[4]; //<2F><><EFBFBD><EFBFBD>
|
||||
UINT8 mask[4]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
UINT8 SocketId[4]; //<2F><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
UINT8 ServerDename[64]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2025-10-11
|
||||
}NET_INFO;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t init_flag:1; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
|
||||
uint8_t register_flag:1; //ע<><D7A2><EFBFBD><EFBFBD>־λ
|
||||
uint8_t search_ack_flag:1; //<2F><><EFBFBD>ͱ<EFBFBD>־λ
|
||||
uint8_t dhcp_en:1; //DHCP<43>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t dns_sta:4; //DNS״̬
|
||||
|
||||
uint8_t dhcp_flg:1; //DHCP<43><50><EFBFBD><EFBFBD>ip<69>ɹ<EFBFBD><C9B9><EFBFBD>־
|
||||
uint8_t dns_flg:1; //DNS<4E><53>ȡip<69>ɹ<EFBFBD><C9B9><EFBFBD>־
|
||||
uint8_t Udp_Internal_sta:4; //UDP״̬<D7B4><CCAC>״̬
|
||||
uint8_t PHY_State:2; //NET PHY״̬ 0x00:<3A><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>ӣ<EFBFBD>0x01:<3A><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DNS״̬
|
||||
|
||||
uint8_t register_num:4; //ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t dns_fail:4; //DNSʧ<53>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>DNS<4E><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
||||
|
||||
uint8_t server_dns_flag:1; //DNS<4E>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t tftp_dns_flag:1; //DNS<4E>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>tftp<74><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t mqtt_dns_flag:1; //MQTT<54>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ
|
||||
uint8_t online_state:3; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ 0:<3A><><EFBFBD><EFBFBD> 1:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2:<3A><><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3:<3A>ƶ˷<C6B6><CBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t sync_tick:2; //ͬ<><CDAC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
uint8_t udp_dns_flag:1; //udp<64><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ
|
||||
uint8_t server_select:1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1> 0x00:Ĭ<><C4AC><EFBFBD>ƶ˷<C6B6><CBB7><EFBFBD><EFBFBD><EFBFBD>,0x01:<3A><><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t net_retry_flag:1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>־λ -
|
||||
uint8_t net_retry_num:5; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD> - <20><><EFBFBD><EFBFBD>DHCP<43><50><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD>DNS<4E><53><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>
|
||||
|
||||
uint8_t con_flag:1; //ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t rcu_reboot_flag:1; //RCU<43><55><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ
|
||||
uint8_t udp_scan_cnt:6; //udpɨ<70><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
uint8_t active_cmd_flag; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ
|
||||
|
||||
uint8_t net_sta; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ״̬
|
||||
|
||||
uint8_t dis_ip[4]; //<2F>ƶ˷<C6B6><CBB7><EFBFBD><EFBFBD><EFBFBD>ip<69><70>ַ
|
||||
uint8_t tftp_ip[4]; //TFTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t udp_ip[4]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>UDP<44><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t goal_ip[4]; //Ŀ<><C4BF>ip,
|
||||
uint16_t local_port; //<2F><><EFBFBD>ض˿<D8B6>
|
||||
uint16_t goal_port; //Ŀ<><C4BF>port
|
||||
uint16_t dis_port; //<2F>ƶ˷<C6B6><CBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
||||
uint16_t frame_no; //<2F><><EFBFBD>͵<EFBFBD>֡<EFBFBD><D6A1>
|
||||
uint32_t wait_cot; //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
uint32_t register_tick; //ע<><D7A2><EFBFBD><EFBFBD>ʱ
|
||||
uint32_t search_ack_tick; //<2F><><EFBFBD>ͼ<EFBFBD>ʱ
|
||||
|
||||
uint8_t udp_sta; //UDP<44><50><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
|
||||
|
||||
uint8_t udp_send_flag; //<2F><><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD>
|
||||
uint8_t udp_retry_cnt; //<2F>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t udp_retry_num; //<2F>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint16_t ack_frame; //ACK֡<4B><D6A1>
|
||||
|
||||
uint16_t udp_timesync_cnt; //ʱ<><CAB1>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - 1sһ<73><D2BB>
|
||||
uint16_t udp_periodic_cnt; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD> - 1sһ<73><D2BB>
|
||||
uint16_t udp_periodic_time; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><>λ:S
|
||||
|
||||
uint32_t udp_retry_tick; //<2F>ط<EFBFBD><D8B7><EFBFBD>ʱʱ<CAB1><CAB1><EFBFBD><EFBFBD>
|
||||
uint32_t udp_retry_time; //<2F>ط<EFBFBD><D8B7><EFBFBD>ʱʱ<CAB1><CAB1>
|
||||
|
||||
uint32_t con_tick; //ֱ<><D6B1>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> 2023-05-27
|
||||
|
||||
#if TFTP_GET_IP
|
||||
uint8_t tftpip_gflag; //TFTP_IP<49>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
#endif
|
||||
|
||||
uint32_t udp_idle_tick; //UDP<44><50><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
uint32_t udp_online_tick; //UDP<44><50><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
uint32_t udp_online_time; //UDP<44><50><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
|
||||
|
||||
}__attribute__ ((__packed__)) NET_SERVER_INFO;
|
||||
|
||||
|
||||
#pragma pack()
|
||||
|
||||
extern uint32_t SysTick_10ms;
|
||||
extern NET_INFO net_info;
|
||||
extern NET_SERVER_INFO server_info;
|
||||
extern UINT8 MACAddr[6]; /* CH579MAC<41><43>ַ */
|
||||
extern UINT8 SocketRecvBuf[RECE_BUF_LEN];
|
||||
extern TFTP_LOG tftp_log;
|
||||
extern uint8_t Global_Large_Buff[1100];
|
||||
|
||||
#if USE_INTERRUPT_RECV
|
||||
extern UINT8 MyBuf[RECE_BUF_LEN];
|
||||
#endif
|
||||
|
||||
void mStopIfError(UINT8 iError);
|
||||
void CH57xNET_CreatTcpSocket(void);
|
||||
|
||||
void CH57xNET_CreatTcpSocket_2(UINT8* S);
|
||||
|
||||
UINT8 CH57xNET_LibInit(/*const*/ UINT8 *ip,/*const*/ UINT8 *gwip,/*const*/ UINT8 *mask,/*const*/ UINT8 *macaddr);
|
||||
void CH57xNET_HandleSockInt(UINT8 sockeid,UINT8 initstat);
|
||||
void CH57xNET_HandleGlobalInt(void);
|
||||
//void UDPSocketParamInit(UINT8 S,UINT8 *addr,UINT16 SourPort,UINT16 DesPort );
|
||||
//void UDPSocketParamInit1(UINT8 S,UINT8 *addr,UINT16 SourPort,UINT16 DesPort );
|
||||
//void UDPSocketParamInit2(UINT8* S,UINT8 *addr,UINT16 SourPort,UINT16 DesPort );
|
||||
void UDPSocketParamInit2(UINT8* S, UINT16 SourPort, AppCallBack cb);
|
||||
UINT8 DNS_SocketParamInit(UINT8* S,UINT8 *addr,UINT16 SourPort,UINT16 DesPort );
|
||||
|
||||
void Timer0Init(UINT32 time);
|
||||
UINT8 CH57xNET_DHCPCallBack(UINT8 status,void *arg);
|
||||
void SystemClock_UART1_init(void);
|
||||
void GetMacAddr(UINT8 *pMAC);
|
||||
|
||||
|
||||
UINT8 Ethernet_Send_Start(UINT8 socketid, UINT8* buff, UINT16 len, UINT8* ip, UINT16 port); //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><D7BD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
UINT8 DNS_Restart(void); //DNSʧ<53><CAA7>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DNS
|
||||
UINT8 UDP_Socket_Creat(void); //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>UDP<44><EFBFBD><D7BD>֣<EFBFBD><D6A3><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>NetWork_Task״̬<D7B4><CCAC><EFBFBD><EFBFBD>NET_SOCKET<45><54><EFBFBD><EFBFBD>
|
||||
|
||||
void NetWork_Parameter_Get(void);
|
||||
void NetWork_Task(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
uint16_t Data_Conver_To_Uint16(uint8_t *data);
|
||||
|
||||
void UDPSocket1_AppCallBack(struct _SCOK_INF * SocketInf,UINT32 ipaddr,UINT16 port,UINT8 *buff,UINT32 len);
|
||||
void UDPSocket2_AppCallBack(struct _SCOK_INF * SocketInf,UINT32 ipaddr,UINT16 port,UINT8 *buff,UINT32 len);
|
||||
void UDPSocket3_AppCallBack(struct _SCOK_INF * SocketInf,UINT32 ipaddr,UINT16 port,UINT8 *buff,UINT32 len);
|
||||
void UDPSocket4_AppCallBack(struct _SCOK_INF * SocketInf,UINT32 ipaddr,UINT16 port,UINT8 *buff,UINT32 len);
|
||||
#endif
|
||||
1
BasicCode/Drive/NET/test.txt
Normal file
1
BasicCode/Drive/NET/test.txt
Normal file
@@ -0,0 +1 @@
|
||||
123456789
|
||||
Reference in New Issue
Block a user