فهرست منبع

V1.1.3.1 增加了从机蓝牙连接与断开时发生一帧状态消息到EBC

CHENJIE-PC\QiXiang_CHENJIE 2 سال پیش
والد
کامیت
e6c138a22c
4فایلهای تغییر یافته به همراه36 افزوده شده و 9 حذف شده
  1. 4 4
      .settings/language.settings.xml
  2. 1 1
      src/AppGlobalVar.c
  3. 15 0
      src/AppTaskBle.c
  4. 16 4
      src/AppTaskCan.c

+ 4 - 4
.settings/language.settings.xml

@@ -5,7 +5,7 @@
 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
-			<provider class="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1895484765647840217" id="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT S32DS Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+			<provider class="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" console="false" env-hash="-1695918988054320556" id="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT S32DS Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
 				<language-scope id="org.eclipse.cdt.core.gcc"/>
 				<language-scope id="org.eclipse.cdt.core.g++"/>
 			</provider>
@@ -16,7 +16,7 @@
 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
-			<provider class="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1895484765647840217" id="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT S32DS Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+			<provider class="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" console="false" env-hash="-1695918988054320556" id="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT S32DS Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
 				<language-scope id="org.eclipse.cdt.core.gcc"/>
 				<language-scope id="org.eclipse.cdt.core.g++"/>
 			</provider>
@@ -27,7 +27,7 @@
 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
-			<provider class="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1895484765647840217" id="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT S32DS Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+			<provider class="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" console="false" env-hash="-1695918988054320556" id="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT S32DS Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
 				<language-scope id="org.eclipse.cdt.core.gcc"/>
 				<language-scope id="org.eclipse.cdt.core.g++"/>
 			</provider>
@@ -38,7 +38,7 @@
 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
-			<provider class="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1895484765647840217" id="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT S32DS Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+			<provider class="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" console="false" env-hash="-1695918988054320556" id="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT S32DS Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
 				<language-scope id="org.eclipse.cdt.core.gcc"/>
 				<language-scope id="org.eclipse.cdt.core.g++"/>
 			</provider>

+ 1 - 1
src/AppGlobalVar.c

@@ -16,7 +16,7 @@
 
 #include "AppGlobalVar.h"
 //*全局变量*//
-uint32 BleVersion = 0x01010201;         // ble的软件版本
+uint32 BleVersion = 0x01010301;         // ble的软件版本
 uint8 BleMacAddr[6];
 uint8 BleTargetMacAddr[6] = {0xBE, 0x84, 0xCC, 0x29, 0x3B, 0xCB};
 uint8 BleCurrentRole = 0;

+ 15 - 0
src/AppTaskBle.c

@@ -86,9 +86,15 @@ void BleTask(void *pvParameters)
 				}
 				if(BleCurrentRole == 0)//如果从机在串口0上收到数据,则证明已连接
 				{
+					uint8 DataTemp[8] = {0x00};
+					DataTemp[0] = 0x01;
+					DataTemp[1] = 0x01;
 					bleWorkState = 1;
 					BleConnectFlg = 1;
 					BleDisconnectFlg = 0;
+					BleAskData.RealLen = 1;
+					BleAskData.DataPtr = DataTemp;
+					xQueueSend(Uart2ToCanDataHandle,&BleAskData,0);
 				}
 			}
 			break;
@@ -159,6 +165,15 @@ void BleTask(void *pvParameters)
 					bleWorkState = 0;
 					BleDisconnectFlg = 1;
 					BleConnectFlg = 0;
+					if(BleCurrentRole == 0)//从机断开连接,主动给ebc发送一帧信息
+					{
+						uint8 DataTemp[8] = {0x00};
+						DataTemp[0] = 0x01;
+						DataTemp[1] = 0x02;
+						BleAskData.RealLen = 1;
+						BleAskData.DataPtr = DataTemp;
+						xQueueSend(Uart2ToCanDataHandle,&BleAskData,0);
+					}
 				}
 				else
 				{

+ 16 - 4
src/AppTaskCan.c

@@ -66,16 +66,28 @@ static void CanDataAsk(QueueDataTrans_Type AskData)
 	Can_Msg_Type CanTxMsg;
 	uint16 CrcGet = 0x00;
 	uint16 CrcCal = 0xff;
-	CrcGet = (*(AskData.DataPtr + AskData.RealLen - 2)<<0 )| (*(AskData.DataPtr + AskData.RealLen - 1)<<8 );
-	CrcCal = CRC16_Modbus(AskData.DataPtr,AskData.RealLen-2);
-	if(CrcGet==CrcCal&&AskData.RealLen==10)
+	if(AskData.RealLen==10)
 	{
-		CanTxMsg.id = 0X1CEF0000;
+		CrcGet = (*(AskData.DataPtr + AskData.RealLen - 2)<<0 )| (*(AskData.DataPtr + AskData.RealLen - 1)<<8 );
+		CrcCal = CRC16_Modbus(AskData.DataPtr,AskData.RealLen-2);
+		if(CrcGet==CrcCal)
+		{
+			CanTxMsg.id = 0X1CEF0000;
+			CanTxMsg.idFrame = CAN_EXTENDED_ID_TYPE;
+			CanTxMsg.sdu = AskData.DataPtr;
+			CanTxMsg.length = 8;
+			CanIf_SendMessage(0, CanTxMsg);
+		}
+	}
+	else if(AskData.RealLen==1)//从机连接与断开,主动给EBC发送一帧状态
+	{
+		CanTxMsg.id = 0X1CEF0002;
 		CanTxMsg.idFrame = CAN_EXTENDED_ID_TYPE;
 		CanTxMsg.sdu = AskData.DataPtr;
 		CanTxMsg.length = 8;
 		CanIf_SendMessage(0, CanTxMsg);
 	}
+
 	if(AskData.DataPtr)
 	{
 		free(AskData.DataPtr);