提交 2e38ebd1 作者: wysheng

TCU升级函数

上级 067175db
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
#define configTICK_RATE_HZ ( ( TickType_t ) 1000 ) #define configTICK_RATE_HZ ( ( TickType_t ) 1000 )
#define configMAX_PRIORITIES ( 7 ) #define configMAX_PRIORITIES ( 7 )
#define configMINIMAL_STACK_SIZE ( ( uint16_t ) 128 ) #define configMINIMAL_STACK_SIZE ( ( uint16_t ) 128 )
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 20 * 1024 ) ) #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 24 * 1024 ) )
#define configMAX_TASK_NAME_LEN ( 16 ) #define configMAX_TASK_NAME_LEN ( 16 )
#define configUSE_TRACE_FACILITY 1 #define configUSE_TRACE_FACILITY 1
#define configUSE_16_BIT_TICKS 0 #define configUSE_16_BIT_TICKS 0
......
...@@ -90,9 +90,9 @@ void TCURxIrqHandle(void) ...@@ -90,9 +90,9 @@ void TCURxIrqHandle(void)
Frame.Pgn += 0x010000; Frame.Pgn += 0x010000;
} }
switch (Frame.Pgn) //switch (Frame.Pgn)
{ {
case eCmd_start: // 充电启动帧 /*case eCmd_start: // 充电启动帧
case eCmd_stop: // 充电停止帧 case eCmd_stop: // 充电停止帧
case eCmd_time: // 对时帧 case eCmd_time: // 对时帧
case eCmd_versi: // 版本校验帧 case eCmd_versi: // 版本校验帧
...@@ -113,7 +113,7 @@ void TCURxIrqHandle(void) ...@@ -113,7 +113,7 @@ void TCURxIrqHandle(void)
case eCmd_DCTCUMeasu: // 计费单元遥测帧 case eCmd_DCTCUMeasu: // 计费单元遥测帧
///////////心跳帧/////////// ///////////心跳帧///////////
case eCmd_TcuHeart: // 计费单元心跳 case eCmd_TcuHeart: // 计费单元心跳
case eCmd_TCUErroComm: // 计费单元错误帧 case eCmd_TCUErroComm: // 计费单元错误帧*/
Frame.Prio = Id1939.Disp.Prio; Frame.Prio = Id1939.Disp.Prio;
Frame.DP = Id1939.Disp.DP; Frame.DP = Id1939.Disp.DP;
Frame.PF = Id1939.Disp.PF; Frame.PF = Id1939.Disp.PF;
...@@ -143,10 +143,10 @@ void TCURxIrqHandle(void) ...@@ -143,10 +143,10 @@ void TCURxIrqHandle(void)
if (pdTRUE == xQueueSendFromISR(TCUMsg_B, &Frame, &taskWoken)) if (pdTRUE == xQueueSendFromISR(TCUMsg_B, &Frame, &taskWoken))
portEND_SWITCHING_ISR(taskWoken); portEND_SWITCHING_ISR(taskWoken);
}*/ }*/
break; //break;
default: //default:
break; // break;
} }
} }
...@@ -188,9 +188,9 @@ void TCURxIrqHandle(void) ...@@ -188,9 +188,9 @@ void TCURxIrqHandle(void)
Frame.Pgn += 0x010000; Frame.Pgn += 0x010000;
} }
switch (Frame.Pgn) //switch (Frame.Pgn)
{ {
case eCmd_start: // 充电启动帧 /*case eCmd_start: // 充电启动帧
case eCmd_stop: // 充电停止帧 case eCmd_stop: // 充电停止帧
case eCmd_time: // 对时帧 case eCmd_time: // 对时帧
case eCmd_versi: //版本校验帧 case eCmd_versi: //版本校验帧
...@@ -210,7 +210,7 @@ void TCURxIrqHandle(void) ...@@ -210,7 +210,7 @@ void TCURxIrqHandle(void)
///////////数据帧/直流//////////// ///////////数据帧/直流////////////
///////////心跳帧/////////// ///////////心跳帧///////////
case eCmd_TcuHeart: // 计费单元心跳 case eCmd_TcuHeart: // 计费单元心跳
case eCmd_TCUErroComm: // 计费单元错误帧 case eCmd_TCUErroComm: // 计费单元错误帧 */
Frame.Prio = Id1939.Disp.Prio; Frame.Prio = Id1939.Disp.Prio;
Frame.DP = Id1939.Disp.DP; Frame.DP = Id1939.Disp.DP;
Frame.PF = Id1939.Disp.PF; Frame.PF = Id1939.Disp.PF;
...@@ -240,10 +240,10 @@ void TCURxIrqHandle(void) ...@@ -240,10 +240,10 @@ void TCURxIrqHandle(void)
if (pdTRUE == xQueueSendFromISR(TCUMsg_B, &Frame, &taskWoken)) if (pdTRUE == xQueueSendFromISR(TCUMsg_B, &Frame, &taskWoken))
portEND_SWITCHING_ISR(taskWoken); portEND_SWITCHING_ISR(taskWoken);
}*/ }*/
break; //break;
default: //default:
break; // break;
} }
......
...@@ -124,3 +124,81 @@ void StartDownloadAck(u8 ChgNum) ...@@ -124,3 +124,81 @@ void StartDownloadAck(u8 ChgNum)
} }
} }
void TCURequestIntervalHandle(StructTCUSend * pPgnRecv)
{
u8 addr = 0;
u32 ProgramSize = 0;
u8 Date[8] = {0};
if (pPgnRecv->DA == ChargerCont1939Addr)
{
if(pPgnRecv->Data[1] == 0x01 )//0x01 --- 直流充电控制器
{
addr = pPgnRecv->Data[2];
memcpy(&ProgramSize,&pPgnRecv->Data[3],4);
//ack1
Date[1] = 0x01;
Date[2] = addr;
Date[3] = 0x01;
TCUSinglePackSendMsg(Date, 8, eCmd_RequestIntervalAck1, 4, ChargerCont1939Addr);
//ack2
Date[3] = 0x02;
u32 tmp = 480 * 1024;
memcpy(&Date[4],&tmp,4);
TCUSinglePackSendMsg(Date, 8, eCmd_RequestIntervalAck2, 4, ChargerCont1939Addr);
}
}
}
void TCUStartPackageHandle(StructTCUSend * pPgnRecv)
{
u8 addr = 0;
u32 PackageAddr = 0;
u8 Date[8] = {0};
if (pPgnRecv->DA == ChargerCont1939Addr)
{
if(pPgnRecv->Data[1] == 0x01 )//0x01 --- 直流充电控制器
{
addr = pPgnRecv->Data[2];
memcpy(&PackageAddr,&pPgnRecv->Data[3],4);
Date[1] = 0x01;
Date[2] = addr;
memcpy(&Date[3],&PackageAddr,4);
TCUSinglePackSendMsg(Date, 8, eCmd_StartPackageAck, 4, ChargerCont1939Addr);
}
}
}
u8 TcuUpDateBuffer[1024];
void TCUSendDateHandle(StructTCUSend * pPgnRecv)
{
u8 addr = 0;
u16 index = 0;
if (pPgnRecv->DA == ChargerCont1939Addr)
{
if(pPgnRecv->Data[1] == 0x01 )//0x01 --- 直流充电控制器
{
addr = pPgnRecv->Data[2];
if(pPgnRecv->Data[3] == 0x00)
{
memset(TcuUpDateBuffer,0xff,1024);
}
index = 4*pPgnRecv->Data[3];
memcpy(&TcuUpDateBuffer[index],&(pPgnRecv->Data[4]),4);
}
}
}
void TCUCompletePackageHandle(StructTCUSend * pPgnRecv)
{
}
void TCUProgramVerificationHandle(StructTCUSend * pPgnRecv)
{
}
void TCUResetHandle(StructTCUSend * pPgnRecv)
{
}
...@@ -8,6 +8,12 @@ ...@@ -8,6 +8,12 @@
void TCUStartDownloadHandle(StructTCUSend * pPgnRecv); void TCUStartDownloadHandle(StructTCUSend * pPgnRecv);
void StartDownloadAck(u8 ChgNum); void StartDownloadAck(u8 ChgNum);
void TCURequestIntervalHandle(StructTCUSend * pPgnRecv);
void TCUStartPackageHandle(StructTCUSend * pPgnRecv);
void TCUSendDateHandle(StructTCUSend * pPgnRecv);
void TCUCompletePackageHandle(StructTCUSend * pPgnRecv);
void TCUProgramVerificationHandle(StructTCUSend * pPgnRecv);
void TCUResetHandle(StructTCUSend * pPgnRecv);
#endif /*__TCU_UPDATE_H__*/ #endif /*__TCU_UPDATE_H__*/
...@@ -120,12 +120,6 @@ void TCURecvProcess(void) ...@@ -120,12 +120,6 @@ void TCURecvProcess(void)
case eCmd_TCUErroComm: // 计费单元错误帧 case eCmd_TCUErroComm: // 计费单元错误帧
TCUErroCommAnalysis(&pPgnRecv); TCUErroCommAnalysis(&pPgnRecv);
break; break;
case eCmd_upDateHeart:
TCUUpDateHeartHandle(&pPgnRecv);
break;
case eCmd_startDownload:
TCUStartDownloadHandle(&pPgnRecv);
break;
case eCmd_valueSet: case eCmd_valueSet:
TCUValueSetHandle(&pPgnRecv); TCUValueSetHandle(&pPgnRecv);
break; break;
...@@ -135,6 +129,30 @@ void TCURecvProcess(void) ...@@ -135,6 +129,30 @@ void TCURecvProcess(void)
case eCmd_debugInfo: case eCmd_debugInfo:
TCUDebugInfoHandle(&pPgnRecv); TCUDebugInfoHandle(&pPgnRecv);
break; break;
case eCmd_upDateHeart:
TCUUpDateHeartHandle(&pPgnRecv);
break;
case eCmd_startDownload:
TCUStartDownloadHandle(&pPgnRecv);
break;
case eCmd_RequestInterval:
TCURequestIntervalHandle(&pPgnRecv);
break;
case eCmd_StartPackage:
TCUStartPackageHandle(&pPgnRecv);
break;
case eCmd_SendDate:
TCUSendDateHandle(&pPgnRecv);
break;
case eCmd_CompletePackage:
TCUCompletePackageHandle(&pPgnRecv);
break;
case eCmd_ProgramVerification:
TCUProgramVerificationHandle(&pPgnRecv);
break;
case eCmd_reset:
TCUResetHandle(&pPgnRecv);
break;
default: default:
break; break;
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论