提交 2e38ebd1 作者: wysheng

TCU升级函数

上级 067175db
......@@ -92,7 +92,7 @@
#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )
#define configMAX_PRIORITIES ( 7 )
#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 configUSE_TRACE_FACILITY 1
#define configUSE_16_BIT_TICKS 0
......
......@@ -90,9 +90,9 @@ void TCURxIrqHandle(void)
Frame.Pgn += 0x010000;
}
switch (Frame.Pgn)
//switch (Frame.Pgn)
{
case eCmd_start: // 充电启动帧
/*case eCmd_start: // 充电启动帧
case eCmd_stop: // 充电停止帧
case eCmd_time: // 对时帧
case eCmd_versi: // 版本校验帧
......@@ -113,7 +113,7 @@ void TCURxIrqHandle(void)
case eCmd_DCTCUMeasu: // 计费单元遥测帧
///////////心跳帧///////////
case eCmd_TcuHeart: // 计费单元心跳
case eCmd_TCUErroComm: // 计费单元错误帧
case eCmd_TCUErroComm: // 计费单元错误帧*/
Frame.Prio = Id1939.Disp.Prio;
Frame.DP = Id1939.Disp.DP;
Frame.PF = Id1939.Disp.PF;
......@@ -143,10 +143,10 @@ void TCURxIrqHandle(void)
if (pdTRUE == xQueueSendFromISR(TCUMsg_B, &Frame, &taskWoken))
portEND_SWITCHING_ISR(taskWoken);
}*/
break;
//break;
default:
break;
//default:
// break;
}
}
......@@ -188,9 +188,9 @@ void TCURxIrqHandle(void)
Frame.Pgn += 0x010000;
}
switch (Frame.Pgn)
//switch (Frame.Pgn)
{
case eCmd_start: // 充电启动帧
/*case eCmd_start: // 充电启动帧
case eCmd_stop: // 充电停止帧
case eCmd_time: // 对时帧
case eCmd_versi: //版本校验帧
......@@ -210,7 +210,7 @@ void TCURxIrqHandle(void)
///////////数据帧/直流////////////
///////////心跳帧///////////
case eCmd_TcuHeart: // 计费单元心跳
case eCmd_TCUErroComm: // 计费单元错误帧
case eCmd_TCUErroComm: // 计费单元错误帧 */
Frame.Prio = Id1939.Disp.Prio;
Frame.DP = Id1939.Disp.DP;
Frame.PF = Id1939.Disp.PF;
......@@ -240,10 +240,10 @@ void TCURxIrqHandle(void)
if (pdTRUE == xQueueSendFromISR(TCUMsg_B, &Frame, &taskWoken))
portEND_SWITCHING_ISR(taskWoken);
}*/
break;
//break;
default:
break;
//default:
// break;
}
......
......@@ -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 @@
void TCUStartDownloadHandle(StructTCUSend * pPgnRecv);
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__*/
......@@ -120,12 +120,6 @@ void TCURecvProcess(void)
case eCmd_TCUErroComm: // 计费单元错误帧
TCUErroCommAnalysis(&pPgnRecv);
break;
case eCmd_upDateHeart:
TCUUpDateHeartHandle(&pPgnRecv);
break;
case eCmd_startDownload:
TCUStartDownloadHandle(&pPgnRecv);
break;
case eCmd_valueSet:
TCUValueSetHandle(&pPgnRecv);
break;
......@@ -135,6 +129,30 @@ void TCURecvProcess(void)
case eCmd_debugInfo:
TCUDebugInfoHandle(&pPgnRecv);
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:
break;
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论