|
@@ -1,4 +1,5 @@
|
|
|
#include "TerminalSlave485.h"
|
|
|
+#include "TerminalSlave485_jt808.h"
|
|
|
#include "CollectMaster485.h"
|
|
|
#include "ScreenMaster485.h"
|
|
|
#include "KeySlave485.h"
|
|
@@ -13,6 +14,7 @@
|
|
|
#include "DS1302.h"
|
|
|
#include "leaf_ota.h"
|
|
|
#include "md5c.h"
|
|
|
+#include "cmsis_os.h"
|
|
|
|
|
|
/* zhuzl 20211220 增加为了内蒙定时上送*/
|
|
|
uint32_t circle_send;
|
|
@@ -494,10 +496,13 @@ uint32_t Read_update_sum =0;
|
|
|
//Data_frame data_frame,Tx_data_frame;
|
|
|
Data_frame_TypeDef data_frame,Tx_data_frame;
|
|
|
|
|
|
+int32_t WholeCarData(uint8_t *buf);
|
|
|
+int32_t StoreData(uint8_t *buf,int storeNo);
|
|
|
+
|
|
|
void Reboot_System()
|
|
|
{
|
|
|
__set_FAULTMASK(1);
|
|
|
-#if (WatchDogOn)
|
|
|
+#if (WATCH_DOG_ON)
|
|
|
while (1)
|
|
|
{
|
|
|
__nop();
|
|
@@ -512,6 +517,9 @@ int Flash_MD5_Check(uint32_t addr,uint32_t len)
|
|
|
unsigned char *md5_ptr=(unsigned char *)(StartMode_Addr+72);
|
|
|
unsigned int i,update_len;
|
|
|
MD5_CTX md5c;
|
|
|
+
|
|
|
+ UNUSED(md5_ptr);
|
|
|
+
|
|
|
MD5Init(&md5c);
|
|
|
for(i=0;i<len;)
|
|
|
{
|
|
@@ -717,14 +725,14 @@ uint8_t ERR_Arr[8]="error";
|
|
|
uint8_t upgrade_type=0;
|
|
|
|
|
|
extern void Set_Update_Down(void);
|
|
|
-int AsciitoHexF3(char *buf,int len)
|
|
|
+int AsciitoHexF3(uint8_t *buf,int len)
|
|
|
{
|
|
|
int i;
|
|
|
uint8_t Lrc_temp;
|
|
|
FileBuffArray[0]=':';
|
|
|
for(i=0;i<len;++i)
|
|
|
{
|
|
|
- sprintf(FileBuffArray+1+2*i,"%02X",buf[i]);
|
|
|
+ sprintf((char *)FileBuffArray+1+2*i,"%02X",buf[i]);
|
|
|
}
|
|
|
Lrc_temp = MODBUS_ASCII_GetLrc(FileBuffArray + 1, len * 2);
|
|
|
sprintf((char *)(&FileBuffArray[1 + len * 2]), "%02X", Lrc_temp);
|
|
@@ -795,7 +803,7 @@ int Process_CMD_IAP_Update(void)
|
|
|
|
|
|
if(crcIAP==crcTerminal)
|
|
|
{
|
|
|
- if(strstr(USART1_RX_BUF+9,"kzb")==NULL)
|
|
|
+ if(strstr((char *)USART1_RX_BUF+9,"kzb")==NULL)
|
|
|
{
|
|
|
upgrade_type=2;
|
|
|
return upgrade_type;
|
|
@@ -820,11 +828,11 @@ int Process_CMD_IAP_Update(void)
|
|
|
}
|
|
|
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_2);//看门狗sp706
|
|
|
|
|
|
- txLen = sprintf(USART1_TX_BUF,"file=%d\r\n",packIndexbak);
|
|
|
+ txLen = sprintf((char *)USART1_TX_BUF,"file=%d\r\n",packIndexbak);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- sprintf(USART1_TX_BUF,"%s",ERR_Arr);
|
|
|
+ sprintf((char *)USART1_TX_BUF,"%s",ERR_Arr);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -861,19 +869,19 @@ int Process_CMD_IAP_Update(void)
|
|
|
if((packIndexbak+1)==packIndex)
|
|
|
AddrToWrite += lenRx1-15;
|
|
|
packIndexbak=packIndex;
|
|
|
- txLen = sprintf(USART1_TX_BUF,"%s=%d\r\n",ACK_Arr,packIndex);
|
|
|
+ txLen = sprintf((char *)USART1_TX_BUF,"%s=%d\r\n",ACK_Arr,packIndex);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
DataReadFlash=*((__IO uint32_t*)(StartMode_Addr));
|
|
|
- txLen = sprintf(USART1_TX_BUF,"%s=%d\r\n",ERR_Arr,packIndex);
|
|
|
+ txLen = sprintf((char *)USART1_TX_BUF,"%s=%d\r\n",ERR_Arr,packIndex);
|
|
|
Erase_page(StartMode_Addr, 128);
|
|
|
WriteFlash2(StartMode_Addr,&DataReadFlash,1);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- txLen = sprintf(USART1_TX_BUF,"Rx Error lenRx1=%d crcIAP=%04X crcTerminal=%04X\r\n",lenRx1,crcIAP,crcTerminal);
|
|
|
+ txLen = sprintf((char *)USART1_TX_BUF,"Rx Error lenRx1=%d crcIAP=%04X crcTerminal=%04X\r\n",lenRx1,crcIAP,crcTerminal);
|
|
|
}
|
|
|
|
|
|
break;
|
|
@@ -891,7 +899,7 @@ int Process_CMD_IAP_Update(void)
|
|
|
{
|
|
|
return upgrade_type;
|
|
|
}
|
|
|
- txLen = sprintf(USART1_TX_BUF,"%s\r\n",ACK_Arr);
|
|
|
+ txLen = sprintf((char *)USART1_TX_BUF,"%s\r\n",ACK_Arr);
|
|
|
if(f3_flag)
|
|
|
txLen = AsciitoHexF3(USART1_TX_BUF, txLen);
|
|
|
TerminalSlave485_Send_Data(USART1_TX_BUF, txLen);
|
|
@@ -904,22 +912,22 @@ int Process_CMD_IAP_Update(void)
|
|
|
|
|
|
if(Flash_MD5_Check(ADDR_FLASH_SECTOR_7,all_len)==0)
|
|
|
{
|
|
|
- txLen = sprintf(USART1_TX_BUF,"md5 check=error\r\n");
|
|
|
+ txLen = sprintf((char *)USART1_TX_BUF,"md5 check=error\r\n");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if(strcmp(custurm_code,(const char*)Application_Buffer_Addr+5120))
|
|
|
{
|
|
|
- txLen = sprintf(USART1_TX_BUF,"Product=error\r\n");
|
|
|
+ txLen = sprintf((char *)USART1_TX_BUF,"Product=error\r\n");
|
|
|
}
|
|
|
else if((*(unsigned int*)(Application_Buffer_Addr+6144)!=Application_2_Addr) && (*(unsigned int*)(Application_Buffer_Addr+4)&0xffff0000 != Application_2_Addr))
|
|
|
{
|
|
|
- txLen = sprintf(USART1_TX_BUF,"Link addr=error\r\n");
|
|
|
+ txLen = sprintf((char *)USART1_TX_BUF,"Link addr=error\r\n");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
Set_Update_Down();//设定标志位 下次启动时进行程序拷贝
|
|
|
- txLen = sprintf(USART1_TX_BUF,"md5 check=ok\r\n");
|
|
|
+ txLen = sprintf((char *)USART1_TX_BUF,"md5 check=ok\r\n");
|
|
|
should_reboot=1;
|
|
|
}
|
|
|
}
|
|
@@ -927,7 +935,7 @@ int Process_CMD_IAP_Update(void)
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- txLen = sprintf(USART1_TX_BUF,"%s\r\n",ERR_Arr);
|
|
|
+ txLen = sprintf((char *)USART1_TX_BUF,"%s\r\n",ERR_Arr);
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
@@ -968,11 +976,11 @@ void Send_A1_Cmd(unsigned char scrAddr, unsigned char funCode, unsigned char scr
|
|
|
int i,j;
|
|
|
unsigned char temp_i = 0x00;
|
|
|
USART1_TX_BUF[send_pos++]=':';
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",0xA1);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",0xA1);
|
|
|
send_pos+=2;
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",0x04);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",0x04);
|
|
|
send_pos+=2;
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",120);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",120);
|
|
|
send_pos+=2;
|
|
|
if(StoreNumber>0)
|
|
|
{
|
|
@@ -1020,63 +1028,63 @@ void Send_A1_Cmd(unsigned char scrAddr, unsigned char funCode, unsigned char scr
|
|
|
emergy=0x80;
|
|
|
}
|
|
|
overflow_flag_bak=overflow_flag;
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",emergy);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",emergy);
|
|
|
send_pos+=2;
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",StoreNumber);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",StoreNumber);
|
|
|
send_pos+=2;
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",0x22);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",0x22);
|
|
|
send_pos+=2;
|
|
|
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",overflow_flag);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",overflow_flag);
|
|
|
send_pos+=2;
|
|
|
if((Config_info_all.ManHole_Big_info>0) && (Config_info_all.ManHole_Big_info<8))
|
|
|
{
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",0x72);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",0x72);
|
|
|
send_pos+=2;
|
|
|
for (i = 0; i < StoreNumber; i++)
|
|
|
{
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",Config_info_all.ManHole_Big_info/StoreNumber);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",Config_info_all.ManHole_Big_info/StoreNumber);
|
|
|
send_pos+=2;
|
|
|
for(j=0;j<Config_info_all.ManHole_Big_info/StoreNumber;++j)
|
|
|
{
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",Cang_IO_tbak[i][indexDaGai01+10*j]);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",Cang_IO_tbak[i][indexDaGai01+10*j]);
|
|
|
send_pos+=2;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if((Config_info_all.Dump_info>0) && (Config_info_all.Dump_info<8))
|
|
|
{
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",0x71);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",0x71);
|
|
|
send_pos+=2;
|
|
|
for (i = 0; i < StoreNumber; i++)
|
|
|
{
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",Config_info_all.Dump_info/StoreNumber);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",Config_info_all.Dump_info/StoreNumber);
|
|
|
send_pos+=2;
|
|
|
for(j=0;j<Config_info_all.Dump_info/StoreNumber;++j)
|
|
|
{
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",Cang_IO_tbak[i][indexXieYouFa01+10*j]);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",Cang_IO_tbak[i][indexXieYouFa01+10*j]);
|
|
|
send_pos+=2;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if((Config_info_all.HaiDiFa_info>0) && (Config_info_all.HaiDiFa_info<8))
|
|
|
{
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",0x64);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",0x64);
|
|
|
send_pos+=2;
|
|
|
for (i = 0; i < StoreNumber; i++)
|
|
|
{
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",Config_info_all.HaiDiFa_info/StoreNumber);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",Config_info_all.HaiDiFa_info/StoreNumber);
|
|
|
send_pos+=2;
|
|
|
for(j=0;j<Config_info_all.HaiDiFa_info/StoreNumber;++j)
|
|
|
{
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",Cang_IO_tbak[i][indexHaiDiFa01+10*j]);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",Cang_IO_tbak[i][indexHaiDiFa01+10*j]);
|
|
|
send_pos+=2;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
while (send_pos<(120*2+7))
|
|
|
{
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",0);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",0);
|
|
|
send_pos+=2;
|
|
|
}
|
|
|
//**********************************************
|
|
@@ -1086,7 +1094,7 @@ void Send_A1_Cmd(unsigned char scrAddr, unsigned char funCode, unsigned char scr
|
|
|
scrLength = 0x3C;
|
|
|
}
|
|
|
temp_i = scrLength<<1;
|
|
|
- //sprintf(USART1_TX_BUF+5,"%02X",temp_i);
|
|
|
+ //sprintf((char *)USART1_TX_BUF+5,"%02X",temp_i);
|
|
|
USART1_TX_BUF[5] = (temp_i>>4) + '0';
|
|
|
if('9' < USART1_TX_BUF[5])
|
|
|
{
|
|
@@ -1101,7 +1109,7 @@ void Send_A1_Cmd(unsigned char scrAddr, unsigned char funCode, unsigned char scr
|
|
|
temp_i <<= 1;
|
|
|
|
|
|
Lrc_temp = MODBUS_ASCII_GetLrc(USART1_TX_BUF+1, temp_i + 6);
|
|
|
- sprintf(USART1_TX_BUF + temp_i + 7, "%02X", Lrc_temp);
|
|
|
+ sprintf((char *)USART1_TX_BUF + temp_i + 7, "%02X", Lrc_temp);
|
|
|
USART1_TX_BUF[temp_i + 9] = 0x0D;
|
|
|
USART1_TX_BUF[temp_i + 10] = 0x0A;
|
|
|
TerminalSlave485_Send_Data(USART1_TX_BUF, temp_i + 11);
|
|
@@ -1109,7 +1117,7 @@ void Send_A1_Cmd(unsigned char scrAddr, unsigned char funCode, unsigned char scr
|
|
|
//***********************************************
|
|
|
/*
|
|
|
Lrc_temp = MODBUS_ASCII_GetLrc(USART1_TX_BUF+1,send_pos-1);
|
|
|
- sprintf(USART1_TX_BUF+send_pos,"%02X",Lrc_temp);
|
|
|
+ sprintf((char *)USART1_TX_BUF+send_pos,"%02X",Lrc_temp);
|
|
|
send_pos += 2;
|
|
|
USART1_TX_BUF[send_pos++] =0x0D;
|
|
|
USART1_TX_BUF[send_pos++] = 0x0A;
|
|
@@ -1117,271 +1125,6 @@ void Send_A1_Cmd(unsigned char scrAddr, unsigned char funCode, unsigned char scr
|
|
|
*/
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- ***************************************
|
|
|
- * 构建A1命令数据 -- hex制式
|
|
|
- * 输入:
|
|
|
- * pBuf-构建数据的存放首地址
|
|
|
- * pEmergy,如果是数据有变动,表示紧急上报,将标记存于此地址
|
|
|
- * flowID, 流水id值
|
|
|
- * 返回: 构建数据的字节总数
|
|
|
- ***************************************
|
|
|
- */
|
|
|
-int BuildA1Cmd(uint8_t *pBuf, uint32_t flowID, uint8_t *pEmergencyflag)
|
|
|
-{
|
|
|
- int send_pos=0;
|
|
|
- unsigned char emergencyflag=0;
|
|
|
- unsigned char Lrc_temp;
|
|
|
- unsigned char overflow_flag=0;
|
|
|
- int i,j;
|
|
|
- unsigned char temp_i = 0x00;
|
|
|
-
|
|
|
- pBuf[send_pos++] = 0xA1;
|
|
|
- pBuf[send_pos++] = 120;
|
|
|
- if(StoreNumber>0)
|
|
|
- {
|
|
|
- if(memcmp(Cang_IO_tbak[0],Cang01_IO,64))
|
|
|
- {
|
|
|
- emergencyflag=0x80;
|
|
|
- }
|
|
|
- memcpy(Cang_IO_tbak[0],Cang01_IO,64);
|
|
|
- }
|
|
|
- if(StoreNumber>1)
|
|
|
- {
|
|
|
- if(memcmp(Cang_IO_tbak[1],Cang02_IO,64))
|
|
|
- {
|
|
|
- emergencyflag=0x80;
|
|
|
- }
|
|
|
- memcpy(Cang_IO_tbak[1],Cang02_IO,64);
|
|
|
- }
|
|
|
- if(StoreNumber>2)
|
|
|
- {
|
|
|
- if(memcmp(Cang_IO_tbak[2],Cang03_IO,64))
|
|
|
- {
|
|
|
- emergencyflag=0x80;
|
|
|
- }
|
|
|
- memcpy(Cang_IO_tbak[2],Cang03_IO,64);
|
|
|
- }
|
|
|
- if(StoreNumber>3)
|
|
|
- {
|
|
|
- if(memcmp(Cang_IO_tbak[3],Cang04_IO,64))
|
|
|
- {
|
|
|
- emergencyflag=0x80;
|
|
|
- }
|
|
|
- memcpy(Cang_IO_tbak[3],Cang04_IO,64);
|
|
|
- }
|
|
|
- if((overflow_cnt==0) && (overflow_cnt==overflow_cnt_bak))
|
|
|
- {
|
|
|
- overflow_flag=0;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- overflow_flag=1;
|
|
|
- }
|
|
|
- overflow_cnt_bak=overflow_cnt;
|
|
|
- if(overflow_flag_bak!=overflow_flag)
|
|
|
- {
|
|
|
- emergencyflag=0x80;
|
|
|
- }
|
|
|
- overflow_flag_bak=overflow_flag;
|
|
|
-
|
|
|
- pBuf[send_pos++] = emergencyflag;
|
|
|
- pBuf[send_pos++] = StoreNumber;
|
|
|
- pBuf[send_pos++] = 0x22;
|
|
|
- pBuf[send_pos++] = overflow_flag;
|
|
|
-
|
|
|
- if((Config_info_all.ManHole_Big_info>0) && (Config_info_all.ManHole_Big_info<8))
|
|
|
- {
|
|
|
- pBuf[send_pos++] = 0x72;
|
|
|
- for (i = 0; i < StoreNumber; i++)
|
|
|
- {
|
|
|
- pBuf[send_pos++] = Config_info_all.ManHole_Big_info/StoreNumber;
|
|
|
- for(j=0;j<Config_info_all.ManHole_Big_info/StoreNumber;++j)
|
|
|
- {
|
|
|
- pBuf[send_pos++] = Cang_IO_tbak[i][indexDaGai01+10*j];
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if((Config_info_all.Dump_info>0) && (Config_info_all.Dump_info<8))
|
|
|
- {
|
|
|
- pBuf[send_pos++] = 0x71;
|
|
|
- for (i = 0; i < StoreNumber; i++)
|
|
|
- {
|
|
|
- pBuf[send_pos++] = Config_info_all.Dump_info/StoreNumber;
|
|
|
- for(j=0;j<Config_info_all.Dump_info/StoreNumber;++j)
|
|
|
- {
|
|
|
- pBuf[send_pos++] = Cang_IO_tbak[i][indexXieYouFa01+10*j];
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if((Config_info_all.HaiDiFa_info>0) && (Config_info_all.HaiDiFa_info<8))
|
|
|
- {
|
|
|
- pBuf[send_pos++] = 0x64;
|
|
|
- for (i = 0; i < StoreNumber; i++)
|
|
|
- {
|
|
|
- pBuf[send_pos++] = Config_info_all.HaiDiFa_info/StoreNumber;
|
|
|
- for(j=0;j<Config_info_all.HaiDiFa_info/StoreNumber;++j)
|
|
|
- {
|
|
|
- pBuf[send_pos++] = Cang_IO_tbak[i][indexHaiDiFa01+10*j];
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 2022-8-25, 新增加的子命令
|
|
|
- // 01, 流水号
|
|
|
- // 02, 时间戳
|
|
|
- do {
|
|
|
- pBuf[send_pos++] = 0x01;
|
|
|
- pBuf[send_pos++] = (flowID>>24) & 0xff;
|
|
|
- pBuf[send_pos++] = (flowID>>16) & 0xff;
|
|
|
- pBuf[send_pos++] = (flowID>>8) & 0xff;
|
|
|
- pBuf[send_pos++] = (flowID>>0) & 0xff;
|
|
|
- }while(0);
|
|
|
-
|
|
|
- send_pos += BuildTimeCmd(pBuf+send_pos);
|
|
|
-
|
|
|
- while (send_pos<(120+2))
|
|
|
- {
|
|
|
- pBuf[send_pos++] = 0;
|
|
|
- }
|
|
|
-
|
|
|
- if (pEmergencyflag) *pEmergencyflag = emergencyflag;
|
|
|
- return send_pos;
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- ***************************************
|
|
|
- * 构建20命令数据 时间戳 -- hex制式
|
|
|
- * 输入:pBuf-构建数据的存放首地址
|
|
|
- * 返回: 构建数据的字节总数
|
|
|
- ***************************************
|
|
|
- */
|
|
|
-extern SDateTime m_datetime;
|
|
|
-int BuildTimeCmd(uint8_t *pBuf)
|
|
|
-{
|
|
|
- int send_pos=0;
|
|
|
-
|
|
|
- pBuf[send_pos++] = 0x02;
|
|
|
-
|
|
|
- pBuf[send_pos++] = HEXtoBCD(m_datetime.year);
|
|
|
- pBuf[send_pos++] = HEXtoBCD(m_datetime.month);
|
|
|
- pBuf[send_pos++] = HEXtoBCD(m_datetime.day);
|
|
|
- pBuf[send_pos++] = HEXtoBCD(m_datetime.hour);
|
|
|
- pBuf[send_pos++] = HEXtoBCD(m_datetime.min);
|
|
|
- pBuf[send_pos++] = HEXtoBCD(m_datetime.sec);
|
|
|
-
|
|
|
- return send_pos;
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- ***************************************
|
|
|
- * 构建40命令数据 电子铅封 -- hex制式
|
|
|
- * 输入:pBuf-构建数据的存放首地址
|
|
|
- * 返回: 构建数据的字节总数
|
|
|
- ***************************************
|
|
|
- */
|
|
|
-int BuildSealTxCmd(uint8_t *pBuf, uint8_t *pEmergencyflag) // 40命令
|
|
|
-{
|
|
|
- Return_data *ret;
|
|
|
- int n = 0;
|
|
|
- uint8_t emergencyflag = 0;
|
|
|
-
|
|
|
- *pBuf++ = 0x40;
|
|
|
- ret = Seal_Tx_Readvalue(0,0);
|
|
|
- *pBuf++ = ret->length/2; // 调用返回的数据是asii制式的,所以真实的hex数是其一半
|
|
|
-
|
|
|
- for(n=0; n < ret->length/2 && n < 100; n++) {
|
|
|
- pBuf[n] = MODBUS_ASCII_AsciiToHex(ret->data + 2*n);
|
|
|
- }
|
|
|
-
|
|
|
- emergencyflag = pBuf[0];
|
|
|
- if(pEmergencyflag) *pEmergencyflag = emergencyflag;
|
|
|
- return n+2;
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- ***************************************
|
|
|
- * 构建91命令数据 IO状态 -- hex制式
|
|
|
- * 输入:pBuf-构建数据的存放首地址
|
|
|
- * 返回: 构建数据的字节总数
|
|
|
- ***************************************
|
|
|
- */
|
|
|
-int Build91Cmd(uint8_t *pBuf, uint8_t *pEmergencyflag)
|
|
|
-{
|
|
|
- Return_data *ret;
|
|
|
- int n = 0;
|
|
|
- uint8_t emergencyflag = 0;
|
|
|
-
|
|
|
- *pBuf++ = 0x91;
|
|
|
- ret = IO_Tx_Readvalue(0,0);
|
|
|
- *pBuf++ = ret->length/2; // 调用返回的数据是asii制式的,所以真实的hex数是其一半
|
|
|
-
|
|
|
- for(n=0; n < ret->length/2 && n < 100; n++) {
|
|
|
- pBuf[n] = MODBUS_ASCII_AsciiToHex(ret->data + 2*n);
|
|
|
- }
|
|
|
-
|
|
|
- emergencyflag = pBuf[0];
|
|
|
- if(pEmergencyflag) *pEmergencyflag = emergencyflag;
|
|
|
- return n+2;
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- ***************************************
|
|
|
- * xy,新透传,41串口透传,模拟F3轮询传感器
|
|
|
- * 按照周期1构建数据,按照周期2发送数据
|
|
|
- * 输入:无
|
|
|
- * 返回: 无
|
|
|
- * 发送区的格式为:
|
|
|
- * 数据负载类别,1Byte
|
|
|
- * 传感器命令数据包数,1Byte
|
|
|
- * 具体的各个命令数据包,NByte
|
|
|
- ***************************************
|
|
|
- */
|
|
|
-void DoInternalSensorScanAndPost()
|
|
|
-{
|
|
|
- int xlen=0, ylen=0;
|
|
|
- uint8_t emergencyflag=0;
|
|
|
- uint8_t *pSendBuf = USART1_TX_BUF;
|
|
|
- static int step = 0;
|
|
|
- static int nstep = 0;
|
|
|
- static uint32_t flowID = 0;
|
|
|
-
|
|
|
- if(++step % Pass41SensorScanParam.step == 0){
|
|
|
- for(int n=0; n<Pass41SensorScanParam.cmd_num; n++) {
|
|
|
- switch (Pass41SensorScanParam.cmd_arr[n]){
|
|
|
- case 0x40:
|
|
|
- xlen = BuildSealTxCmd(pSendBuf, emergencyflag?NULL:&emergencyflag);
|
|
|
- pSendBuf += xlen;
|
|
|
- ylen += xlen;
|
|
|
- break;
|
|
|
- case 0x91:
|
|
|
- xlen = Build91Cmd(pSendBuf, emergencyflag?NULL:&emergencyflag);
|
|
|
- pSendBuf += xlen;
|
|
|
- ylen += xlen;
|
|
|
- break;
|
|
|
- case 0xA1:
|
|
|
- xlen = BuildA1Cmd(pSendBuf, flowID, emergencyflag?NULL:&emergencyflag);
|
|
|
- pSendBuf += xlen;
|
|
|
- ylen += xlen;
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if(emergencyflag) {
|
|
|
- TerminalSlave485_Send_Data(USART1_TX_BUF,ylen);
|
|
|
- nstep = 0;
|
|
|
- emergencyflag = 0;
|
|
|
- flowID++;
|
|
|
- } else {
|
|
|
- if(++nstep % Pass41SensorScanParam.nstep == 0) {
|
|
|
- TerminalSlave485_Send_Data(USART1_TX_BUF,ylen);
|
|
|
- flowID++;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
|
|
|
#include "leaf_ota.h"
|
|
|
//uint32_t data_count=0;
|
|
@@ -1389,6 +1132,9 @@ void DoInternalSensorScanAndPost()
|
|
|
void Data_analysis(void)
|
|
|
{
|
|
|
uint32_t startBytes=0x00000000,tmpU32,update_flag;
|
|
|
+
|
|
|
+ UNUSED(startBytes);
|
|
|
+
|
|
|
if(usart1_rx_flag==1)//接收完成
|
|
|
{
|
|
|
//data_count++;
|
|
@@ -2554,6 +2300,8 @@ void Data_analysis(void)
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -2646,6 +2394,8 @@ int32_t StoreData(uint8_t *buf,int storeNo)
|
|
|
&T2C_ALL_Sensor_Data05,&T2C_ALL_Sensor_Data06,
|
|
|
&T2C_ALL_Sensor_Data07,&T2C_ALL_Sensor_Data08};
|
|
|
|
|
|
+ UNUSED(ptr);
|
|
|
+
|
|
|
if(storeNo>StoreNumber)
|
|
|
return ret;
|
|
|
buf[ret++] = 0xA5;
|
|
@@ -2716,7 +2466,7 @@ void FormatWholeCarData(void)
|
|
|
pT2C_ALL_Sensor_Data0x9b=&T2C_ALL_Sensor_WholeCar01;
|
|
|
|
|
|
memcpy(&USART1_TX_BUF[1],&USART1_RX_BUF[1],4);
|
|
|
- sprintf((char*)USART1_TX_BUF+5,"%02X",0x4a);//(16+4*33)/1
|
|
|
+ sprintf((char *)(char*)USART1_TX_BUF+5,"%02X",0x4a);//(16+4*33)/1
|
|
|
|
|
|
memcpy(&USART1_TX_BUF[1+6],pT2C_ALL_Sensor_Data0x9b->FrameHead,16);
|
|
|
|
|
@@ -2987,7 +2737,7 @@ sT2C_ALL_Sensor_Data_Each_Cang* pT2C_ALL_Sensor_Data0x93;
|
|
|
|
|
|
|
|
|
memcpy(&USART1_TX_BUF[1],&USART1_RX_BUF[1],4);
|
|
|
- sprintf((char*)USART1_TX_BUF+5,"%02X",0x4a);//(16+4*33)/1
|
|
|
+ sprintf((char *)(char*)USART1_TX_BUF+5,"%02X",0x4a);//(16+4*33)/1
|
|
|
|
|
|
|
|
|
memcpy(&USART1_TX_BUF[1+6],pT2C_ALL_Sensor_Data0x93->FrameHead,16);
|
|
@@ -3039,8 +2789,8 @@ sT2C_ALL_Sensor_Data_Each_Cang* pT2C_ALL_Sensor_Data0x93;
|
|
|
Lrc_temp = MODBUS_ASCII_GetLrc(USART1_TX_BUF+1,154);//154
|
|
|
|
|
|
//USART1_TX_BUF[149+6]=Lrc_temp;
|
|
|
- //sprintf(&USART1_TX_BUF[149+6],"%02X",Lrc_temp);
|
|
|
- sprintf((char*)USART1_TX_BUF+149+6,"%02X",Lrc_temp);
|
|
|
+ //sprintf((char *)&USART1_TX_BUF[149+6],"%02X",Lrc_temp);
|
|
|
+ sprintf((char *)(char*)USART1_TX_BUF+149+6,"%02X",Lrc_temp);
|
|
|
USART1_TX_BUF[LenthOf_Reply0x93-2]=0x0d;
|
|
|
USART1_TX_BUF[LenthOf_Reply0x93-1]=0x0a;
|
|
|
}
|
|
@@ -3806,7 +3556,7 @@ Return_data * IO_Tx_Readvalue(uint16_t ID,uint16_t length)//
|
|
|
for(i=0;i<32;i++)
|
|
|
{//0x91查询阀门状态指令 将二进制数据转换为ASCII
|
|
|
|
|
|
- sprintf((char*)(temp_buf_Tx_Read+8+i*2),"%02X",Array_Of_Valve[i]);
|
|
|
+ sprintf((char *)(char*)(temp_buf_Tx_Read+8+i*2),"%02X",Array_Of_Valve[i]);
|
|
|
|
|
|
}
|
|
|
#endif
|
|
@@ -3837,12 +3587,16 @@ Return_data * IO_Tx_Readvalue(uint16_t ID,uint16_t length)//
|
|
|
//*******************************************************************************/
|
|
|
static uint8_t test_send_cnt = 0;//重要数据连续上报5次
|
|
|
static uint8_t Emergencyflag =0 ;//重要数据发送标志
|
|
|
+uint8_t temp_buf[137]={0};//大小+1 136
|
|
|
Return_data * Seal_Tx_Readvalue(uint16_t ID,uint16_t length)//读取电子铅封的应答 0:默认 1:解封 2 :施封 3:破封
|
|
|
{
|
|
|
- uint8_t temp_buf[137]={0};//大小+1 136
|
|
|
+
|
|
|
static Return_data temp;
|
|
|
uint8_t i,j=0;
|
|
|
uint8_t Byte_high,Byte_low;
|
|
|
+
|
|
|
+ memset(temp_buf,0x00,sizeof(temp_buf));
|
|
|
+
|
|
|
if(Sealing_Data.Sealing_up_datetype != 1)//常规数据上报
|
|
|
{
|
|
|
Emergencyflag = 0;
|
|
@@ -5050,10 +4804,10 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
|
|
|
for(i000=0;i000<rx2_len;i000++)
|
|
|
{
|
|
|
- sprintf((char*)&USART1_TX_BUF[1+i000*2],"%02X",USART2_RX_BUF[i000]);
|
|
|
+ sprintf((char *)(char*)&USART1_TX_BUF[1+i000*2],"%02X",USART2_RX_BUF[i000]);
|
|
|
}
|
|
|
Lrc_temp = MODBUS_ASCII_GetLrc(USART1_TX_BUF+1,rx2_len*2);
|
|
|
- sprintf((char*)(&USART1_TX_BUF[rx2_len*2+1]),"%02X",Lrc_temp);
|
|
|
+ sprintf((char *)(char*)(&USART1_TX_BUF[rx2_len*2+1]),"%02X",Lrc_temp);
|
|
|
USART1_TX_BUF[rx2_len*2+3]=0x0d;
|
|
|
USART1_TX_BUF[rx2_len*2+4]=0x0a;
|
|
|
TerminalSlave485_Send_Data(USART1_TX_BUF,rx2_len*2+5);
|
|
@@ -5070,7 +4824,7 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
//memset(&USART1_TX_BUF[33],'A',sizeof(USART1_TX_BUF)-33);
|
|
|
|
|
|
//MODBUS_S8_to_ASCII(Lrc_temp,USART1_TX_BUF+Tx_data_frame.Frame_length+7);//56
|
|
|
- //sprintf((char*)(&USART1_TX_BUF[128]),"%02X",Lrc_temp);
|
|
|
+ //sprintf((char *)(char*)(&USART1_TX_BUF[128]),"%02X",Lrc_temp);
|
|
|
// USART1_TX_BUF[129] =0x0D;
|
|
|
// USART1_TX_BUF[130] = 0x0A;
|
|
|
TerminalSlave485_Send_Data(USART1_TX_BUF,128+3);
|
|
@@ -5213,9 +4967,9 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
|
|
|
memcpy(USART1_TX_BUF,temp_dataFromUsart1,16*2+1);//前16字节原样返回,共33字符 1表示起始字符英文下的冒号,hex为0x3a
|
|
|
memset(&USART1_TX_BUF[33],'=',sizeof(USART1_TX_BUF)-33);
|
|
|
- sprintf((char*)(&USART1_TX_BUF[33]),"System will reboot... %5d",cmd39Cnt);
|
|
|
+ sprintf((char *)(char*)(&USART1_TX_BUF[33]),"System will reboot... %5d",cmd39Cnt);
|
|
|
Lrc_temp = MODBUS_ASCII_GetLrc(USART1_TX_BUF+1,64);
|
|
|
- sprintf((char*)(&USART1_TX_BUF[65]),"%02X",Lrc_temp);
|
|
|
+ sprintf((char *)(char*)(&USART1_TX_BUF[65]),"%02X",Lrc_temp);
|
|
|
USART1_TX_BUF[67] =0x0D;
|
|
|
USART1_TX_BUF[68] = 0x0A;
|
|
|
TerminalSlave485_Send_Data(USART1_TX_BUF,69);
|
|
@@ -5246,10 +5000,10 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
case ADDR_VersionOf_Software://
|
|
|
//FM25L16B_Read_N_Bytes(ADDR_VersionOf_Software,T2C_RemoteCaliDat001.PayLoadData,32);
|
|
|
//memset(&USART1_TX_BUF[33],'=',sizeof(USART1_TX_BUF)-33);
|
|
|
- //sprintf((char*)(&USART1_TX_BUF[33]),"%s\r\n",T2C_RemoteCaliDat001.PayLoadData);
|
|
|
+ //sprintf((char *)(char*)(&USART1_TX_BUF[33]),"%s\r\n",T2C_RemoteCaliDat001.PayLoadData);
|
|
|
// for(i000=0;i000<strlen(Version_software);++i000)
|
|
|
// {
|
|
|
- // sprintf(USART1_TX_BUF+33+2*i000,"%02X",Version_software[i000]);
|
|
|
+ // sprintf((char *)USART1_TX_BUF+33+2*i000,"%02X",Version_software[i000]);
|
|
|
// }
|
|
|
//strcpy(T2C_RemoteCaliDat001.PayLoadData,Version_software);
|
|
|
//T2C_RemoteCaliDat001.NumberOfRegs = strlen(Version_software);
|
|
@@ -5333,11 +5087,11 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
case ADDR_Sensor_Scan_Param:
|
|
|
FM25L16B_Read_N_Bytes(ADDR_Sensor_Scan_Param,T2C_RemoteCaliDat001.PayLoadData,16);
|
|
|
T2C_RemoteCaliDat001.NumberOfRegs = 16;
|
|
|
- break;
|
|
|
+ break;
|
|
|
default:
|
|
|
|
|
|
//memset(&USART1_TX_BUF[33], '=', sizeof(USART1_TX_BUF) - 33);
|
|
|
- T2C_RemoteCaliDat001.NumberOfRegs=sprintf(T2C_RemoteCaliDat001.PayLoadData, "Read Address Error! %08X\r\n", T2C_RemoteCaliDat001.AddrRegStart);
|
|
|
+ T2C_RemoteCaliDat001.NumberOfRegs=sprintf((char *)T2C_RemoteCaliDat001.PayLoadData, "Read Address Error! %08X\r\n", T2C_RemoteCaliDat001.AddrRegStart);
|
|
|
break;
|
|
|
} //读取寄存器指令
|
|
|
|
|
@@ -5351,9 +5105,9 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
case ADDR_Restart_ContBoard: //控制板复位指令
|
|
|
memcpy(USART1_TX_BUF,temp_dataFromUsart1,16*2+1);//前16字节原样返回,共33字符 1表示起始字符英文下的冒号,hex为0x3a
|
|
|
memset(&USART1_TX_BUF[33],'=',sizeof(USART1_TX_BUF)-33);
|
|
|
- sprintf((char*)(&USART1_TX_BUF[33]),"System will reboot... %5d",cmd39Cnt);
|
|
|
+ sprintf((char *)(char*)(&USART1_TX_BUF[33]),"System will reboot... %5d",cmd39Cnt);
|
|
|
Lrc_temp = MODBUS_ASCII_GetLrc(USART1_TX_BUF+1,64);
|
|
|
- sprintf((char*)(&USART1_TX_BUF[65]),"%02X",Lrc_temp);
|
|
|
+ sprintf((char *)(char*)(&USART1_TX_BUF[65]),"%02X",Lrc_temp);
|
|
|
USART1_TX_BUF[67] =0x0D;
|
|
|
USART1_TX_BUF[68] = 0x0A;
|
|
|
TerminalSlave485_Send_Data(USART1_TX_BUF,69);
|
|
@@ -5368,7 +5122,7 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
FM25L16B_WriteByte(ADDR_Extended_ContBoard+2,T2C_RemoteCaliDat001.PayLoadData[2]);
|
|
|
FM25L16B_WriteByte(ADDR_Extended_ContBoard+3,T2C_RemoteCaliDat001.PayLoadData[3]);
|
|
|
/*memset(&USART1_TX_BUF[33],'=',sizeof(USART1_TX_BUF)-33);
|
|
|
- sprintf((char*)(&USART1_TX_BUF[33]),"%02X%02X%02X%02X",T2C_RemoteCaliDat001.PayLoadData[0],
|
|
|
+ sprintf((char *)(char*)(&USART1_TX_BUF[33]),"%02X%02X%02X%02X",T2C_RemoteCaliDat001.PayLoadData[0],
|
|
|
T2C_RemoteCaliDat001.PayLoadData[1],T2C_RemoteCaliDat001.PayLoadData[2],T2C_RemoteCaliDat001.PayLoadData[3]);
|
|
|
*/
|
|
|
break;
|
|
@@ -5383,7 +5137,7 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
|
|
|
/*for(i001=0;i001<32;i001++)
|
|
|
{
|
|
|
- sprintf((char*)(&USART1_TX_BUF[33+i001]),"%02X",T2C_RemoteCaliDat001.PayLoadData[i001]);
|
|
|
+ sprintf((char *)(char*)(&USART1_TX_BUF[33+i001]),"%02X",T2C_RemoteCaliDat001.PayLoadData[i001]);
|
|
|
|
|
|
}*/
|
|
|
|
|
@@ -5406,7 +5160,7 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
FM25L16B_Write_N_Bytes(ADDR_DataSource_LiquidoMeter,T2C_RemoteCaliDat001.PayLoadData,4);
|
|
|
for(i001=0;i001<4;i001++)
|
|
|
{
|
|
|
- sprintf((char*)(&USART1_TX_BUF[33+i001]),"%02X",T2C_RemoteCaliDat001.PayLoadData[i001]);
|
|
|
+ sprintf((char *)(char*)(&USART1_TX_BUF[33+i001]),"%02X",T2C_RemoteCaliDat001.PayLoadData[i001]);
|
|
|
|
|
|
}
|
|
|
|
|
@@ -5426,7 +5180,7 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
FM25L16B_Write_N_Bytes(ADDR_DataSource_ElecSeal,T2C_RemoteCaliDat001.PayLoadData,4);
|
|
|
/*for(i001=0;i001<4;i001++)
|
|
|
{
|
|
|
- sprintf((char*)(&USART1_TX_BUF[33+i001]),"%02X",T2C_RemoteCaliDat001.PayLoadData[i001]);
|
|
|
+ sprintf((char *)(char*)(&USART1_TX_BUF[33+i001]),"%02X",T2C_RemoteCaliDat001.PayLoadData[i001]);
|
|
|
|
|
|
} */
|
|
|
break;
|
|
@@ -5436,7 +5190,7 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
FM25L16B_Write_N_Bytes(ADDR_V20_Point,T2C_RemoteCaliDat001.PayLoadData,16);
|
|
|
/*for(i001=0;i001<16;i001++)
|
|
|
{
|
|
|
- sprintf((char*)(&USART1_TX_BUF[33+i001]),"%02X",T2C_RemoteCaliDat001.PayLoadData[i001]);
|
|
|
+ sprintf((char *)(char*)(&USART1_TX_BUF[33+i001]),"%02X",T2C_RemoteCaliDat001.PayLoadData[i001]);
|
|
|
|
|
|
}*/
|
|
|
break;
|
|
@@ -5447,7 +5201,7 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
|
|
|
case ADDR_CarPlate_Number: //设定车牌号
|
|
|
memset(bufText01Password,0,sizeof(bufText01Password));
|
|
|
- sprintf((char*)bufText01Password,"车牌号:%s AB\r\n",T2C_RemoteCaliDat001.PayLoadData);
|
|
|
+ sprintf((char *)(char*)bufText01Password,"车牌号:%s AB\r\n",T2C_RemoteCaliDat001.PayLoadData);
|
|
|
FunDebugCode=DebugFun_Show_Terminal;
|
|
|
memcpy(CarLicensePlate,T2C_RemoteCaliDat001.PayLoadData,16);//拷贝16字节的车牌号,格式如:新M56454
|
|
|
//WriteCarLicensePlate();//保存车牌号
|
|
@@ -5455,7 +5209,7 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
|
|
|
/*for(i001=0;i001<8;i001++)
|
|
|
{
|
|
|
- sprintf((char*)(&USART1_TX_BUF[33+i001]),"%02X",T2C_RemoteCaliDat001.PayLoadData[i001]);
|
|
|
+ sprintf((char *)(char*)(&USART1_TX_BUF[33+i001]),"%02X",T2C_RemoteCaliDat001.PayLoadData[i001]);
|
|
|
|
|
|
} */
|
|
|
break;
|
|
@@ -5561,7 +5315,7 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
//FM25L16B_Write_N_Bytes(ADDR_ManHoLe_Number,T2C_RemoteCaliDat001.PayLoadData,32);
|
|
|
/*for(i001=0;i001<64;i001++)
|
|
|
{
|
|
|
- sprintf((char*)(&USART1_TX_BUF[33+i001]),"%02X",T2C_RemoteCaliDat001.PayLoadData[i001]);
|
|
|
+ sprintf((char *)(char*)(&USART1_TX_BUF[33+i001]),"%02X",T2C_RemoteCaliDat001.PayLoadData[i001]);
|
|
|
|
|
|
} */
|
|
|
FM25L16B_Read_N_Bytes(ADDR_StoreNumber,T2C_RemoteCaliDat001.PayLoadData,1);
|
|
@@ -5643,7 +5397,7 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
|
|
|
case ADDR_Sensor_Scan_Param:
|
|
|
FM25L16B_Write_N_Bytes(ADDR_Sensor_Scan_Param,T2C_RemoteCaliDat001.PayLoadData,16);
|
|
|
- InitSensorScanParam();
|
|
|
+ jt808_InitSensorScanParam();
|
|
|
T2C_RemoteCaliDat001.NumberOfRegs = 16;
|
|
|
break;
|
|
|
|
|
@@ -5677,11 +5431,18 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
memcpy(&time_Set_Dwin[8],T2C_RemoteCaliDat001.PayLoadData,6);
|
|
|
ScreenMaster485_Send_Data(time_Set_Dwin,14);
|
|
|
//memcpy(TimeBuf+1,T2C_RemoteCaliDat001.PayLoadData,6);
|
|
|
+#if 1
|
|
|
+ uint8_t times_buf[32];
|
|
|
+ memset(times_buf, 0x00,sizeof(times_buf));
|
|
|
+ memcpy(times_buf+1,T2C_RemoteCaliDat001.PayLoadData,6);
|
|
|
+ ds1302_Write_Time(times_buf);
|
|
|
+#else
|
|
|
ds1302_Write_Time(T2C_RemoteCaliDat001.PayLoadData-1);
|
|
|
+#endif
|
|
|
ds1302_SynTime(&m_datetime);
|
|
|
/*for(i001=0;i001<6;i001++)
|
|
|
{
|
|
|
- sprintf((char*)(&USART1_TX_BUF[33+i001]),"%02X",T2C_RemoteCaliDat001.PayLoadData[i001]);
|
|
|
+ sprintf((char *)(char*)(&USART1_TX_BUF[33+i001]),"%02X",T2C_RemoteCaliDat001.PayLoadData[i001]);
|
|
|
|
|
|
}*/
|
|
|
T2C_RemoteCaliDat001.NumberOfRegs = 6;
|
|
@@ -5699,24 +5460,24 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
case ADDR_Unique_ID_ContBoard://
|
|
|
FM25L16B_Write_N_Bytes(ADDR_Unique_ID_ContBoard,T2C_RemoteCaliDat001.PayLoadData,16);
|
|
|
FM25L16B_Read_N_Bytes(ADDR_Unique_ID_ContBoard,T2C_RemoteCaliDat001.PayLoadData,16);
|
|
|
- T2C_RemoteCaliDat001.NumberOfRegs=sprintf(T2C_RemoteCaliDat001.PayLoadData,"%s",T2C_RemoteCaliDat001.PayLoadData);
|
|
|
+ T2C_RemoteCaliDat001.NumberOfRegs=sprintf((char *)T2C_RemoteCaliDat001.PayLoadData,"%s",T2C_RemoteCaliDat001.PayLoadData);
|
|
|
break;
|
|
|
/*case ADDR_VersionOf_Software://
|
|
|
FM25L16B_Write_N_Bytes(ADDR_VersionOf_Software,T2C_RemoteCaliDat001.PayLoadData,32);
|
|
|
FM25L16B_Read_N_Bytes(ADDR_VersionOf_Software,T2C_RemoteCaliDat001.PayLoadData,32);
|
|
|
- T2C_RemoteCaliDat001.NumberOfRegs=sprintf(T2C_RemoteCaliDat001.PayLoadData,"%s",T2C_RemoteCaliDat001.PayLoadData);
|
|
|
+ T2C_RemoteCaliDat001.NumberOfRegs=sprintf((char *)T2C_RemoteCaliDat001.PayLoadData,"%s",T2C_RemoteCaliDat001.PayLoadData);
|
|
|
break;*/
|
|
|
|
|
|
case ADDR_VersionOf_Hardware://
|
|
|
FM25L16B_Write_N_Bytes(ADDR_VersionOf_Hardware,T2C_RemoteCaliDat001.PayLoadData,32);
|
|
|
FM25L16B_Read_N_Bytes(ADDR_VersionOf_Hardware,T2C_RemoteCaliDat001.PayLoadData,32);
|
|
|
- T2C_RemoteCaliDat001.NumberOfRegs=sprintf(T2C_RemoteCaliDat001.PayLoadData,"%s",T2C_RemoteCaliDat001.PayLoadData);
|
|
|
+ T2C_RemoteCaliDat001.NumberOfRegs=sprintf((char *)T2C_RemoteCaliDat001.PayLoadData,"%s",T2C_RemoteCaliDat001.PayLoadData);
|
|
|
|
|
|
break;
|
|
|
case ADDR_VersionOf_LCD://
|
|
|
FM25L16B_Write_N_Bytes(ADDR_VersionOf_LCD,T2C_RemoteCaliDat001.PayLoadData,32);
|
|
|
FM25L16B_Read_N_Bytes(ADDR_VersionOf_LCD,T2C_RemoteCaliDat001.PayLoadData,32);
|
|
|
- T2C_RemoteCaliDat001.NumberOfRegs=sprintf(T2C_RemoteCaliDat001.PayLoadData,"%s",T2C_RemoteCaliDat001.PayLoadData);
|
|
|
+ T2C_RemoteCaliDat001.NumberOfRegs=sprintf((char *)T2C_RemoteCaliDat001.PayLoadData,"%s",T2C_RemoteCaliDat001.PayLoadData);
|
|
|
|
|
|
break;
|
|
|
|
|
@@ -5731,14 +5492,14 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
|
|
|
case ADDR_Sw_VoicePlay://远程切换语音播报
|
|
|
FunDebugCode=DebugFun_Sw_VoicePlay;
|
|
|
- //sprintf((char*)(&USART1_TX_BUF[33]),"%s\r\n",T2C_RemoteCaliDat001.PayLoadData);
|
|
|
- T2C_RemoteCaliDat001.NumberOfRegs=sprintf(T2C_RemoteCaliDat001.PayLoadData,"%8u",DebugFun_Sw_VoicePlay);
|
|
|
+ //sprintf((char *)(char*)(&USART1_TX_BUF[33]),"%s\r\n",T2C_RemoteCaliDat001.PayLoadData);
|
|
|
+ T2C_RemoteCaliDat001.NumberOfRegs=sprintf((char *)T2C_RemoteCaliDat001.PayLoadData,"%8u",DebugFun_Sw_VoicePlay);
|
|
|
|
|
|
break;
|
|
|
|
|
|
case ADDR_Sw_ValveRaw://远程屏幕显示阀门原始数据或者汉字信息
|
|
|
FunDebugCode=DebugFun_Sw_ValveRaw;
|
|
|
- T2C_RemoteCaliDat001.NumberOfRegs=sprintf(T2C_RemoteCaliDat001.PayLoadData,"%8u",DebugFun_Sw_ValveRaw);
|
|
|
+ T2C_RemoteCaliDat001.NumberOfRegs=sprintf((char *)T2C_RemoteCaliDat001.PayLoadData,"%8u",DebugFun_Sw_ValveRaw);
|
|
|
break;
|
|
|
|
|
|
case ADDR_Reserve002_ContBoard: //远程设定控制板数据用于测试
|
|
@@ -5811,14 +5572,23 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
FM25L16B_Write_N_Bytes(ADDR_Enable_BlankSeal, T2C_RemoteCaliDat001.PayLoadData, 1);
|
|
|
T2C_RemoteCaliDat001.NumberOfRegs = 1;
|
|
|
break;
|
|
|
+ //add boly 20221021
|
|
|
+ case ADDR_JT808_DataBack:
|
|
|
+ {
|
|
|
+ jt808_recv_func_DataBack(T2C_RemoteCaliDat001.PayLoadData, T2C_RemoteCaliDat001.NumberOfRegs);
|
|
|
+ memset((void *)&T2C_RemoteCaliDat001, 0x00, sizeof(T2C_RemoteCaliDat001));
|
|
|
+ memset((void *)Pass41SensorScanParam.rx_buf, 0x00, sizeof(Pass41SensorScanParam.rx_buf));
|
|
|
+ return 1;
|
|
|
+ }break;
|
|
|
+ //end boly
|
|
|
default:
|
|
|
- T2C_RemoteCaliDat001.NumberOfRegs = sprintf(T2C_RemoteCaliDat001.PayLoadData, "Write Address Error! %08X\r\n", T2C_RemoteCaliDat001.AddrRegStart);
|
|
|
+ T2C_RemoteCaliDat001.NumberOfRegs = sprintf((char *)T2C_RemoteCaliDat001.PayLoadData, "Write Address Error! %08X\r\n", T2C_RemoteCaliDat001.AddrRegStart);
|
|
|
break;
|
|
|
}
|
|
|
}//写入寄存器指令----结束
|
|
|
else
|
|
|
{
|
|
|
- T2C_RemoteCaliDat001.NumberOfRegs = sprintf(T2C_RemoteCaliDat001.PayLoadData,"Modbus Command Error! %08X\r\n",T2C_RemoteCaliDat001.FunctionCode);
|
|
|
+ T2C_RemoteCaliDat001.NumberOfRegs = sprintf((char *)T2C_RemoteCaliDat001.PayLoadData,"Modbus Command Error! %08X\r\n",T2C_RemoteCaliDat001.FunctionCode);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -5827,7 +5597,7 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
{//ASCII模式下,只发送64*2+3字节
|
|
|
memcpy(USART1_TX_BUF,temp_dataFromUsart1,16*2+1);//前16字节原样返回,共33字符 1表示起始字符英文下的冒号,hex为0x3a
|
|
|
Lrc_temp = MODBUS_ASCII_GetLrc(USART1_TX_BUF+1,T2C_RemoteCaliDat001.NumberOfRegs);
|
|
|
- sprintf((char*)(&USART1_TX_BUF[T2C_RemoteCaliDat001.NumberOfRegs*2+33]),"%02X",Lrc_temp);
|
|
|
+ sprintf((char *)(char*)(&USART1_TX_BUF[T2C_RemoteCaliDat001.NumberOfRegs*2+33]),"%02X",Lrc_temp);
|
|
|
USART1_TX_BUF[T2C_RemoteCaliDat001.NumberOfRegs*2+35] =0x0D;
|
|
|
USART1_TX_BUF[T2C_RemoteCaliDat001.NumberOfRegs*2+36] = 0x0A;
|
|
|
TerminalSlave485_Send_Data(USART1_TX_BUF,T2C_RemoteCaliDat001.NumberOfRegs*2+37);
|
|
@@ -5838,7 +5608,7 @@ int Process_CMD_0x39_RemoteCali(uint8_t dataMode)
|
|
|
|
|
|
memcpy(USART1_TX_BUF,temp_dataFromUsart1,16*1+1);//前16字节原样返回,共33字符 1表示起始字符英文下的冒号,hex为0x3a
|
|
|
Lrc_temp = MODBUS_GetLrc(USART1_TX_BUF+1,T2C_RemoteCaliDat001.NumberOfRegs);
|
|
|
- sprintf((char*)(&USART1_TX_BUF[T2C_RemoteCaliDat001.NumberOfRegs+1]),"%02X",Lrc_temp);
|
|
|
+ sprintf((char *)(char*)(&USART1_TX_BUF[T2C_RemoteCaliDat001.NumberOfRegs+1]),"%02X",Lrc_temp);
|
|
|
USART1_TX_BUF[T2C_RemoteCaliDat001.NumberOfRegs+3] =0x0D;
|
|
|
USART1_TX_BUF[T2C_RemoteCaliDat001.NumberOfRegs+4] = 0x0A;
|
|
|
TerminalSlave485_Send_Data(USART1_TX_BUF,T2C_RemoteCaliDat001.NumberOfRegs+5);//64+3
|