拆分按摩为坐垫按摩和靠背按摩
This commit is contained in:
parent
d6f2305dd3
commit
8e974b6d7e
5
cva_asw_m0146/.vscode/settings.json
vendored
5
cva_asw_m0146/.vscode/settings.json
vendored
@ -56,5 +56,8 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"Codegeex.CompletionDelay": 0.5,
|
"Codegeex.CompletionDelay": 0.5,
|
||||||
"Codegeex.RepoIndex": true
|
"Codegeex.RepoIndex": true,
|
||||||
|
"cSpell.words": [
|
||||||
|
"canmatrix"
|
||||||
|
]
|
||||||
}
|
}
|
@ -25,7 +25,7 @@ if not "%~1" == "" goto debugFile
|
|||||||
|
|
||||||
@echo on
|
@echo on
|
||||||
|
|
||||||
"C:\Program Files\IAR Systems\Embedded Workbench 9.2\common\bin\cspybat" -f "C:\Users\sunbeam\Desktop\work\RP-01\RP-01\cva_asw_m0146\settings\cva_asw_m0146.Debug.general.xcl" --backend -f "C:\Users\sunbeam\Desktop\work\RP-01\RP-01\cva_asw_m0146\settings\cva_asw_m0146.Debug.driver.xcl"
|
"D:\Program Files\IAR Systems\Embedded Workbench 9.2\common\bin\cspybat" -f "F:\FCBproject\DMK-RP-01\RP-01\cva_asw_m0146\settings\cva_asw_m0146.Debug.general.xcl" --backend -f "F:\FCBproject\DMK-RP-01\RP-01\cva_asw_m0146\settings\cva_asw_m0146.Debug.driver.xcl"
|
||||||
|
|
||||||
@echo off
|
@echo off
|
||||||
goto end
|
goto end
|
||||||
@ -34,7 +34,7 @@ goto end
|
|||||||
|
|
||||||
@echo on
|
@echo on
|
||||||
|
|
||||||
"C:\Program Files\IAR Systems\Embedded Workbench 9.2\common\bin\cspybat" -f "C:\Users\sunbeam\Desktop\work\RP-01\RP-01\cva_asw_m0146\settings\cva_asw_m0146.Debug.general.xcl" "--debug_file=%~1" --backend -f "C:\Users\sunbeam\Desktop\work\RP-01\RP-01\cva_asw_m0146\settings\cva_asw_m0146.Debug.driver.xcl"
|
"D:\Program Files\IAR Systems\Embedded Workbench 9.2\common\bin\cspybat" -f "F:\FCBproject\DMK-RP-01\RP-01\cva_asw_m0146\settings\cva_asw_m0146.Debug.general.xcl" "--debug_file=%~1" --backend -f "F:\FCBproject\DMK-RP-01\RP-01\cva_asw_m0146\settings\cva_asw_m0146.Debug.driver.xcl"
|
||||||
|
|
||||||
@echo off
|
@echo off
|
||||||
:end
|
:end
|
@ -23,9 +23,9 @@
|
|||||||
|
|
||||||
if ($debugfile -eq "")
|
if ($debugfile -eq "")
|
||||||
{
|
{
|
||||||
& "C:\Program Files\IAR Systems\Embedded Workbench 9.2\common\bin\cspybat" -f "C:\Users\sunbeam\Desktop\work\RP-01\RP-01\cva_asw_m0146\settings\cva_asw_m0146.Debug.general.xcl" --backend -f "C:\Users\sunbeam\Desktop\work\RP-01\RP-01\cva_asw_m0146\settings\cva_asw_m0146.Debug.driver.xcl"
|
& "D:\Program Files\IAR Systems\Embedded Workbench 9.2\common\bin\cspybat" -f "F:\FCBproject\DMK-RP-01\RP-01\cva_asw_m0146\settings\cva_asw_m0146.Debug.general.xcl" --backend -f "F:\FCBproject\DMK-RP-01\RP-01\cva_asw_m0146\settings\cva_asw_m0146.Debug.driver.xcl"
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
& "C:\Program Files\IAR Systems\Embedded Workbench 9.2\common\bin\cspybat" -f "C:\Users\sunbeam\Desktop\work\RP-01\RP-01\cva_asw_m0146\settings\cva_asw_m0146.Debug.general.xcl" --debug_file=$debugfile --backend -f "C:\Users\sunbeam\Desktop\work\RP-01\RP-01\cva_asw_m0146\settings\cva_asw_m0146.Debug.driver.xcl"
|
& "D:\Program Files\IAR Systems\Embedded Workbench 9.2\common\bin\cspybat" -f "F:\FCBproject\DMK-RP-01\RP-01\cva_asw_m0146\settings\cva_asw_m0146.Debug.general.xcl" --debug_file=$debugfile --backend -f "F:\FCBproject\DMK-RP-01\RP-01\cva_asw_m0146\settings\cva_asw_m0146.Debug.driver.xcl"
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
"-p"
|
"-p"
|
||||||
|
|
||||||
"C:\Program Files\IAR Systems\Embedded Workbench 9.2\arm\config\debugger\CVAChip\CVM0144.ddf"
|
"D:\Program Files\IAR Systems\Embedded Workbench 9.2\arm\config\debugger\CVAChip\CVM0144.ddf"
|
||||||
|
|
||||||
"--semihosting"
|
"--semihosting"
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
"C:\Program Files\IAR Systems\Embedded Workbench 9.2\arm\bin\armPROC.dll"
|
"D:\Program Files\IAR Systems\Embedded Workbench 9.2\arm\bin\armPROC.dll"
|
||||||
|
|
||||||
"C:\Program Files\IAR Systems\Embedded Workbench 9.2\arm\bin\armJLINK.dll"
|
"D:\Program Files\IAR Systems\Embedded Workbench 9.2\arm\bin\armJLINK.dll"
|
||||||
|
|
||||||
"C:\Users\sunbeam\Desktop\work\RP-01\RP-01\cva_asw_m0146\Debug_FLASH\Exe\app_m146.out"
|
"F:\FCBproject\DMK-RP-01\RP-01\cva_asw_m0146\Debug_FLASH\Exe\app_m146.out"
|
||||||
|
|
||||||
--plugin="C:\Program Files\IAR Systems\Embedded Workbench 9.2\arm\bin\armbat.dll"
|
--plugin="D:\Program Files\IAR Systems\Embedded Workbench 9.2\arm\bin\armbat.dll"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ typedef enum
|
|||||||
* the globals
|
* the globals
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
SM_CTRL_Data_Type SM_CTRL_data;
|
SM_CTRL_Data_Type SM_CTRL_data;
|
||||||
static SM_state_Type SM_state,SM_last_state;
|
static SM_state_Type SM_KB_state,SM_KB_last_state,SM_ZD_state,SM_ZD_last_state;
|
||||||
static uint8_t ZD_DATA_L[3]={0},ZD_DATA_R[3]={0},KB_DATA_L[5]={0},KB_DATA_R[5]={0};
|
static uint8_t ZD_DATA_L[3]={0},ZD_DATA_R[3]={0},KB_DATA_L[5]={0},KB_DATA_R[5]={0};
|
||||||
static uint8_t SM_TJ_Req[4]={0};
|
static uint8_t SM_TJ_Req[4]={0};
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
@ -140,31 +140,124 @@ static void SM_OFF_task(void)
|
|||||||
SM_CTRL_data.msg.ZD_R_PLUS = (SM_TJ_Req[SM_TJ_ZD_R]==SM_TJ_ACT_Plus?1:0);
|
SM_CTRL_data.msg.ZD_R_PLUS = (SM_TJ_Req[SM_TJ_ZD_R]==SM_TJ_ACT_Plus?1:0);
|
||||||
SM_CTRL_data.msg.ZD_R_MINUS = (SM_TJ_Req[SM_TJ_ZD_R]==SM_TJ_ACT_Minus?1:0);
|
SM_CTRL_data.msg.ZD_R_MINUS = (SM_TJ_Req[SM_TJ_ZD_R]==SM_TJ_ACT_Minus?1:0);
|
||||||
|
|
||||||
|
scm_canmatrix_tx.SCM_STATE.ZY_MSSG_STATE_ZD = 0;
|
||||||
|
scm_canmatrix_tx.SCM_STATE.ZY_MSSG_STATE = 0;
|
||||||
|
|
||||||
UpdateLinMsg(&SM_CTRL_data);
|
UpdateLinMsg(&SM_CTRL_data);
|
||||||
SM_last_state=SM_state;
|
SM_KB_last_state=SM_KB_state;
|
||||||
}
|
}
|
||||||
static void SM_RUN1_task(void)//50ms
|
static void SM_KB_RUN1_task(void)//50ms
|
||||||
{
|
{
|
||||||
static uint16_t run_counter;
|
static uint16_t run_counter;
|
||||||
static uint8_t runstate,zd_run_state,kb_run_state;
|
static uint8_t kb_run_state;
|
||||||
|
|
||||||
if(SM_last_state!=SM_state)
|
if(SM_KB_last_state!=SM_KB_state)
|
||||||
{
|
{
|
||||||
runstate = 0;
|
|
||||||
run_counter = 0;
|
run_counter = 0;
|
||||||
SM_last_state=SM_state;
|
SM_KB_last_state=SM_KB_state;
|
||||||
zd_run_state = 0;
|
|
||||||
kb_run_state = 0;
|
kb_run_state = 0;
|
||||||
}
|
}
|
||||||
run_counter++;
|
run_counter++;
|
||||||
if (run_counter >= 100)
|
if (run_counter >= 100)
|
||||||
{
|
{
|
||||||
run_counter = 0;
|
run_counter = 0;
|
||||||
zd_run_state++;
|
|
||||||
if (zd_run_state >= 3)
|
kb_run_state++;
|
||||||
|
if (kb_run_state >= 4)
|
||||||
{
|
{
|
||||||
zd_run_state = 0;
|
kb_run_state = 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < 5; i++)
|
||||||
|
{
|
||||||
|
KB_DATA_L[i] = 0;
|
||||||
|
KB_DATA_R[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (kb_run_state)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
KB_DATA_L[2] = 1;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
KB_DATA_R[2] = 1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
KB_DATA_R[3] = 1;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
KB_DATA_L[3] = 1;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
kb_run_state = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
static void SM_KB_RUN2_task(void)
|
||||||
|
{
|
||||||
|
static uint16_t run_counter;
|
||||||
|
static uint8_t kb_run_state;
|
||||||
|
|
||||||
|
if(SM_KB_last_state!=SM_KB_state)
|
||||||
|
{
|
||||||
|
run_counter = 0;
|
||||||
|
SM_KB_last_state=SM_KB_state;
|
||||||
|
kb_run_state = 0;
|
||||||
|
}
|
||||||
|
run_counter++;
|
||||||
|
if (run_counter >= 100)
|
||||||
|
{
|
||||||
|
run_counter = 0;
|
||||||
|
|
||||||
|
kb_run_state++;
|
||||||
|
if (kb_run_state >= 4)
|
||||||
|
{
|
||||||
|
kb_run_state = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < 5; i++)
|
||||||
|
{
|
||||||
|
KB_DATA_L[i] = 0;
|
||||||
|
KB_DATA_R[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (kb_run_state)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
KB_DATA_L[0] = 1;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
KB_DATA_R[0] = 1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
KB_DATA_R[1] = 1;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
KB_DATA_L[1] = 1;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
kb_run_state = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
static void SM_KB_RUN3_task(void)
|
||||||
|
{
|
||||||
|
static uint16_t run_counter;
|
||||||
|
static uint8_t kb_run_state;
|
||||||
|
|
||||||
|
if(SM_KB_last_state!=SM_KB_state)
|
||||||
|
{
|
||||||
|
run_counter = 0;
|
||||||
|
SM_KB_last_state=SM_KB_state;
|
||||||
|
kb_run_state = 0;
|
||||||
|
}
|
||||||
|
run_counter++;
|
||||||
|
if (run_counter >= 100)
|
||||||
|
{
|
||||||
|
run_counter = 0;
|
||||||
|
|
||||||
kb_run_state++;
|
kb_run_state++;
|
||||||
if (kb_run_state >= 5)
|
if (kb_run_state >= 5)
|
||||||
@ -172,19 +265,7 @@ static void SM_RUN1_task(void)//50ms
|
|||||||
kb_run_state = 0;
|
kb_run_state = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (uint8_t i = 0; i < 3; i++)
|
|
||||||
{
|
|
||||||
if (i == zd_run_state)
|
|
||||||
{
|
|
||||||
ZD_DATA_L[i] = 1;
|
|
||||||
ZD_DATA_R[i] = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ZD_DATA_L[i] = 0;
|
|
||||||
ZD_DATA_R[i] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (uint8_t i = 0; i < 5; i++)
|
for (uint8_t i = 0; i < 5; i++)
|
||||||
{
|
{
|
||||||
if (i == kb_run_state)
|
if (i == kb_run_state)
|
||||||
@ -198,6 +279,160 @@ static void SM_RUN1_task(void)//50ms
|
|||||||
KB_DATA_R[i] = 0;
|
KB_DATA_R[i] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (kb_run_state)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
KB_DATA_L[0] = 1;
|
||||||
|
KB_DATA_R[0] = 1;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
KB_DATA_L[1] = 1;
|
||||||
|
KB_DATA_R[1] = 1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
KB_DATA_L[2] = 1;
|
||||||
|
KB_DATA_R[2] = 1;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
KB_DATA_L[3] = 1;
|
||||||
|
KB_DATA_R[3] = 1;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
KB_DATA_L[4] = 1;
|
||||||
|
KB_DATA_R[4] = 1;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
KB_DATA_L[3] = 1;
|
||||||
|
KB_DATA_R[3] = 1;
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
KB_DATA_L[2] = 1;
|
||||||
|
KB_DATA_R[2] = 1;
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
KB_DATA_L[1] = 1;
|
||||||
|
KB_DATA_R[1] = 1;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SeatMassage_Init(void)
|
||||||
|
{
|
||||||
|
for (uint8_t i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
SM_CTRL_data.rawdata[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateLinMsg(&SM_CTRL_data);
|
||||||
|
SM_KB_state = SM_OFF;
|
||||||
|
SM_ZD_state = SM_OFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void SeatMassageKB_task(void)
|
||||||
|
{
|
||||||
|
switch (SM_KB_state)
|
||||||
|
{
|
||||||
|
case SM_RUN1:
|
||||||
|
SM_KB_RUN1_task();
|
||||||
|
break;
|
||||||
|
case SM_RUN2:
|
||||||
|
SM_KB_RUN2_task();
|
||||||
|
break;
|
||||||
|
case SM_RUN3:
|
||||||
|
SM_KB_RUN3_task();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
SM_KB_state = SM_OFF;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (SM_KB_state > SM_INIT && SM_KB_state < SM_STATE_NUM)
|
||||||
|
{
|
||||||
|
scm_canmatrix_tx.SCM_STATE.ZY_MSSG_STATE = SM_KB_state-1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
scm_canmatrix_tx.SCM_STATE.ZY_MSSG_STATE = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static void SM_ZD_RUN1_task(void)
|
||||||
|
{
|
||||||
|
static uint16_t run_counter;
|
||||||
|
static uint8_t zd_run_state;
|
||||||
|
|
||||||
|
if(SM_ZD_last_state!=SM_ZD_state)
|
||||||
|
{
|
||||||
|
run_counter = 0;
|
||||||
|
SM_ZD_last_state=SM_ZD_state;
|
||||||
|
zd_run_state = 0;
|
||||||
|
}
|
||||||
|
run_counter++;
|
||||||
|
if (run_counter >= 100)
|
||||||
|
{
|
||||||
|
run_counter = 0;
|
||||||
|
|
||||||
|
zd_run_state++;
|
||||||
|
if (zd_run_state >= 4)
|
||||||
|
{
|
||||||
|
zd_run_state = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (uint8_t i = 0; i < 3; i++)
|
||||||
|
{
|
||||||
|
ZD_DATA_L[i] = 0;
|
||||||
|
ZD_DATA_R[i] = 0;
|
||||||
|
}
|
||||||
|
switch (zd_run_state)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
ZD_DATA_L[0] = 1;
|
||||||
|
ZD_DATA_R[0] = 1;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
ZD_DATA_L[1] = 1;
|
||||||
|
ZD_DATA_R[1] = 1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
ZD_DATA_L[2] = 1;
|
||||||
|
ZD_DATA_R[2] = 1;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
ZD_DATA_L[1] = 1;
|
||||||
|
ZD_DATA_R[1] = 1;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void SeatMassageZD_task(void)
|
||||||
|
{
|
||||||
|
switch (SM_ZD_state)
|
||||||
|
{
|
||||||
|
case SM_RUN1:
|
||||||
|
SM_ZD_RUN1_task();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
SM_ZD_state = SM_OFF;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (SM_ZD_state > SM_INIT && SM_ZD_state < SM_STATE_NUM)
|
||||||
|
{
|
||||||
|
scm_canmatrix_tx.SCM_STATE.ZY_MSSG_STATE_ZD = SM_ZD_state-1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
scm_canmatrix_tx.SCM_STATE.ZY_MSSG_STATE_ZD = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static void LinSendSeatMassage_task(void)
|
||||||
|
{
|
||||||
#if 1
|
#if 1
|
||||||
SM_CTRL_data.msg.ZD_L0 = ZD_DATA_L[0];
|
SM_CTRL_data.msg.ZD_L0 = ZD_DATA_L[0];
|
||||||
SM_CTRL_data.msg.ZD_L1 = ZD_DATA_L[1];
|
SM_CTRL_data.msg.ZD_L1 = ZD_DATA_L[1];
|
||||||
@ -205,6 +440,9 @@ static void SM_RUN1_task(void)//50ms
|
|||||||
SM_CTRL_data.msg.ZD_R0 = ZD_DATA_R[0];
|
SM_CTRL_data.msg.ZD_R0 = ZD_DATA_R[0];
|
||||||
SM_CTRL_data.msg.ZD_R1 = ZD_DATA_R[1];
|
SM_CTRL_data.msg.ZD_R1 = ZD_DATA_R[1];
|
||||||
SM_CTRL_data.msg.ZD_R2 = ZD_DATA_R[2];
|
SM_CTRL_data.msg.ZD_R2 = ZD_DATA_R[2];
|
||||||
|
SM_CTRL_data.msg.ZD_V2_12V = 1;
|
||||||
|
#else
|
||||||
|
SM_CTRL_data.msg.ZD_V2_12V = 0;
|
||||||
#endif
|
#endif
|
||||||
#if 1
|
#if 1
|
||||||
SM_CTRL_data.msg.KB_L0 = KB_DATA_L[0];
|
SM_CTRL_data.msg.KB_L0 = KB_DATA_L[0];
|
||||||
@ -218,97 +456,62 @@ static void SM_RUN1_task(void)//50ms
|
|||||||
SM_CTRL_data.msg.KB_R3 = KB_DATA_R[3];
|
SM_CTRL_data.msg.KB_R3 = KB_DATA_R[3];
|
||||||
SM_CTRL_data.msg.KB_R4 = KB_DATA_R[4];
|
SM_CTRL_data.msg.KB_R4 = KB_DATA_R[4];
|
||||||
SM_CTRL_data.msg.KB_V2_12V = 1;
|
SM_CTRL_data.msg.KB_V2_12V = 1;
|
||||||
|
#else
|
||||||
|
SM_CTRL_data.msg.KB_V2_12V = 0;
|
||||||
#endif
|
#endif
|
||||||
SM_CTRL_data.msg.ZD_V2_12V = 1;
|
|
||||||
SM_CTRL_data.msg.ZD_AP = 1;
|
SM_CTRL_data.msg.ZD_AP = (SM_KB_state>SM_OFF&&SM_ZD_state>SM_OFF)?1:0;
|
||||||
|
|
||||||
UpdateLinMsg(&SM_CTRL_data);
|
UpdateLinMsg(&SM_CTRL_data);
|
||||||
}
|
}
|
||||||
static void SM_RUN2_task(void)
|
|
||||||
{
|
|
||||||
static uint16_t run_counter;
|
|
||||||
static uint8_t runstate;
|
|
||||||
//SM_CTRL_data.msg.V2_12V = 1;
|
|
||||||
//SM_CTRL_data.msg.AP = 1;
|
|
||||||
UpdateLinMsg(&SM_CTRL_data);
|
|
||||||
}
|
|
||||||
static void SM_RUN3_task(void)
|
|
||||||
{
|
|
||||||
static uint16_t run_counter;
|
|
||||||
static uint8_t runstate;
|
|
||||||
//SM_CTRL_data.msg.V2_12V = 1;
|
|
||||||
//SM_CTRL_data.msg.AP = 1;
|
|
||||||
UpdateLinMsg(&SM_CTRL_data);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SeatMassage_Init(void)
|
void SeatMassage_Maintask(void)//50ms task
|
||||||
{
|
{
|
||||||
for (uint8_t i = 0; i < 4; i++)
|
if (SM_KB_state == SM_OFF && SM_ZD_state == SM_OFF)
|
||||||
{
|
{
|
||||||
SM_CTRL_data.rawdata[i] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
UpdateLinMsg(&SM_CTRL_data);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void SeatMassage_task(void)
|
|
||||||
{
|
|
||||||
switch (SM_state)
|
|
||||||
{
|
|
||||||
case SM_INIT:
|
|
||||||
SM_state = SM_OFF;
|
|
||||||
break;
|
|
||||||
case SM_OFF:
|
|
||||||
SM_OFF_task();
|
SM_OFF_task();
|
||||||
break;
|
|
||||||
case SM_RUN1:
|
|
||||||
SM_RUN1_task();
|
|
||||||
break;
|
|
||||||
case SM_RUN2:
|
|
||||||
SM_RUN2_task();
|
|
||||||
break;
|
|
||||||
case SM_RUN3:
|
|
||||||
SM_RUN3_task();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
SM_state = SM_OFF;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (SM_state > SM_INIT && SM_state < SM_STATE_NUM)
|
|
||||||
{
|
|
||||||
scm_canmatrix_tx.SCM_STATE.ZY_MSSG_STATE = SM_state-1;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
scm_canmatrix_tx.SCM_STATE.ZY_MSSG_STATE = 0;
|
SeatMassageKB_task();
|
||||||
|
SeatMassageZD_task();
|
||||||
|
LinSendSeatMassage_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SeatMassage_ReqRun(uint8_t state)
|
void SeatMassage_ReqRun(uint8_t state)
|
||||||
{
|
{
|
||||||
if (state < 3)
|
if (state < 3)
|
||||||
{
|
{
|
||||||
SM_state = SM_RUN1 + state;
|
SM_KB_state = SM_RUN1 + state;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SeatMassage_ReqOFF(void)
|
void SeatMassage_ReqOFF(void)
|
||||||
{
|
{
|
||||||
SM_state = SM_OFF;
|
SM_KB_state = SM_OFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SeatMassage_ReqNext(void)
|
void SeatMassageKB_ReqNext(void)
|
||||||
{
|
{
|
||||||
if (SM_state == SM_OFF)
|
SM_KB_state++;
|
||||||
|
if (SM_KB_state > SM_RUN3)
|
||||||
{
|
{
|
||||||
SM_state = SM_RUN1;
|
SM_KB_state = SM_OFF;
|
||||||
|
SM_KB_last_state = SM_KB_state;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void SeatMassageZD_ReqNext(void)
|
||||||
|
{
|
||||||
|
if (SM_ZD_state == SM_OFF)
|
||||||
|
{
|
||||||
|
SM_ZD_state = SM_RUN1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SM_state = SM_OFF;
|
SM_ZD_state = SM_OFF;
|
||||||
|
SM_ZD_last_state = SM_OFF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,8 +44,9 @@ typedef enum
|
|||||||
void SeatMassage_Init(void);
|
void SeatMassage_Init(void);
|
||||||
void SeatMassage_ReqOFF(void);
|
void SeatMassage_ReqOFF(void);
|
||||||
void SeatMassage_ReqRun(uint8_t state);
|
void SeatMassage_ReqRun(uint8_t state);
|
||||||
void SeatMassage_task(void);
|
void SeatMassage_Maintask(void);
|
||||||
void SeatMassage_ReqNext(void);
|
void SeatMassageKB_ReqNext(void);
|
||||||
|
void SeatMassageZD_ReqNext(void);
|
||||||
void SeatMassage_TJ_Req(SM_TJ_ITEM_Type item,SM_TJ_ACT_Type act);
|
void SeatMassage_TJ_Req(SM_TJ_ITEM_Type item,SM_TJ_ACT_Type act);
|
||||||
|
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ void appTask(void)
|
|||||||
SBC_WD_Trigger();
|
SBC_WD_Trigger();
|
||||||
WdgDrv_Refresh(&mcu.wdgDrv);
|
WdgDrv_Refresh(&mcu.wdgDrv);
|
||||||
PowerOnTask();
|
PowerOnTask();
|
||||||
SeatMassage_task();
|
SeatMassage_Maintask();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(gSystick1msCnt % 1000 == 0)
|
if(gSystick1msCnt % 1000 == 0)
|
||||||
|
@ -130,6 +130,8 @@ static uint8_t GetSigState(KEY_ID_type key_id)
|
|||||||
return scm_canmatrix_rx.Panel_Key.KEY_RESET;
|
return scm_canmatrix_rx.Panel_Key.KEY_RESET;
|
||||||
case KEY_SM:
|
case KEY_SM:
|
||||||
return scm_canmatrix_rx.Panel_Key.KEY_ZY_MSSG;
|
return scm_canmatrix_rx.Panel_Key.KEY_ZY_MSSG;
|
||||||
|
case KEY_SM_ZD:
|
||||||
|
return scm_canmatrix_rx.Panel_Key.KEY_ZY_MSSG_ZD;
|
||||||
case KEY_TJ_KB_U_PLUS:
|
case KEY_TJ_KB_U_PLUS:
|
||||||
return scm_canmatrix_rx.Panel_Key.KEY_TJ_KB_U_PLUS;
|
return scm_canmatrix_rx.Panel_Key.KEY_TJ_KB_U_PLUS;
|
||||||
case KEY_TJ_KB_U_MINUS:
|
case KEY_TJ_KB_U_MINUS:
|
||||||
@ -282,9 +284,15 @@ void KeyProTask(void)//5ms
|
|||||||
|
|
||||||
if (getKeyPressFlag(KEY_SM) == KEY_PRESSED)
|
if (getKeyPressFlag(KEY_SM) == KEY_PRESSED)
|
||||||
{
|
{
|
||||||
SeatMassage_ReqNext();
|
SeatMassageKB_ReqNext();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (getKeyPressFlag(KEY_SM_ZD) == KEY_PRESSED)
|
||||||
|
{
|
||||||
|
SeatMassageZD_ReqNext();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//座椅气垫调节
|
//座椅气垫调节
|
||||||
if (getKeyPressFlag(KEY_TJ_KB_U_PLUS) == KEY_PRESSED)
|
if (getKeyPressFlag(KEY_TJ_KB_U_PLUS) == KEY_PRESSED)
|
||||||
{
|
{
|
||||||
|
@ -27,6 +27,7 @@ typedef enum
|
|||||||
KEY_MEMORY_3,
|
KEY_MEMORY_3,
|
||||||
KEY_RESET,
|
KEY_RESET,
|
||||||
KEY_SM,//seat massage
|
KEY_SM,//seat massage
|
||||||
|
KEY_SM_ZD,//坐垫按摩
|
||||||
KEY_TJ_KB_U_PLUS,
|
KEY_TJ_KB_U_PLUS,
|
||||||
KEY_TJ_KB_U_MINUS,
|
KEY_TJ_KB_U_MINUS,
|
||||||
KEY_TJ_KB_D_PLUS,
|
KEY_TJ_KB_D_PLUS,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user