Quellcode durchsuchen

解决双卡上报数据异常问题

yidong vor 1 Monat
Ursprung
Commit
da9a5bdc31
3 geänderte Dateien mit 152 neuen und 4 gelöschten Zeilen
  1. 1 1
      BoardInterface/onechip_load_inf.h
  2. 23 3
      DriverInterface/state_mini.c
  3. 128 0
      MDK-ARM/mini7_V2.uvoptx

+ 1 - 1
BoardInterface/onechip_load_inf.h

@@ -8,7 +8,7 @@
 #define SOFT_VERSION_1  7	//软件版本号
 #define SOFT_VERSION_2  4	//软件版本号
 #define SOFT_VERSION_3  0	//软件版本号
-#define SOFT_VERSION_4  21	//软件版本号
+#define SOFT_VERSION_4  22	//软件版本号
 
 
 

+ 23 - 3
DriverInterface/state_mini.c

@@ -516,11 +516,15 @@ void usr_state_machine(ProcessStateMachine_t *sts, heat_ctrl_def *heater)
     	{
 			sts->samp_flag = 0;
 		
+            ColorSensor *pGroup = (heater->number == 0) ? CS : CS_Slave;
 			if (sts->sampleTimes == 0)
 			{
 				sample_first_zero(heater->number);    //计算校零值	
 				// sts->samp_num = 0;
 				sts->cursendok = 1;
+                DatascopeSend(heater->number,pGroup[0].CDR,pGroup[1].CDR,pGroup[2].CDR,pGroup[3].CDR,pGroup[4].CDR,pGroup[5].CDR,pGroup[6].CDR,pGroup[7].CDR,pGroup[8].CDR,pGroup[9].CDR,(sysinf.ms_conter/1000.0));
+                DatascopeSend(heater->number,pGroup[0].gain,pGroup[1].gain,pGroup[2].gain,pGroup[3].gain,pGroup[4].gain,pGroup[5].gain,pGroup[6].gain,pGroup[7].gain,pGroup[8].gain,pGroup[9].gain,(sysinf.ms_conter/1000.0));
+
 			}
 			else
 			{
@@ -528,7 +532,6 @@ void usr_state_machine(ProcessStateMachine_t *sts, heat_ctrl_def *heater)
                 //输出原始数据
               
 			}
-            ColorSensor *pGroup = (heater->number == 0) ? CS : CS_Slave;
             DatascopeSend(heater->number,pGroup[0].RDR,pGroup[1].RDR,pGroup[2].RDR,pGroup[3].RDR,pGroup[4].RDR,pGroup[5].RDR,pGroup[6].RDR,pGroup[7].RDR,pGroup[8].RDR,pGroup[9].RDR,(sysinf.ms_conter/1000.0));
 
             //上报采样数据
@@ -536,7 +539,22 @@ void usr_state_machine(ProcessStateMachine_t *sts, heat_ctrl_def *heater)
 			if(((sts->DataSendLast+ 1)%MAX_DATA_BUF_SIZE) != sts->DataSendHeader){
 				for (int i = 0; i < CS_MAX; i++)
 				{
-					memcpy(&sts->DataBufRDR[sts->DataSendLast][i], &CS[i].RtR, 4);
+					// === 打桩测试模式 (Stub Test) ===
+					// 目的: 验证数据采集→缓存→上报链路的准确性
+					// 主卡(number=0): 单向递增, 通道i速率=(i+1), 基准1000
+					// 从卡(number=1): 单向递减, 通道i速率=(i+1), 基准1000
+					// 预期: 主卡 ch1=1000,1001,1002...  ch2=1000,1002,1004...
+					//       从卡 ch1=1000,999,998...    ch2=1000,998,996...
+					float stub_RtR;
+					if(heater->number == 0){
+						stub_RtR = 1000.0f + (float)(i + 1) * (float)sts->sampleTimes;
+					}else{
+						stub_RtR = 1000.0f - (float)(i + 1) * (float)sts->sampleTimes;
+					}
+					memcpy(&sts->DataBufRDR[sts->DataSendLast][i], &pGroup[i].RtR, 4);
+					// === 打桩测试模式结束 ===
+					// 原始代码(恢复真实数据时取消下方注释并注释打桩部分):
+					// memcpy(&sts->DataBufRDR[sts->DataSendLast][i], &pGroup[i].RtR, 4);
 				}
 				sts->DataSendLast++;
 				if(sts->DataSendLast == MAX_DATA_BUF_SIZE){
@@ -618,7 +636,9 @@ void usr_state_machine(ProcessStateMachine_t *sts, heat_ctrl_def *heater)
             sts->statusword |= SW_move_card;
             sts->state = SW_move_card;
             updateAmplifState(SYS_STATE_WORKEND,heater->number);             
-			beep_set(BEEP_WORKEND);
+			beep_set(BEEP_WORKEND);            
+            sts->DataSendHeader = 0;
+            sts->DataSendLast = 0;
         }
     }
         break;

+ 128 - 0
MDK-ARM/mini7_V2.uvoptx

@@ -245,6 +245,38 @@
           <ExecCommand></ExecCommand>
           <Expression></Expression>
         </Bp>
+        <Bp>
+          <Number>6</Number>
+          <Type>0</Type>
+          <LineNumber>864</LineNumber>
+          <EnabledFlag>1</EnabledFlag>
+          <Address>0</Address>
+          <ByteObject>0</ByteObject>
+          <HtxType>0</HtxType>
+          <ManyObjects>0</ManyObjects>
+          <SizeOfObject>0</SizeOfObject>
+          <BreakByAccess>0</BreakByAccess>
+          <BreakIfRCount>0</BreakIfRCount>
+          <Filename>..\DriverInterface\ESP32_WROOM_32D.c</Filename>
+          <ExecCommand></ExecCommand>
+          <Expression></Expression>
+        </Bp>
+        <Bp>
+          <Number>7</Number>
+          <Type>0</Type>
+          <LineNumber>61</LineNumber>
+          <EnabledFlag>1</EnabledFlag>
+          <Address>0</Address>
+          <ByteObject>0</ByteObject>
+          <HtxType>0</HtxType>
+          <ManyObjects>0</ManyObjects>
+          <SizeOfObject>0</SizeOfObject>
+          <BreakByAccess>0</BreakByAccess>
+          <BreakIfRCount>0</BreakIfRCount>
+          <Filename>..\DriverInterface\user_heater.c</Filename>
+          <ExecCommand></ExecCommand>
+          <Expression></Expression>
+        </Bp>
       </Breakpoint>
       <WatchWindow1>
         <Ww>
@@ -519,6 +551,102 @@
           <ExecCommand></ExecCommand>
           <Expression></Expression>
         </Bp>
+        <Bp>
+          <Number>1</Number>
+          <Type>0</Type>
+          <LineNumber>547</LineNumber>
+          <EnabledFlag>1</EnabledFlag>
+          <Address>0</Address>
+          <ByteObject>0</ByteObject>
+          <HtxType>0</HtxType>
+          <ManyObjects>0</ManyObjects>
+          <SizeOfObject>0</SizeOfObject>
+          <BreakByAccess>0</BreakByAccess>
+          <BreakIfRCount>0</BreakIfRCount>
+          <Filename>..\DriverInterface\ESP32_WROOM_32D.c</Filename>
+          <ExecCommand></ExecCommand>
+          <Expression></Expression>
+        </Bp>
+        <Bp>
+          <Number>2</Number>
+          <Type>0</Type>
+          <LineNumber>864</LineNumber>
+          <EnabledFlag>1</EnabledFlag>
+          <Address>0</Address>
+          <ByteObject>0</ByteObject>
+          <HtxType>0</HtxType>
+          <ManyObjects>0</ManyObjects>
+          <SizeOfObject>0</SizeOfObject>
+          <BreakByAccess>0</BreakByAccess>
+          <BreakIfRCount>0</BreakIfRCount>
+          <Filename>..\DriverInterface\ESP32_WROOM_32D.c</Filename>
+          <ExecCommand></ExecCommand>
+          <Expression></Expression>
+        </Bp>
+        <Bp>
+          <Number>3</Number>
+          <Type>0</Type>
+          <LineNumber>61</LineNumber>
+          <EnabledFlag>1</EnabledFlag>
+          <Address>0</Address>
+          <ByteObject>0</ByteObject>
+          <HtxType>0</HtxType>
+          <ManyObjects>0</ManyObjects>
+          <SizeOfObject>0</SizeOfObject>
+          <BreakByAccess>0</BreakByAccess>
+          <BreakIfRCount>0</BreakIfRCount>
+          <Filename>..\DriverInterface\user_heater.c</Filename>
+          <ExecCommand></ExecCommand>
+          <Expression></Expression>
+        </Bp>
+        <Bp>
+          <Number>4</Number>
+          <Type>0</Type>
+          <LineNumber>303</LineNumber>
+          <EnabledFlag>1</EnabledFlag>
+          <Address>0</Address>
+          <ByteObject>0</ByteObject>
+          <HtxType>0</HtxType>
+          <ManyObjects>0</ManyObjects>
+          <SizeOfObject>0</SizeOfObject>
+          <BreakByAccess>0</BreakByAccess>
+          <BreakIfRCount>0</BreakIfRCount>
+          <Filename>..\DriverInterface\usr_motor.c</Filename>
+          <ExecCommand></ExecCommand>
+          <Expression></Expression>
+        </Bp>
+        <Bp>
+          <Number>5</Number>
+          <Type>0</Type>
+          <LineNumber>510</LineNumber>
+          <EnabledFlag>1</EnabledFlag>
+          <Address>0</Address>
+          <ByteObject>0</ByteObject>
+          <HtxType>0</HtxType>
+          <ManyObjects>0</ManyObjects>
+          <SizeOfObject>0</SizeOfObject>
+          <BreakByAccess>0</BreakByAccess>
+          <BreakIfRCount>0</BreakIfRCount>
+          <Filename>..\DriverInterface\usr_motor.c</Filename>
+          <ExecCommand></ExecCommand>
+          <Expression></Expression>
+        </Bp>
+        <Bp>
+          <Number>6</Number>
+          <Type>0</Type>
+          <LineNumber>167</LineNumber>
+          <EnabledFlag>1</EnabledFlag>
+          <Address>0</Address>
+          <ByteObject>0</ByteObject>
+          <HtxType>0</HtxType>
+          <ManyObjects>0</ManyObjects>
+          <SizeOfObject>0</SizeOfObject>
+          <BreakByAccess>0</BreakByAccess>
+          <BreakIfRCount>0</BreakIfRCount>
+          <Filename>..\DriverInterface\van_BSP_Scanner.c</Filename>
+          <ExecCommand></ExecCommand>
+          <Expression></Expression>
+        </Bp>
       </Breakpoint>
       <WatchWindow1>
         <Ww>