|
@@ -428,6 +428,8 @@ uint16_t Read_ZhencheSensorData1(uint8_t* pTx)
|
|
|
|
|
|
return 1;
|
|
|
}
|
|
|
+
|
|
|
+#if 0
|
|
|
/*
|
|
|
8仓数据读
|
|
|
功能增加: 邵磊明
|
|
@@ -2730,6 +2732,360 @@ uint16_t Read_CangSensorData_1(uint8_t* pTx)//
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
+#endif
|
|
|
+/*
|
|
|
+1仓数据读
|
|
|
+功能增加: 邵磊明
|
|
|
+*/
|
|
|
+uint16_t Read_CangSensorData_V2(uint8_t* pTx, uint8_t Cang_Num) // add by guoqiang
|
|
|
+{
|
|
|
+ //传感器数据顺序为温度4字节*3,角度4字节*3,液位4字节*1,容积四字节*1
|
|
|
+// Angle_Inf* pangle = &angle_inf;
|
|
|
+ TEM_Inf* ptem = tem_inf;
|
|
|
+// KZQ_Inf* pkzq = &kzq_inf;
|
|
|
+ Level_Inf* plevel = level_inf;
|
|
|
+ HDF_Inf* phdf = hdf_inf;
|
|
|
+ Biguayou_Inf* pBGY = biguayou_inf;
|
|
|
+ Cang_Inf* pcang = &cang_inf;
|
|
|
+ KZQ_Inf* pkzq = &kzq_inf;
|
|
|
+ RKG_Inf* prkg = rkg_inf;
|
|
|
+ XYF_Inf* pxyf = xyf_inf;
|
|
|
+ Yqhuishou_Inf* pYqhuishou = &yqhuishou_inf;
|
|
|
+//static float test_val=100;
|
|
|
+ extern uint8_t ptxCang01Temp[150];
|
|
|
+ typedef union{
|
|
|
+ float float_temp; //青鸟贵和磁致伸缩液位温度一体传感器
|
|
|
+ uint8_t arr[4];
|
|
|
+ }Hex_to_float;
|
|
|
+ Hex_to_float hex_to_float;
|
|
|
+ uint8_t i = 0,HDF_Start = 0,XYF_Start = 0,RKG_Start = 0,BGY_Start = 0;
|
|
|
+ if(Cang_Num < 1 ||Cang_Num > 8)
|
|
|
+ return 0;
|
|
|
+ for(i = 0;i < Cang_Num - 1;i++)
|
|
|
+ {
|
|
|
+ HDF_Start += pcang->HDF_Num[i];
|
|
|
+ XYF_Start += pcang->XYF_Num[i];
|
|
|
+ RKG_Start += pcang->RKG_Num[i];
|
|
|
+ BGY_Start += pcang->BGY_Num[i];
|
|
|
+ }
|
|
|
+
|
|
|
+ for(i = 0;i < 4;i++) //铅封
|
|
|
+ {
|
|
|
+ pTx[16+i] = 0;
|
|
|
+ }
|
|
|
+ pTx[20] = phdf[Cang_Num].HDF_OFData[1]; //浮球
|
|
|
+ pTx[21] = 0;
|
|
|
+ pTx[22] = 0;
|
|
|
+ pTx[23] = 0;
|
|
|
+ pTx[24] = phdf[Cang_Num].HDF_OFState; //活塞杆
|
|
|
+ pTx[25] = 0;
|
|
|
+ pTx[26] = 0;
|
|
|
+ pTx[27] = 0;
|
|
|
+
|
|
|
+ pTx[28] = pBGY[Cang_Num].BGY_SSWD[0]; //壁挂油光电
|
|
|
+ pTx[29] = 0;
|
|
|
+ pTx[30] = 0;
|
|
|
+ pTx[31] = 0;
|
|
|
+ pTx[32] = pBGY[Cang_Num].BGY_SVAL[0]; //壁挂油霍尔
|
|
|
+ pTx[33] = 0;
|
|
|
+ pTx[34] = 0;
|
|
|
+ pTx[35] = 0;
|
|
|
+
|
|
|
+ pTx[36] = pBGY[Cang_Num].BGY_SSWD[0]; //油气回收光电
|
|
|
+ pTx[37] = 0;
|
|
|
+ pTx[38] = 0;
|
|
|
+ pTx[39] = 0;
|
|
|
+ pTx[40] = pBGY[Cang_Num].BGY_SVAL[0]; //油气回收霍尔
|
|
|
+ pTx[41] = 0;
|
|
|
+ pTx[42] = 0;
|
|
|
+ pTx[43] = 0;
|
|
|
+
|
|
|
+ // hdf
|
|
|
+ if(pcang->HDF_Num[Cang_Num - 1] > 0)
|
|
|
+ {
|
|
|
+ for(i = 0;i < 4;i++){ //the max is 4
|
|
|
+ if(i<pcang->HDF_Num[Cang_Num - 1])
|
|
|
+ pTx[44+i]= phdf[HDF_Start+i+1].HDF_Error? State_Error:Get_DFState(HDF_Start+i+1);
|
|
|
+ else
|
|
|
+ pTx[44+i]=0xA5;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ for(i = 0;i < 4;i++){
|
|
|
+ pTx[44+i]=0xA5;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // xyf
|
|
|
+ if(pcang->XYF_Num[Cang_Num - 1] > 0)
|
|
|
+ {
|
|
|
+ for(i = 0;i < 4;i++){ //the max is 4
|
|
|
+ if(i<pcang->XYF_Num[Cang_Num - 1])
|
|
|
+ pTx[48+i]= pxyf[XYF_Start+i+1].XYF_Error? State_Error:pxyf[XYF_Start+i+1].XYF_State1;
|
|
|
+ else
|
|
|
+ pTx[48+i]=0xA5;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ for(i = 0;i < 4;i++){
|
|
|
+ pTx[48+i]=0xA5;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //rkdg & rkxg
|
|
|
+ if(pcang->RKG_Num[Cang_Num - 1] > 0)
|
|
|
+ {
|
|
|
+ for(i = 0;i < 4;i++){ //the max is 4
|
|
|
+ if(i < pcang->RKG_Num[Cang_Num - 1]){
|
|
|
+ pTx[52+i]= prkg[RKG_Start+i+1].RKDG_Error? State_Error:prkg[RKG_Start+i+1].RKDG_State;
|
|
|
+ pTx[56+i]= prkg[RKG_Start+i+1].RKDG_Error? State_Error:prkg[RKG_Start+i+1].RKXG_State;
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ pTx[52+i]=0xA5;
|
|
|
+ pTx[56+i]=0xA5;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }else{
|
|
|
+ for(i = 0;i < 4;i++){
|
|
|
+ pTx[52+i]=0xA5;
|
|
|
+ pTx[56+i]=0xA5;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // xj status
|
|
|
+ if(pcang->XYF_Num[Cang_Num - 1] > 0)
|
|
|
+ {
|
|
|
+ for(i = 0;i < 4;i++){ //the max is 4
|
|
|
+ if(i<pcang->XYF_Num[Cang_Num - 1])
|
|
|
+ pTx[60+i]= pxyf[XYF_Start+i+1].XYF_Error? State_Error:pxyf[XYF_Start+i+1].XYF_State2;
|
|
|
+ else
|
|
|
+ pTx[60+i]=0xA5;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ for(i = 0;i < 4;i++){
|
|
|
+ pTx[60+i]=0xA5;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ pTx[56+8] = pBGY[Cang_Num].BGY_SVAL[0]; //大磁电
|
|
|
+ pTx[57+8] = 0;
|
|
|
+ pTx[58+8] = 0;
|
|
|
+ pTx[59+8] = 0;
|
|
|
+ pTx[60+8] = pBGY[Cang_Num].BGY_SVAL[0]; //小磁电
|
|
|
+ pTx[61+8] = 0;
|
|
|
+ pTx[62+8] = 0;
|
|
|
+ pTx[63+8] = 0;
|
|
|
+
|
|
|
+ for(i = 0;i < 32;i++) //保留32Byte
|
|
|
+ {
|
|
|
+ pTx[72+i] = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+/*********************液位传感器数据**********************************/
|
|
|
+ if(plevel[Cang_Num].Level_Error)
|
|
|
+ {
|
|
|
+ pTx[95+9] = 0;
|
|
|
+ pTx[96+9] = 0;
|
|
|
+ pTx[97+9] = 0;
|
|
|
+ pTx[98+9] = 0;
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ hex_to_float.float_temp = plevel[Cang_Num].Level_Data1;
|
|
|
+ pTx[95+9] = hex_to_float.arr[0];
|
|
|
+ pTx[96+9] = hex_to_float.arr[1];
|
|
|
+ pTx[97+9] = hex_to_float.arr[2];
|
|
|
+ pTx[98+9] = hex_to_float.arr[3];
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+/**********************平均温度传感器数据**********************************/
|
|
|
+ if(plevel[Cang_Num].Level_Error)
|
|
|
+ {
|
|
|
+ pTx[99+9] = 0;
|
|
|
+ pTx[100+9] = 0;
|
|
|
+ pTx[101+9] = 0;
|
|
|
+ pTx[102+9] = 0;
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ hex_to_float.float_temp = ((float)ptem[Cang_Num].TEM_MData[1]*(0.1f));
|
|
|
+ pTx[99+9] = hex_to_float.arr[0]; //读取高位温度传感器数据
|
|
|
+ pTx[100+9] = hex_to_float.arr[1];
|
|
|
+ pTx[101+9] = hex_to_float.arr[2];
|
|
|
+ pTx[102+9] = hex_to_float.arr[3];
|
|
|
+
|
|
|
+ }
|
|
|
+/**********************高温度传感器数据**********************************/
|
|
|
+ if(plevel[Cang_Num].Level_Error)
|
|
|
+ {
|
|
|
+ pTx[103+9] = 0;
|
|
|
+ pTx[104+9] = 0;
|
|
|
+ pTx[105+9] = 0;
|
|
|
+ pTx[106+9] = 0;
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ hex_to_float.float_temp = ((float)ptem[Cang_Num].TEM_HData[1]*(0.1f));
|
|
|
+ pTx[103+9] = hex_to_float.arr[0]; //读取高位温度传感器数据
|
|
|
+ pTx[104+9] = hex_to_float.arr[1];
|
|
|
+ pTx[105+9] = hex_to_float.arr[2];
|
|
|
+ pTx[106+9] = hex_to_float.arr[3];
|
|
|
+
|
|
|
+ }
|
|
|
+/*********************中温度传感器数据**********************************/
|
|
|
+ if(plevel[Cang_Num].Level_Error)
|
|
|
+ {
|
|
|
+ pTx[107+9] = 0;
|
|
|
+ pTx[108+9] = 0;
|
|
|
+ pTx[109+9] = 0;
|
|
|
+ pTx[110+9] = 0;
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ hex_to_float.float_temp = ((float)ptem[Cang_Num].TEM_MData[1]*(0.1f));
|
|
|
+ pTx[107+9] = hex_to_float.arr[0]; //读取高位温度传感器数据
|
|
|
+ pTx[108+9] = hex_to_float.arr[1];
|
|
|
+ pTx[109+9] = hex_to_float.arr[2];
|
|
|
+ pTx[110+9] = hex_to_float.arr[3];
|
|
|
+
|
|
|
+ }
|
|
|
+/**********************低温度传感器数据**********************************/
|
|
|
+ if(plevel[Cang_Num].Level_Error)
|
|
|
+ {
|
|
|
+ pTx[111+9] = 0;
|
|
|
+ pTx[112+9] = 0;
|
|
|
+ pTx[113+9] = 0;
|
|
|
+ pTx[114+9] = 0;
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ hex_to_float.float_temp = ((float)ptem[Cang_Num].TEM_LData[1]*(0.1f));
|
|
|
+ pTx[111+9] = hex_to_float.arr[0]; //读取高位温度传感器数据
|
|
|
+ pTx[112+9] = hex_to_float.arr[1];
|
|
|
+ pTx[113+9] = hex_to_float.arr[2];
|
|
|
+ pTx[114+9] = hex_to_float.arr[3];
|
|
|
+
|
|
|
+ }
|
|
|
+// test_val++;
|
|
|
+// for(i=0;i<4;i++) //for test
|
|
|
+// {
|
|
|
+// hex_to_float.float_temp = test_val;//plevel[Cang_Num].Level_Data;//(10.56+test_val);
|
|
|
+// pTx[108+i*4] = hex_to_float.arr[0];
|
|
|
+// pTx[109+i*4] = hex_to_float.arr[1];
|
|
|
+// pTx[110+i*4] = hex_to_float.arr[2];
|
|
|
+// pTx[111+i*4] = hex_to_float.arr[3];
|
|
|
+// }
|
|
|
+/**************************读取容积数据*********************************/
|
|
|
+ if(plevel[Cang_Num].Level_Error)
|
|
|
+ {
|
|
|
+ pTx[115+9] = 0x76;
|
|
|
+ pTx[116+9] = 0x7F;
|
|
|
+ pTx[117+9] = 0xFF;
|
|
|
+ pTx[118+9] = 0x00;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ hex_to_float.float_temp = plevel[(Cang_Num-0)].Volume_Data;
|
|
|
+ pTx[115+9] = hex_to_float.arr[0];
|
|
|
+ pTx[116+9] = hex_to_float.arr[1];
|
|
|
+ pTx[117+9] = hex_to_float.arr[2];
|
|
|
+ pTx[118+9] = hex_to_float.arr[3];
|
|
|
+ }
|
|
|
+/**************************压力*********************************/
|
|
|
+ if(plevel[Cang_Num].Level_Error)
|
|
|
+ {
|
|
|
+ pTx[119+9] = 0;
|
|
|
+ pTx[120+9] = 0;
|
|
|
+ pTx[121+9] = 0;
|
|
|
+ pTx[122+9] = 0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ hex_to_float.float_temp = plevel[Cang_Num].Volume_Data;
|
|
|
+ pTx[119+9] = 0;
|
|
|
+ pTx[120+9] = 0;
|
|
|
+ pTx[121+9] = 0;
|
|
|
+ pTx[122+9] = 0;
|
|
|
+ }
|
|
|
+/**************************含水量*********************************/
|
|
|
+ if(plevel[Cang_Num].Level_Error)
|
|
|
+ {
|
|
|
+ pTx[123+9] = 0;
|
|
|
+ pTx[124+9] = 0;
|
|
|
+ pTx[125+9] = 0;
|
|
|
+ pTx[126+9] = 0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ hex_to_float.float_temp = plevel[Cang_Num].Volume_Data;
|
|
|
+ pTx[123+9] = 0;
|
|
|
+ pTx[124+9] = 0;
|
|
|
+ pTx[125+9] = 0;
|
|
|
+ pTx[126+9] = 0;
|
|
|
+ }
|
|
|
+/**************************水活性*********************************/
|
|
|
+ if(plevel[Cang_Num].Level_Error)
|
|
|
+ {
|
|
|
+ pTx[127+9] = 0;
|
|
|
+ pTx[128+9] = 0;
|
|
|
+ pTx[129+9] = 0;
|
|
|
+ pTx[130+9] = 0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ hex_to_float.float_temp = plevel[Cang_Num].Volume_Data;
|
|
|
+ pTx[127+9] = 0;
|
|
|
+ pTx[128+9] = 0;
|
|
|
+ pTx[129+9] = 0;
|
|
|
+ pTx[130+9] = 0;
|
|
|
+ }
|
|
|
+/**************************新增*********************************/
|
|
|
+ if(plevel[Cang_Num].Level_Error)
|
|
|
+ {
|
|
|
+ pTx[131+9] = 0;
|
|
|
+ pTx[132+9] = 0;
|
|
|
+ pTx[133+9] = 0;
|
|
|
+ pTx[134+9] = 0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ hex_to_float.float_temp = plevel[Cang_Num].Volume_Data;
|
|
|
+ pTx[131+9] = hex_to_float.arr[0];
|
|
|
+ pTx[132+9] = hex_to_float.arr[1];
|
|
|
+ pTx[133+9] = hex_to_float.arr[2];
|
|
|
+ pTx[134+9] = hex_to_float.arr[3];
|
|
|
+ }
|
|
|
+/**************************新增********************************/
|
|
|
+ if(plevel[Cang_Num].Level_Error)
|
|
|
+ {
|
|
|
+ pTx[135+9] = 0;
|
|
|
+ pTx[136+9] = 0;
|
|
|
+ pTx[137+9] = 0;
|
|
|
+ pTx[138+9] = 0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ hex_to_float.float_temp = plevel[Cang_Num].Volume_Data;
|
|
|
+ pTx[135+9] = 0;
|
|
|
+ pTx[136+9] = 0;
|
|
|
+ pTx[137+9] = 0;
|
|
|
+ pTx[138+9] = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+// memcpy(ptxCang01Temp,&pTx[0],150);
|
|
|
+
|
|
|
+
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
/*
|
|
|
1-4仓数据读
|
|
|
功能增加: 邵磊明
|
|
@@ -3639,19 +3995,20 @@ uint16_t CJQ_SetConfig(uint8_t* pTx)
|
|
|
KZQ_Inf* pkzq = &kzq_inf;
|
|
|
uint16_t Flash_buf[20] = {0};
|
|
|
uint8_t i = 0;
|
|
|
+ uint8_t data_len = 0x05;
|
|
|
|
|
|
- for(i = 0;i < pkzq->data_buf[11];i++)
|
|
|
+ for(i = 0;i < data_len;i++)
|
|
|
{
|
|
|
Flash_buf[i] = pkzq->data_buf[16+i];
|
|
|
}
|
|
|
if(pkzq->data_buf[7] == 0x06)
|
|
|
{
|
|
|
- Flash_WriteBytes(Flash_buf,ADDR_CANG_NUM,pTx[11]);
|
|
|
+ Flash_WriteBytes(Flash_buf,ADDR_CANG_NUM,data_len);
|
|
|
Cang_Init();
|
|
|
}
|
|
|
- Flash_ReadBytes(Flash_buf,ADDR_CANG_NUM,pTx[11]);
|
|
|
+ Flash_ReadBytes(Flash_buf,ADDR_CANG_NUM,data_len);
|
|
|
|
|
|
- for(i = 0;i < pkzq->data_buf[11];i++)
|
|
|
+ for(i = 0;i < data_len;i++)
|
|
|
{
|
|
|
//if((Flash_buf[i] != pkzq->data_buf[16+i])&&(pkzq->data_buf[7] == 0x06))
|
|
|
// return 0;
|
|
@@ -3666,8 +4023,9 @@ uint16_t RKG_SetTypeNum(uint8_t* pTx)
|
|
|
KZQ_Inf* pkzq = &kzq_inf;
|
|
|
uint16_t Flash_buf[20] = {0};
|
|
|
uint8_t i = 0;
|
|
|
+ uint8_t data_len = 0x09;
|
|
|
|
|
|
- for(i = 0;i < pkzq->data_buf[11];i++)
|
|
|
+ for(i = 0;i < data_len;i++)
|
|
|
{
|
|
|
Flash_buf[i] = pkzq->data_buf[16+i];
|
|
|
}
|
|
@@ -3681,7 +4039,7 @@ uint16_t RKG_SetTypeNum(uint8_t* pTx)
|
|
|
Flash_WriteBytes(Flash_buf+1,ADDR_RKG_NUM,8);
|
|
|
Flash_ReadBytes(Flash_buf+1,ADDR_RKG_NUM,8);
|
|
|
|
|
|
- for(i = 0;i < pkzq->data_buf[11];i++)
|
|
|
+ for(i = 0;i < data_len;i++)
|
|
|
{
|
|
|
if((Flash_buf[i+1] != pkzq->data_buf[17+i])&&(pkzq->data_buf[7] == 0x06))
|
|
|
return 0;
|
|
@@ -3700,8 +4058,9 @@ uint16_t XYF_SetTypeNum(uint8_t* pTx)
|
|
|
KZQ_Inf* pkzq = &kzq_inf;
|
|
|
uint16_t Flash_buf[20] = {0};
|
|
|
uint8_t i = 0;
|
|
|
+ uint8_t data_len = 0x09;
|
|
|
|
|
|
- for(i = 0;i < pkzq->data_buf[11];i++)
|
|
|
+ for(i = 0;i < data_len;i++)
|
|
|
{
|
|
|
Flash_buf[i] = pkzq->data_buf[16+i];
|
|
|
}
|
|
@@ -3720,7 +4079,7 @@ uint16_t XYF_SetTypeNum(uint8_t* pTx)
|
|
|
|
|
|
Flash_ReadBytes(Flash_buf+1,ADDR_XYF_NUM,8);
|
|
|
|
|
|
- for(i = 0;i < pkzq->data_buf[11];i++)
|
|
|
+ for(i = 0;i < data_len;i++)
|
|
|
{
|
|
|
if((Flash_buf[i+1] != pkzq->data_buf[17+i])&&(pkzq->data_buf[7] == 0x06))
|
|
|
return 0;
|
|
@@ -3739,8 +4098,9 @@ uint16_t HDF_SetTypeNum(uint8_t* pTx)
|
|
|
KZQ_Inf* pkzq = &kzq_inf;
|
|
|
uint16_t Flash_buf[20] = {0};
|
|
|
uint8_t i = 0;
|
|
|
+ uint8_t data_len = 0x09;
|
|
|
|
|
|
- for(i = 0;i < pkzq->data_buf[11];i++)
|
|
|
+ for(i = 0;i < data_len;i++)
|
|
|
{
|
|
|
Flash_buf[i] = pkzq->data_buf[16+i];
|
|
|
}
|
|
@@ -3754,7 +4114,7 @@ uint16_t HDF_SetTypeNum(uint8_t* pTx)
|
|
|
Flash_WriteBytes(Flash_buf+1,ADDR_HDF_NUM,8);
|
|
|
Flash_ReadBytes(Flash_buf+1,ADDR_HDF_NUM,8);
|
|
|
|
|
|
- for(i = 0;i < pkzq->data_buf[11];i++)
|
|
|
+ for(i = 0;i < data_len;i++)
|
|
|
{
|
|
|
if((Flash_buf[i+1] != pkzq->data_buf[17+i])&&(pkzq->data_buf[7] == 0x06))
|
|
|
return 0;
|
|
@@ -3910,7 +4270,7 @@ uint16_t Tem_SetType(uint8_t* pTx)
|
|
|
else
|
|
|
return 0;
|
|
|
}
|
|
|
-uint32_t Version_Soft[8] = {2, 2, 3, 13, 1, 1, 0, 20220810};
|
|
|
+uint32_t Version_Soft[8] = {2, 2, 3, 13, 1, 1, 0, 20220826};
|
|
|
uint16_t Read_SoftVersion(uint8_t *pTx)
|
|
|
{
|
|
|
int i;
|