📄 task_messagetodata.c
字号:
#include "Includes.h"
#include "PortAB.h"
#include "Types.h"
#include "J1939.h"
#include "JCanCntrl.h"
#include "JTimerDef.h"
#include "JTarget.h"
#include "JBuffer.h"
#include "J1939PGN.h"
#include "J1939TRA.h"
#include "J1939CFG.h"
#include "J1939EXT.h"
#include "Task_App.h"
#include "Graphics.h"
static APP_ENGINE_PARAMETER oEngParam;
void App_TriggerEngSpeed(unsigned int aValue);
void App_TriggerEngOilPress(unsigned int aValue);
void App_TriggerEngTemprature(unsigned int aValue);
static OS_STK Task_MessageToData_STK[OS_STK_DEFAULT_SIZE];
#define Task_MessageToData_PRIO 0x11 //priority
void Task_MessageToData(void *pdata)
{
unsigned char i;
unsigned short TmpSpeed,TmpOilPress,TmpTemperature;
#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
OS_CPU_SR cpu_sr;
cpu_sr = 0; /* Prevent compiler warning */
#endif
oEngParam.oEngineSpeed=0;
while(1){
OS_ENTER_CRITICAL();
TmpSpeed=EngSpeed;
OS_EXIT_CRITICAL();
if(oEngParam.oEngineSpeed!=TmpSpeed){
//触发发动机转速表
App_TriggerEngSpeed(TmpSpeed);
oEngParam.oEngineSpeed=TmpSpeed;
}
TmpOilPress=EngOilPres_p;
TmpOilPress=100;
if(oEngParam.oEngineFuel!=TmpOilPress){
//触发发动机燃油压力表
App_TriggerEngOilPress(TmpOilPress);
oEngParam.oEngineFuel=TmpOilPress;
}
TmpTemperature=EngCoolant_t;
if(oEngParam.oEngineTemperature!=TmpTemperature){
//触发发动机冷却液温度表
App_TriggerEngTemprature(TmpTemperature);
oEngParam.oEngineTemperature=TmpTemperature;
}
OSTimeDly(10);
}/* while(1) */
}/*EndTask*/
void Task_MessageToData_Create(void)
{
#if OS_TASK_CREATE_EXT_EN==1
OSTaskCreateExt(Task_MessageToData,
(void*)0,
&Task_MessageToData_STK[OS_STK_DEFAULT_SIZE-1],
Task_MessageToData_PRIO ,
Task_MessageToData_PRIO ,
&Task_MessageToData_STK[0],
OS_STK_DEFAULT_SIZE,
(void*) 0,
OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);
#else
OSTaskCreate(Task_MessageToData,
(void*)0,
&Task_MessageToData_STK[OS_STK_DEFAULT_SIZE-1],
Task_MessageToData_PRIO);
#endif
}
//F004
void App_TriggerEngSpeed(unsigned int aValue){
unsigned int tmpSpeed;
tmpSpeed=aValue/8;
vLcd_ClearRect(530,190,610,230,0x22);
vLcd_GuageValue(350,225,0xf0,0x8e,tmpSpeed);
}
//FEEF
void App_TriggerEngOilPress(unsigned int aValue){
unsigned int tmpOilPress;
tmpOilPress=aValue*4;
if(tmpOilPress<=1000)
vLcd_OilGuageTValue(400,40,0xf0,0x8e,tmpOilPress,1000);
}
//FEEE
void App_TriggerEngTemprature(unsigned int aValue){
unsigned int tmpTemp;
tmpTemp=aValue-40;
vLcd_WaterGuageTValue(560,40,0xf0,0x8e,tmpTemp);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -