Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
haoJin750TFT
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
时昊
haoJin750TFT
Commits
9153bef1
Commit
9153bef1
authored
Jul 29, 2024
by
郑萍
Browse files
Options
Browse Files
Download
Plain Diff
🎉
init:重新拉取新的dev,此版屏可亮
parents
97c8a6ae
e20aaf97
Changes
24
Show whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
1991 additions
and
1438 deletions
+1991
-1438
HaoJin750TFT.uvprojx
.../Project/Cmsemicon/BAT32A279/MDK_ARM/HaoJin750TFT.uvprojx
+10
-0
CAN_CH0_CAN_Communication_Matrix.c
...are/Source/Application/CAN_CH0_CAN_Communication_Matrix.c
+1
-1
CAN_CH0_CAN_Communication_Matrix.h
...are/Source/Application/CAN_CH0_CAN_Communication_Matrix.h
+1
-3
Can_User.c
Firmware/Source/Application/Can_User.c
+239
-185
Can_User.h
Firmware/Source/Application/Can_User.h
+33
-33
CommonInterface.c
Firmware/Source/Application/CommonInterface.c
+1
-1
GpioUser.h
Firmware/Source/Application/GpioUser.h
+2
-2
Components.h
Firmware/Source/Component/Components.h
+3
-0
Key_user.c
Firmware/Source/Component/Key/Key_user.c
+189
-83
Key_user.h
Firmware/Source/Component/Key/Key_user.h
+24
-28
Line_In_user.c
Firmware/Source/Component/Line_In/Line_In_user.c
+114
-21
Line_In_user.h
Firmware/Source/Component/Line_In/Line_In_user.h
+21
-9
Menu.h
Firmware/Source/Component/Menu/Menu.h
+69
-44
Menu_Interface.c
Firmware/Source/Component/Menu/Menu_Interface.c
+525
-527
PowerManag_user.c
Firmware/Source/Component/PowerManagement/PowerManag_user.c
+87
-85
Telltales_user.c
Firmware/Source/Component/Telltales/Telltales_user.c
+459
-334
Telltales_user.h
Firmware/Source/Component/Telltales/Telltales_user.h
+28
-23
rte_can.c
Firmware/Source/Device/Cmsemicon/BAT32A279/RTE/CAN/rte_can.c
+10
-10
RTE_CLOCK_Select_BAT32A279.c
...n/BAT32A279/RTE/CLOCK_Select/RTE_CLOCK_Select_BAT32A279.c
+11
-14
RTE_RTC.c
Firmware/Source/Device/Cmsemicon/BAT32A279/RTE/RTC/RTE_RTC.c
+1
-1
RTE_UART.c
...are/Source/Device/Cmsemicon/BAT32A279/RTE/UART/RTE_UART.c
+20
-20
Sys_Task_List.c
Firmware/Source/System/Sys_Task_List.c
+8
-14
haojin750TFT(1).DBF
Firmware/utility/Can_BDF/haojin750TFT(1).DBF
+70
-0
haojin750TFT(1).dbc
Firmware/utility/Can_BDF/haojin750TFT(1).dbc
+65
-0
No files found.
Firmware/Project/Cmsemicon/BAT32A279/MDK_ARM/HaoJin750TFT.uvprojx
View file @
9153bef1
...
...
@@ -623,6 +623,16 @@
<FileType>
5
</FileType>
<FilePath>
..\..\..\..\Source\Device\Cmsemicon\BAT32A279\RTE\RTE.h
</FilePath>
</File>
<File>
<FileName>
RTE_RTC.c
</FileName>
<FileType>
1
</FileType>
<FilePath>
..\..\..\..\Source\Device\Cmsemicon\BAT32A279\RTE\RTC\RTE_RTC.c
</FilePath>
</File>
<File>
<FileName>
RTE_RTC.h
</FileName>
<FileType>
5
</FileType>
<FilePath>
..\..\..\..\Source\Device\Cmsemicon\BAT32A279\RTE\RTC\RTE_RTC.h
</FilePath>
</File>
</Files>
</Group>
<Group>
...
...
Firmware/Source/Application/CAN_CH0_CAN_Communication_Matrix.c
View file @
9153bef1
...
...
@@ -6,7 +6,7 @@ st_CanMsgTxOp CAN_CH0_CanMsgTxOp;
const
st_CAN_SendAttribute
CAN_CH0_CANSendAttr
[
CAN_CH0_ID_SEND_TOTAL
]
=
{
{
0
}
{
0
}
};
const
st_CANMsgAttribute
CAN_CH0_CAN_MSG_CONST_ARRAY
[
CAN_CH0_ID_TOTAL_MAX
]
=
...
...
Firmware/Source/Application/CAN_CH0_CAN_Communication_Matrix.h
View file @
9153bef1
...
...
@@ -3,9 +3,7 @@
#include "Components.h"
#include "CAN_Signal\CAN_Lib.h"
extern
st_CanMsgOp
CAN_CH0_CanMsgOp
;
extern
st_CanMsgTxOp
CAN_CH0_CanMsgTxOp
;
typedef
enum
...
...
@@ -23,7 +21,7 @@ typedef enum
typedef
enum
{
TEST
,
TEST
,
CAN_CH0_ID_SEND_TOTAL
,
}
CAN_CH0_CAN_MSG_SEND_ID_t
;
...
...
Firmware/Source/Application/Can_User.c
View file @
9153bef1
// #include "Can_User.h"
// #include <string.h>
// #include "can.h"
// #include "RTE.h"
// #include "CAN_CH0_CAN_Communication_Matrix.h"
// __align(4)
// uint32_t pRXBuff[CAN_RX_MSG_Block * CAN_CH0_ID_TOTAL_MAX];
// uint32_t pTXBuff[CAN_TX_MSG_Block * CAN_CH0_ID_SEND_TOTAL];
// static RSCAN0BusoffMonitorStruct RSCAN0Busoff;
// void Can_Init(void)
// {
// can_config_st_t Can_Config;
// Can_Config.ch = CAN_CH_0;
// Can_Config.freq = CAN_500Kbps;
// Can_Config.MASK[0] = 0x001fffffU;
// Can_Config.MASK[1] = 0x000fffffU;
// Can_Config.MASK[2] = 0x1fffffffU;
// Can_Config.MASK[3] = 0x1fffffffU;
// Can_Config.rx_callback = Can_Rx_Cak;
// COM_CAN_Init();
// rte_can_init(&Can_Config);
// Can_Tx_Apply_Buff();
// Can_RX_Apply_Buff();
// RTE_GPIO_Set_Level(RTE_GPIO_PORT05_PIN02,RTE_GPIO_LEVEL_LOW);
// }
// /**
// * @brief 用于申请RXBUFF CAN0MSG00~CAN0MSG07
// *
// */
// void Can_RX_Apply_Buff(void)
// {
// CAN_RecvMsg.Id = 0x101;
// CAN_RecvMsg.IDE = CAN_Id_Standard;
// CAN_RecvMsg.CacheType = CAN_CacheType_Rx_NoMask;
// CAN_RecvMsg.RTR = CAN_RTR_Data;
// CAN_RecvMsg.Interrupt = ENABLE;
// CAN_MessageCache_DeInit(CAN0MSG01);
// CAN_MessageCache_Init(CAN0MSG01, &CAN_RecvMsg);
// CAN_MessageCache_OverWriteConfig(CAN0MSG01, ENABLE);
// // CAN_RecvMsg.Id = DIAG_ID_Rx_PHY;
// // CAN_RecvMsg.IDE = CAN_Id_Standard;
// // CAN_RecvMsg.CacheType = CAN_CacheType_Rx_NoMask;
// // CAN_RecvMsg.RTR = CAN_RTR_Data;
// // CAN_RecvMsg.Interrupt = ENABLE;
// // CAN_MessageCache_DeInit(CAN0MSG03);
// // CAN_MessageCache_Init(CAN0MSG03, &CAN_RecvMsg);
// // CAN_MessageCache_OverWriteConfig(CAN0MSG03, ENABLE);
// // CAN_RecvMsg.Id = DIAG_ID_Rx_FUN;
// // CAN_RecvMsg.IDE = CAN_Id_Standard;
// // CAN_RecvMsg.CacheType = CAN_CacheType_Rx_NoMask;
// // CAN_RecvMsg.RTR = CAN_RTR_Data;
// // CAN_RecvMsg.Interrupt = ENABLE;
// // CAN_MessageCache_DeInit(CAN0MSG04);
// // CAN_MessageCache_Init(CAN0MSG04, &CAN_RecvMsg);
// // CAN_MessageCache_OverWriteConfig(CAN0MSG04, ENABLE);
// }
// /**
// * @brief 用于申请TXBUFF
// *
// */
// void Can_Tx_Apply_Buff(void)
// {
// CanTxRxMsg CAN_SendMsg;
// CanTxRxMsg CAN_SendMsg_Diag_Tx;
// CAN_SendMsg.Id = 0x500;
// CAN_SendMsg.IDE = CAN_Id_Standard;
// CAN_SendMsg.CacheType = CAN_CacheType_Tx;
// CAN_SendMsg.RTR = CAN_RTR_Data;
// CAN_RecvMsg.Interrupt = DISABLE;
// CAN_SendMsg.DLC = 8;
// for (uint8_t i = 0; i < CAN_SendMsg.DLC; i++)
// {
// CAN_SendMsg.Data[i] = 0;
// }
// CAN_MessageCache_DeInit(CAN0MSG08);
// CAN_MessageCache_Init(CAN0MSG08, &CAN_SendMsg);
// // CAN_SendMsg_Diag_Tx.Id = DIAG_ID_Tx;
// // CAN_SendMsg_Diag_Tx.IDE = CAN_Id_Standard;
// // CAN_SendMsg_Diag_Tx.CacheType = CAN_CacheType_Tx;
// // CAN_SendMsg_Diag_Tx.RTR = CAN_RTR_Data;
// // CAN_SendMsg_Diag_Tx.Interrupt = DISABLE;
// // CAN_SendMsg_Diag_Tx.DLC = 8;
// // for (uint8_t i = 0; i < CAN_SendMsg_Diag_Tx.DLC; i++)
// // {
// // CAN_SendMsg_Diag_Tx.Data[i] = 0;
// // }
// // CAN_MessageCache_DeInit(CAN0MSG09);
// // CAN_MessageCache_Init(CAN0MSG09, &CAN_SendMsg_Diag_Tx);
// }
// /**
// * @brief 用于接收回调函数
// * @code
// */
// void Can_Rx_Cak(CanTxRxMsg *Msg)
// {
// Co_Can_Buff_Set(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(Msg->Id), Msg->DLC, Msg->Data);
// if ((Msg->Id == DIAG_ID_Rx_FUN) || (Msg->Id == DIAG_ID_Rx_PHY))
// {
// DoCAN_L_Data_Indication(Msg->Id, Msg->DLC, Msg->Data);
// }
// }
// /**
// * @brief CAN库初始化TX/RX
// *
// */
// void COM_CAN_Init(void)
// {
// memset(pRXBuff, 0, sizeof(pRXBuff));
// CAN_CH0_CanMsgOp.CAN_MSG_Analysis = (st_CANMsgStruct *)pRXBuff;
// CAN_CH0_CanMsgOp.pAttrubute = CAN_CH0_CAN_MSG_CONST_ARRAY;
// CAN_CH0_CanMsgOp.Total_Msg = CAN_CH0_ID_TOTAL_MAX;
// CAN_CH0_CanMsgOp.u8CAN_RX_ENABLE = CAN_N_RX_Enable;
// Can_RX_BuffInit(&CAN_CH0_CanMsgOp, CAN_CH0_CAN_MSG_CONST_ARRAY, CAN_CH0_ID_TOTAL_MAX);
// CAN_RX_SetEnable(&CAN_CH0_CanMsgOp, CAN_N_RX_Enable);
// memset(pTXBuff, 0, sizeof(pTXBuff));
// CAN_CH0_CanMsgTxOp.CanMsg = (st_CAN_SendOperation *)pTXBuff;
// Can_TX_BuffInit(&CAN_CH0_CanMsgTxOp, CAN_CH0_CANSendAttr, CAN_CH0_ID_SEND_TOTAL, COM_APP_Process);
// CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Enable);
// }
// /**
// * @brief Buff恢复函数
// * @param deltaTime 调用时间 单位ms 10MS调用
// */
// void Can_BusOff_Recover(uint8_t deltaTime)
// {
// if (get_can_busoff(CAN_CH_0) == 2)
// {
// if (RSCAN0Busoff.Status == RSCAN0_BUS_STABLE)
// {
// RSCAN0Busoff.Status = RSCAN0_BUS_OFF_LV1;
// }
// if (RSCAN0Busoff.Status == RSCAN0_BUS_OFF_LV1)
// {
// RSCAN0Busoff.Timer++;
// if (RSCAN0Busoff.Timer >= RSCAN0_BUS_OFF_LV1_RECOVERY_TIME / deltaTime)
// {
// RSCAN0Busoff.Timer = 0U;
// RSCAN0Busoff.Cnt++;
// if (RSCAN0Busoff.Cnt >= 10U)
// {
// RSCAN0Busoff.Cnt = 0U;
// RSCAN0Busoff.Status = RSCAN0_BUS_OFF_LV2;
// }
// reset_busoff(CAN_CH_0);
// }
// }
// else if (RSCAN0Busoff.Status == RSCAN0_BUS_OFF_LV2)
// {
// RSCAN0Busoff.Timer++;
// if (RSCAN0Busoff.Timer >= RSCAN0_BUS_OFF_LV2_RECOVERY_TIME / deltaTime)
// {
// RSCAN0Busoff.Timer = 0U;
// reset_busoff(CAN_CH_0);
// }
// }
// else
// {
// }
// }
// else /* 总线正常,没有Bus-off发生*/
// {
// }
// }
// /**
// * @brief 获取busoff状态
// * @return 0 没有busoff
// * 1 错误的操作
// * 2 busoff
// */
// uint8_t Get_Busoff_Status(void)
// {
// return get_can_busoff(CAN_CH_0);
// }
#include "Can_User.h"
#include <string.h>
#include "can.h"
#include "RTE.h"
#include "CAN_CH0_CAN_Communication_Matrix.h"
__align
(
4
)
uint32_t
pRXBuff
[
CAN_RX_MSG_Block
*
CAN_CH0_ID_TOTAL_MAX
];
uint32_t
pTXBuff
[
CAN_TX_MSG_Block
*
CAN_CH0_ID_SEND_TOTAL
];
static
RSCAN0BusoffMonitorStruct
RSCAN0Busoff
;
void
Can_Init
(
void
)
{
can_config_st_t
Can_Config
;
Can_Config
.
ch
=
CAN_CH_0
;
Can_Config
.
freq
=
CAN_500Kbps
;
Can_Config
.
MASK
[
0
]
=
0x001fffffU
;
Can_Config
.
MASK
[
1
]
=
0x000fffffU
;
Can_Config
.
MASK
[
2
]
=
0x1fffffffU
;
Can_Config
.
MASK
[
3
]
=
0x1fffffffU
;
Can_Config
.
rx_callback
=
Can_Rx_Cak
;
COM_CAN_Init
();
rte_can_init
(
&
Can_Config
);
Can_Tx_Apply_Buff
();
Can_RX_Apply_Buff
();
RTE_GPIO_Set_Level
(
RTE_GPIO_PORT05_PIN02
,
RTE_GPIO_LEVEL_LOW
);
}
/**
* @brief 用于申请RXBUFF CAN0MSG00~CAN0MSG07
*
*/
void
Can_RX_Apply_Buff
(
void
)
{
CAN_RecvMsg
.
Id
=
0x101
;
CAN_RecvMsg
.
IDE
=
CAN_Id_Standard
;
CAN_RecvMsg
.
CacheType
=
CAN_CacheType_Rx_NoMask
;
CAN_RecvMsg
.
RTR
=
CAN_RTR_Data
;
CAN_RecvMsg
.
Interrupt
=
ENABLE
;
CAN_MessageCache_DeInit
(
CAN0MSG01
);
CAN_MessageCache_Init
(
CAN0MSG01
,
&
CAN_RecvMsg
);
CAN_MessageCache_OverWriteConfig
(
CAN0MSG01
,
ENABLE
);
CAN_RecvMsg
.
Id
=
0x111
;
CAN_RecvMsg
.
IDE
=
CAN_Id_Standard
;
CAN_RecvMsg
.
CacheType
=
CAN_CacheType_Rx_NoMask
;
CAN_RecvMsg
.
RTR
=
CAN_RTR_Data
;
CAN_RecvMsg
.
Interrupt
=
ENABLE
;
CAN_MessageCache_DeInit
(
CAN0MSG02
);
CAN_MessageCache_Init
(
CAN0MSG02
,
&
CAN_RecvMsg
);
CAN_MessageCache_OverWriteConfig
(
CAN0MSG02
,
ENABLE
);
CAN_RecvMsg
.
Id
=
0x401
;
CAN_RecvMsg
.
IDE
=
CAN_Id_Standard
;
CAN_RecvMsg
.
CacheType
=
CAN_CacheType_Rx_NoMask
;
CAN_RecvMsg
.
RTR
=
CAN_RTR_Data
;
CAN_RecvMsg
.
Interrupt
=
ENABLE
;
CAN_MessageCache_DeInit
(
CAN0MSG03
);
CAN_MessageCache_Init
(
CAN0MSG03
,
&
CAN_RecvMsg
);
CAN_MessageCache_OverWriteConfig
(
CAN0MSG03
,
ENABLE
);
CAN_RecvMsg
.
Id
=
0x402
;
CAN_RecvMsg
.
IDE
=
CAN_Id_Standard
;
CAN_RecvMsg
.
CacheType
=
CAN_CacheType_Rx_NoMask
;
CAN_RecvMsg
.
RTR
=
CAN_RTR_Data
;
CAN_RecvMsg
.
Interrupt
=
ENABLE
;
CAN_MessageCache_DeInit
(
CAN0MSG04
);
CAN_MessageCache_Init
(
CAN0MSG04
,
&
CAN_RecvMsg
);
CAN_MessageCache_OverWriteConfig
(
CAN0MSG04
,
ENABLE
);
CAN_RecvMsg
.
Id
=
0x12B
;
CAN_RecvMsg
.
IDE
=
CAN_Id_Standard
;
CAN_RecvMsg
.
CacheType
=
CAN_CacheType_Rx_NoMask
;
CAN_RecvMsg
.
RTR
=
CAN_RTR_Data
;
CAN_RecvMsg
.
Interrupt
=
ENABLE
;
CAN_MessageCache_DeInit
(
CAN0MSG05
);
CAN_MessageCache_Init
(
CAN0MSG05
,
&
CAN_RecvMsg
);
CAN_MessageCache_OverWriteConfig
(
CAN0MSG05
,
ENABLE
);
CAN_RecvMsg
.
Id
=
0x450
;
CAN_RecvMsg
.
IDE
=
CAN_Id_Standard
;
CAN_RecvMsg
.
CacheType
=
CAN_CacheType_Rx_NoMask
;
CAN_RecvMsg
.
RTR
=
CAN_RTR_Data
;
CAN_RecvMsg
.
Interrupt
=
ENABLE
;
CAN_MessageCache_DeInit
(
CAN0MSG06
);
CAN_MessageCache_Init
(
CAN0MSG06
,
&
CAN_RecvMsg
);
CAN_MessageCache_OverWriteConfig
(
CAN0MSG06
,
ENABLE
);
CAN_RecvMsg
.
Id
=
0x37B
;
CAN_RecvMsg
.
IDE
=
CAN_Id_Standard
;
CAN_RecvMsg
.
CacheType
=
CAN_CacheType_Rx_NoMask
;
CAN_RecvMsg
.
RTR
=
CAN_RTR_Data
;
CAN_RecvMsg
.
Interrupt
=
ENABLE
;
CAN_MessageCache_DeInit
(
CAN0MSG07
);
CAN_MessageCache_Init
(
CAN0MSG07
,
&
CAN_RecvMsg
);
CAN_MessageCache_OverWriteConfig
(
CAN0MSG07
,
ENABLE
);
// CAN_RecvMsg.Id = DIAG_ID_Rx_PHY;
// CAN_RecvMsg.IDE = CAN_Id_Standard;
// CAN_RecvMsg.CacheType = CAN_CacheType_Rx_NoMask;
// CAN_RecvMsg.RTR = CAN_RTR_Data;
// CAN_RecvMsg.Interrupt = ENABLE;
// CAN_MessageCache_DeInit(CAN0MSG03);
// CAN_MessageCache_Init(CAN0MSG03, &CAN_RecvMsg);
// CAN_MessageCache_OverWriteConfig(CAN0MSG03, ENABLE);
// CAN_RecvMsg.Id = DIAG_ID_Rx_FUN;
// CAN_RecvMsg.IDE = CAN_Id_Standard;
// CAN_RecvMsg.CacheType = CAN_CacheType_Rx_NoMask;
// CAN_RecvMsg.RTR = CAN_RTR_Data;
// CAN_RecvMsg.Interrupt = ENABLE;
// CAN_MessageCache_DeInit(CAN0MSG04);
// CAN_MessageCache_Init(CAN0MSG04, &CAN_RecvMsg);
// CAN_MessageCache_OverWriteConfig(CAN0MSG04, ENABLE);
}
/**
* @brief 用于申请TXBUFF
*
*/
void
Can_Tx_Apply_Buff
(
void
)
{
// CanTxRxMsg CAN_SendMsg;
// CanTxRxMsg CAN_SendMsg_Diag_Tx;
// CAN_SendMsg.Id = 0x500;
// CAN_SendMsg.IDE = CAN_Id_Standard;
// CAN_SendMsg.CacheType = CAN_CacheType_Tx;
// CAN_SendMsg.RTR = CAN_RTR_Data;
// CAN_RecvMsg.Interrupt = DISABLE;
// CAN_SendMsg.DLC = 8;
// for (uint8_t i = 0; i < CAN_SendMsg.DLC; i++)
// {
// CAN_SendMsg.Data[i] = 0;
// }
// CAN_MessageCache_DeInit(CAN0MSG08);
// CAN_MessageCache_Init(CAN0MSG08, &CAN_SendMsg);
// CAN_SendMsg_Diag_Tx.Id = DIAG_ID_Tx;
// CAN_SendMsg_Diag_Tx.IDE = CAN_Id_Standard;
// CAN_SendMsg_Diag_Tx.CacheType = CAN_CacheType_Tx;
// CAN_SendMsg_Diag_Tx.RTR = CAN_RTR_Data;
// CAN_SendMsg_Diag_Tx.Interrupt = DISABLE;
// CAN_SendMsg_Diag_Tx.DLC = 8;
// for (uint8_t i = 0; i < CAN_SendMsg_Diag_Tx.DLC; i++)
// {
// CAN_SendMsg_Diag_Tx.Data[i] = 0;
// }
// CAN_MessageCache_DeInit(CAN0MSG09);
// CAN_MessageCache_Init(CAN0MSG09, &CAN_SendMsg_Diag_Tx);
}
/**
* @brief 用于接收回调函数
* @code
*/
void
Can_Rx_Cak
(
CanTxRxMsg
*
Msg
)
{
Co_Can_Buff_Set
(
&
CAN_CH0_CanMsgOp
,
Co_Can_ConvertSubID_CAN_CH0
(
Msg
->
Id
),
Msg
->
DLC
,
Msg
->
Data
);
// if ((Msg->Id == DIAG_ID_Rx_FUN) || (Msg->Id == DIAG_ID_Rx_PHY))
// {
// DoCAN_L_Data_Indication(Msg->Id, Msg->DLC, Msg->Data);
// }
}
/**
* @brief CAN库初始化TX/RX
*
*/
void
COM_CAN_Init
(
void
)
{
memset
(
pRXBuff
,
0
,
sizeof
(
pRXBuff
));
CAN_CH0_CanMsgOp
.
CAN_MSG_Analysis
=
(
st_CANMsgStruct
*
)
pRXBuff
;
CAN_CH0_CanMsgOp
.
pAttrubute
=
CAN_CH0_CAN_MSG_CONST_ARRAY
;
CAN_CH0_CanMsgOp
.
Total_Msg
=
CAN_CH0_ID_TOTAL_MAX
;
CAN_CH0_CanMsgOp
.
u8CAN_RX_ENABLE
=
CAN_N_RX_Enable
;
Can_RX_BuffInit
(
&
CAN_CH0_CanMsgOp
,
CAN_CH0_CAN_MSG_CONST_ARRAY
,
CAN_CH0_ID_TOTAL_MAX
);
CAN_RX_SetEnable
(
&
CAN_CH0_CanMsgOp
,
CAN_N_RX_Enable
);
// memset(pTXBuff, 0, sizeof(pTXBuff));
// CAN_CH0_CanMsgTxOp.CanMsg = (st_CAN_SendOperation *)pTXBuff;
// Can_TX_BuffInit(&CAN_CH0_CanMsgTxOp, CAN_CH0_CANSendAttr, CAN_CH0_ID_SEND_TOTAL, COM_APP_Process);
// CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Enable);
}
/**
* @brief Buff恢复函数
* @param deltaTime 调用时间 单位ms 10MS调用
*/
void
Can_BusOff_Recover
(
uint8_t
deltaTime
)
{
if
(
get_can_busoff
(
CAN_CH_0
)
==
2
)
{
if
(
RSCAN0Busoff
.
Status
==
RSCAN0_BUS_STABLE
)
{
RSCAN0Busoff
.
Status
=
RSCAN0_BUS_OFF_LV1
;
}
if
(
RSCAN0Busoff
.
Status
==
RSCAN0_BUS_OFF_LV1
)
{
RSCAN0Busoff
.
Timer
++
;
if
(
RSCAN0Busoff
.
Timer
>=
RSCAN0_BUS_OFF_LV1_RECOVERY_TIME
/
deltaTime
)
{
RSCAN0Busoff
.
Timer
=
0U
;
RSCAN0Busoff
.
Cnt
++
;
if
(
RSCAN0Busoff
.
Cnt
>=
10U
)
{
RSCAN0Busoff
.
Cnt
=
0U
;
RSCAN0Busoff
.
Status
=
RSCAN0_BUS_OFF_LV2
;
}
reset_busoff
(
CAN_CH_0
);
}
}
else
if
(
RSCAN0Busoff
.
Status
==
RSCAN0_BUS_OFF_LV2
)
{
RSCAN0Busoff
.
Timer
++
;
if
(
RSCAN0Busoff
.
Timer
>=
RSCAN0_BUS_OFF_LV2_RECOVERY_TIME
/
deltaTime
)
{
RSCAN0Busoff
.
Timer
=
0U
;
reset_busoff
(
CAN_CH_0
);
}
}
else
{
}
}
else
/* 总线正常,没有Bus-off发生*/
{
}
}
/**
* @brief 获取busoff状态
* @return 0 没有busoff
* 1 错误的操作
* 2 busoff
*/
uint8_t
Get_Busoff_Status
(
void
)
{
return
get_can_busoff
(
CAN_CH_0
);
}
// uint8_t COM_APP_Process(st_CAN_Msg *Msg)
// {
...
...
Firmware/Source/Application/Can_User.h
View file @
9153bef1
//
#ifndef _CAN_USER_H_
//
#define _CAN_USER_H_
//
#include "RTE.h"
//
#include "Components.h"
#ifndef _CAN_USER_H_
#define _CAN_USER_H_
#include "RTE.h"
#include "Components.h"
/
/ /
******************************************************************************
//
Bus-off
//
******************************************************************************/
//
#define RSCAN0_BUS_STABLE 0x00U
//
#define RSCAN0_BUS_OFF_LV1 0x01U
//
#define RSCAN0_BUS_OFF_LV2 0x02U
//
#define RSCAN00_BUS_LIMP 0x03U
/
/ /
******************************************************************************
//
Bus-off
//
******************************************************************************/
/******************************************************************************
Bus-off
******************************************************************************/
#define RSCAN0_BUS_STABLE 0x00U
#define RSCAN0_BUS_OFF_LV1 0x01U
#define RSCAN0_BUS_OFF_LV2 0x02U
#define RSCAN00_BUS_LIMP 0x03U
/******************************************************************************
Bus-off
******************************************************************************/
//
#define RSCAN0_BUS_OFF_LV1_RECOVERY_TIME 90U
//
#define RSCAN0_BUS_OFF_LV2_RECOVERY_TIME 1000U
#define RSCAN0_BUS_OFF_LV1_RECOVERY_TIME 90U
#define RSCAN0_BUS_OFF_LV2_RECOVERY_TIME 1000U
//
typedef struct
//
{
//
uint8_t Status;
//
uint8_t Timer;
//
uint8_t Cnt;
//
uint8_t ReportDTCCnt;
//
} RSCAN0BusoffMonitorStruct;
typedef
struct
{
uint8_t
Status
;
uint8_t
Timer
;
uint8_t
Cnt
;
uint8_t
ReportDTCCnt
;
}
RSCAN0BusoffMonitorStruct
;
//
extern void Can_Tx_Apply_Buff(void);
//
extern void Can_RX_Apply_Buff(void);
//
extern void Can_BusOff_Recover(uint8_t deltaTime);
//
extern void COM_CAN_Init(void);
//
extern void Can_Init(void);
//
extern void Can_Rx_Cak(CanTxRxMsg *Msg);
//
extern void Busoff(void);
//
extern uint8_t COM_APP_Process(st_CAN_Msg *Msg);
//
extern void Can_Write(st_CAN_Msg *Msg);
extern
void
Can_Tx_Apply_Buff
(
void
);
extern
void
Can_RX_Apply_Buff
(
void
);
extern
void
Can_BusOff_Recover
(
uint8_t
deltaTime
);
extern
void
COM_CAN_Init
(
void
);
extern
void
Can_Init
(
void
);
extern
void
Can_Rx_Cak
(
CanTxRxMsg
*
Msg
);
extern
void
Busoff
(
void
);
extern
uint8_t
COM_APP_Process
(
st_CAN_Msg
*
Msg
);
extern
void
Can_Write
(
st_CAN_Msg
*
Msg
);
//
#endif
#endif
Firmware/Source/Application/CommonInterface.c
View file @
9153bef1
...
...
@@ -4,7 +4,7 @@
uint32_t
PowerIgnOnTimeLine
;
uint32_t
PowerIgnOffTimeLine
;
uint32_t
PowerIgnOffTimeLine
;
static
uint32_t
PowerSocTimeLine
;
...
...
Firmware/Source/Application/GpioUser.h
View file @
9153bef1
...
...
@@ -35,7 +35,7 @@
#define SWDIO_JTMS RTE_GPIO_PORT04_PIN00
#define Start_stop_MCU RTE_GPIO_PORT04_PIN01
#define
Select_button_MCU
RTE_GPIO_PORT04_PIN02
#define
KEY_SELECT_MCU
RTE_GPIO_PORT04_PIN02
#define VCC1V2_AMT_EN RTE_GPIO_PORT04_PIN03 //ljs
#define CAN_MCU_RXD RTE_GPIO_PORT05_PIN00
...
...
@@ -43,7 +43,7 @@
#define CAN_STB_MCU RTE_GPIO_PORT05_PIN02
#define HighBeam_MCU RTE_GPIO_PORT05_PIN03
#define L_FuelSender_OUT RTE_GPIO_PORT05_PIN04
#define
SWITCH
_MCU RTE_GPIO_PORT05_PIN05
#define
KEY_OK
_MCU RTE_GPIO_PORT05_PIN05
#define IIC_SCL_24G16 RTE_GPIO_PORT06_PIN00
#define IIC_SDA_24G16 RTE_GPIO_PORT06_PIN01
...
...
Firmware/Source/Component/Components.h
View file @
9153bef1
...
...
@@ -27,5 +27,8 @@
#include "Data_ESpeed.h"
#include "Data_VSpeed.h"
#include "BackLight.h"
#include "RTC\RTE_RTC.h"
#include "CAN_Signal\CAN_Lib.h"
#include "CAN_CH0_CAN_Communication_Matrix.h"
#endif
Firmware/Source/Component/Key/Key_user.c
View file @
9153bef1
...
...
@@ -6,56 +6,21 @@
__align
(
4
)
#define BACK_MENU_TIME 1000
// #define MENU_GRADE g_u8Menu_Grade
#define CURSOR_POSITION g_u8Cursor_Posittion
_Menu_Data
MenuData
;
uint8_t
PageType
;
//设置时间参数(设置小时或者分钟)
uint8_t
Key_Right_Long_Press_Flag
;
uint8_t
Key_Left_Long_Press_Flag
;
RTC_TimeTypeDef
RTC_TimeStruct
;
RTC_DateTypeDef
RTC_DateStruct
;
RTC_CounterTypeDef
counter_val
;
void
Key_Operation_Left
(
Key_Event_en_t
enKeyEvent
)
//
Mode
void
Key_Operation_Left
(
Key_Event_en_t
enKeyEvent
)
//
选择
{
switch
(
enKeyEvent
)
{
case
KEY_EVENT_SHORT_PRESS_1
:
// if(MENU_GRADE == 0x00)
// {
// Menu_Service(MENU_KEY_LEFT_SHORT);
// }
// else
// {
// Menu_Service(MENU_KEY_DOWN_SHORT);
// }
Key_Event_Short_Press_Left
();
break
;
case
KEY_EVENT_SHORT_PRESS_2
:
// if(MENU_GRADE == 0x00)
// {
// Menu_Service(MENU_KEY_LEFT_LONG);
// }
// else
// {
// Menu_Change_Branch_To_Item(0, MENU_ITEM_DriveInfo);
// Menu_Service(MENU_KEY_DOWN_LONG);
// }
break
;
case
KEY_EVENT_LONG_PRESS_1
:
//2
// if(MENU_GRADE == 0x00)
// {
// Menu_Service(MENU_KEY_LEFT_SUPER_LONG);
// }
// else
// {
// Menu_Service(MENU_KEY_DOWN_SUPER_LONG);
// }
Key_Left_Long_Press_Flag
=
1
;
break
;
case
KEY_EVENT_LONG_PRESS_2
:
//3
break
;
...
...
@@ -68,25 +33,22 @@ void Key_Operation_Left(Key_Event_en_t enKeyEvent)//Mode
case
KEY_EVENT_ON_TO_OFF
:
break
;
case
KEY_EVENT_NONE
:
K
ey_Left_Long_Press_Flag
=
0
;
K
EY_LEFT_EVENT_NONE_Service
()
;
break
;
default:
break
;
}
}
void
Key_Operation_Right
(
Key_Event_en_t
enKeyEvent
)
//
Set
void
Key_Operation_Right
(
Key_Event_en_t
enKeyEvent
)
//
确认
{
switch
(
enKeyEvent
)
{
case
KEY_EVENT_SHORT_PRESS_1
:
// Menu_Service(MENU_KEY_CONFIRM_SHORT
);
Key_Event_Short_Press_Right
(
);
break
;
case
KEY_EVENT_SHORT_PRESS_2
:
// Menu_Service(MENU_KEY_CONFIRM_LONG);
break
;
case
KEY_EVENT_LONG_PRESS_1
:
//2s
// Menu_Service(MENU_KEY_CONFIRM_SUPER_LONG);
Key_Right_Long_Press_Flag
=
1
;
break
;
case
KEY_EVENT_LONG_PRESS_2
:
//3s
break
;
...
...
@@ -99,7 +61,7 @@ void Key_Operation_Right(Key_Event_en_t enKeyEvent)//Set
case
KEY_EVENT_ON_TO_OFF
:
break
;
case
KEY_EVENT_NONE
:
K
ey_Right_Long_Press_Flag
=
0
;
K
EY_RIGHT_EVENT_NONE_Service
()
;
break
;
default:
break
;
...
...
@@ -111,33 +73,30 @@ void Key_Operation_Right(Key_Event_en_t enKeyEvent)//Set
Key_Status_en_t
Key_Status_Read_Left
(
void
)
{
Key_Status_en_t
enKeyReal
=
KEY_REALTIME_LOOSEN
;
if
(
SYS_OPR_STAT_IGN_ON
)
if
(
RTE_GPIO_Get_Level
(
KEY_SELECT_MCU
))
//选择
{
enKeyReal
=
KEY_REALTIME_PRESS
;
}
else
{
// if (RTE_GPIO_Get_Level(MODE_P_IN))
// {
// enKeyReal = KEY_REALTIME_LOOSEN;
// }
// else
// {
// enKeyReal = KEY_REALTIME_PRESS;
// }
enKeyReal
=
KEY_REALTIME_LOOSEN
;
}
return
enKeyReal
;
}
Key_Status_en_t
Key_Status_Read_Right
(
void
)
{
Key_Status_en_t
enKeyReal
=
KEY_REALTIME_LOOSEN
;
if
(
SYS_OPR_STAT_IGN_ON
)
if
(
RTE_GPIO_Get_Level
(
KEY_OK_MCU
))
//确认
{
enKeyReal
=
KEY_REALTIME_PRESS
;
}
else
{
// if (RTE_GPIO_Get_Level(SET_P_IN))
// {
// enKeyReal = KEY_REALTIME_LOOSEN;
// }
// else
// {
// enKeyReal = KEY_REALTIME_PRESS;
// }
enKeyReal
=
KEY_REALTIME_LOOSEN
;
}
return
enKeyReal
;
}
...
...
@@ -147,8 +106,6 @@ const Key_Attribute_st_t stKeyAttribute[KEY_NUM_MAX] =
{
{
KEY_NEED_DEBOUNCE_NORMAL
,
Key_Status_Read_Left
,
Key_Operation_Left
},
{
KEY_NEED_DEBOUNCE_NORMAL
,
Key_Status_Read_Right
,
Key_Operation_Right
},
//{KEY_NEED_DEBOUNCE_NORMAL, Key_Status_Read_FLIP, Key_Operation_FLIP},
//{KEY_NEED_DEBOUNCE_NORMAL, Key_Status_Read_ADJUST, Key_Operation_ADJUST},
};
/*---------------------------------------------------------------------------------------*/
...
...
@@ -167,11 +124,13 @@ void Key_KL30_Init_EXample(void)
stKeyInitTem
.
enKeyIGNRealStatus
=
KEY_IG_OFF
;
Key_KL30_Init
(
&
u8KeyRamData
[
0
],
stKeyAttribute
,
&
stKeyInitTem
);
Key_Parameter_Set_Short_Press_1_Time
(
50U
,
1
000U
);
Key_Parameter_Set_Short_Press_2_Time
(
3000U
,
10
000U
);
Key_Parameter_Set_Short_Press_1_Time
(
50U
,
2
000U
);
Key_Parameter_Set_Short_Press_2_Time
(
3000U
,
6
000U
);
Key_Parameter_Set_Long_Press_1_Time
(
10000U
);
Key_Parameter_Set_Long_Press_2_Time
(
60000U
);
Key_Parameter_Set_Long_Press_1_Time
(
7000U
);
Key_Parameter_Set_Long_Press_2_Time
(
8000U
);
Key_Parameter_Set_Long_Press_3_Time
(
9000U
);
Key_Parameter_Set_Long_Press_4_Time
(
10000U
);
}
void
Key_Wakeup_Init_EXample
(
void
)
{
...
...
@@ -181,33 +140,168 @@ void Key_Wakeup_Init_EXample(void)
stKeyInitTem
.
enKeyIGNRealStatus
=
KEY_IG_OFF
;
Key_Wakeup_Init
(
&
u8KeyRamData
[
0
],
stKeyAttribute
,
&
stKeyInitTem
);
Key_Parameter_Set_Short_Press_1_Time
(
50U
,
1
000U
);
Key_Parameter_Set_Short_Press_2_Time
(
3000U
,
10
000U
);
Key_Parameter_Set_Short_Press_1_Time
(
50U
,
2
000U
);
Key_Parameter_Set_Short_Press_2_Time
(
3000U
,
6
000U
);
Key_Parameter_Set_Long_Press_1_Time
(
10000U
);
Key_Parameter_Set_Long_Press_2_Time
(
60000U
);
Key_Parameter_Set_Long_Press_1_Time
(
7000U
);
Key_Parameter_Set_Long_Press_2_Time
(
8000U
);
Key_Parameter_Set_Long_Press_3_Time
(
9000U
);
Key_Parameter_Set_Long_Press_4_Time
(
10000U
);
}
void
Key_
Check
_Service
(
void
)
void
Key_
TimeOut
_Service
(
void
)
{
PageType
=
Page_Time_Set_Hour
;
if
((
MenuData
.
Back_Time_Left_Flag
==
1
)
&&
(
MenuData
.
Back_Time_Right_Flag
==
1
))
{
Menu_Service
(
MENU_KEY_TIMEOUT
);
}
}
void
Key_Auto_Save
(
void
)
{
if
(
PageType
==
Page_Time_Set_Hour
)
{
//RTC_SetTime(&counter_val.time);
}
{
//RTC_SetTime(&counter_val.time);
}
}
void
Key_Event_Short_Press_Left
(
void
)
//选择
{
if
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_MAIN_ITEM
)
//切换大小计
{
Menu_Service
(
MENU_KEY_FUNCTION_1_SHORT
);
}
if
((
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_DISPLAY_MODE
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BACKLIGHT_SETTING
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BLUETOOTH_CONNECT
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_SETTING
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_UNIT_SETTING
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_LANGUAGE_SETTING
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_FAULT_INFORMATION
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_PHONE_CONNECT
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_QUIT
))
{
Menu_Service
(
MENU_KEY_RIGHT_SHORT
);
}
else
{
if
((
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_SELECT_DAYTIME
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_SELECT_NIGHTTIME
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_SELECT_AUTO
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BACKLIGHT_5
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BACKLIGHT_4
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BACKLIGHT_3
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BACKLIGHT_2
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BACKLIGHT_1
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BACKLIGHT_AUTO
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BLUETOOTH_OPEN_CLOSE
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BLUETOOTH_SYNC
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BLUETOOTH_BACK
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_HOUR_TENB
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_HOUR_BIT
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_MIN_TENB
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_MIN_BIT
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_BACK
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_HOUR_TENB_SET
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_HOUR_BIT_SET
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_MIN_TENB_SET
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_MIN_BIT_SET
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_UNIT_KM
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_UNIT_MILE
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_LANGUAGE_CHINESE
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_LANGUAGE_ENGLISH
))
{
Menu_Service
(
MENU_KEY_DOWN_SHORT
);
}
}
}
void
Key_Event_Short_Press_Right
(
void
)
//确认
{
if
((
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_MAIN_ITEM
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_DISPLAY_MODE
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BACKLIGHT_SETTING
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BLUETOOTH_CONNECT
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_SETTING
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_UNIT_SETTING
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_LANGUAGE_SETTING
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_FAULT_INFORMATION
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_PHONE_CONNECT
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_QUIT
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_SELECT_DAYTIME
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_SELECT_NIGHTTIME
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_SELECT_AUTO
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BACKLIGHT_5
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BACKLIGHT_4
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BACKLIGHT_3
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BACKLIGHT_2
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BACKLIGHT_1
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BACKLIGHT_AUTO
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BLUETOOTH_OPEN_CLOSE
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BLUETOOTH_SYNC
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_BLUETOOTH_BACK
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_HOUR_TENB
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_HOUR_BIT
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_MIN_TENB
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_MIN_BIT
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_BACK
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_HOUR_TENB_SET
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_HOUR_BIT_SET
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_MIN_TENB_SET
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_CLOCK_MIN_BIT_SET
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_UNIT_KM
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_UNIT_MILE
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_LANGUAGE_CHINESE
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_LANGUAGE_ENGLISH
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_PHONE_CONNECT_SET
)
||
(
Menu_Get_Current_Cursor_Information
()
==
MENU_ITEM_PHONE_CONNECT_APP
))
{
RTC_SetTime
(
&
counter_val
.
time
);
Menu_Service
(
MENU_KEY_CONFIRM_SHORT
);
}
}
if
(
PageType
==
Page_Time_Set_Minute
)
void
KEY_LEFT_EVENT_NONE_Service
(
void
)
{
MenuData
.
Back_Time_Left
++
;
if
(
MenuData
.
Back_Time_Left
>
BACK_MENU_TIME
)
{
RTC_SetTime
(
&
counter_val
.
time
);
MenuData
.
Back_Time_Left
=
BACK_MENU_TIME
;
MenuData
.
Back_Time_Left_Flag
=
1
;
}
PageType
=
Page_Time
;
}
void
KEY_RIGHT_EVENT_NONE_Service
(
void
)
{
MenuData
.
Back_Time_Right
++
;
if
(
MenuData
.
Back_Time_Right
>
BACK_MENU_TIME
)
{
MenuData
.
Back_Time_Right
=
BACK_MENU_TIME
;
MenuData
.
Back_Time_Right_Flag
=
1
;
}
}
void
Key_Clear_Time
(
void
)
{
if
(
Key_Status_Read_Left
()
==
KEY_REALTIME_PRESS
)
{
MenuData
.
Back_Time_Left
=
0
;
MenuData
.
Back_Time_Left_Flag
=
0
;
MenuData
.
Back_Time_Right_Flag
=
0
;
}
if
(
Key_Status_Read_Right
()
==
KEY_REALTIME_PRESS
)
{
MenuData
.
Back_Time_Right
=
0
;
MenuData
.
Back_Time_Left_Flag
=
0
;
MenuData
.
Back_Time_Right_Flag
=
0
;
}
}
uint8_t
ClearODO_Flag
=
0
;
void
TYW_RESET_ODO
(
void
)
...
...
@@ -229,6 +323,8 @@ void TYW_RESET_ODO(void)
}
}
uint8_t
Get_Dis_Hour_Time
(
void
)
{
return
counter_val
.
time
.
RTC_Hours
;
...
...
@@ -239,12 +335,22 @@ uint8_t Get_Dis_Minute_Time(void)
return
counter_val
.
time
.
RTC_Minutes
;
}
uint8_t
Get_Current_PageType
(
void
)
uint8_t
Get_Dis_Unit
(
void
)
{
return
MenuData
.
Unit
;
//0km,1mile
}
uint8_t
Get_Dis_OdoAndTrip
(
void
)
{
return
PageType
;
return
MenuData
.
OdoAndTrip
;
//0Odo,1Trip
}
uint8_t
Get_Dis_
Unit
(
void
)
uint8_t
Get_Dis_
Bluetooth_Open_Close
(
void
)
{
return
MenuData
.
Unit
;
//0km,1mile
return
MenuData
.
Bluetooth_Open_Close
;
//0开,1关
}
uint8_t
Get_Dis_Language
(
void
)
{
return
MenuData
.
Language
;
//0中文,1英文
}
\ No newline at end of file
Firmware/Source/Component/Key/Key_user.h
View file @
9153bef1
...
...
@@ -32,36 +32,23 @@ typedef enum
typedef
struct
{
uint8_t
Set_Hour
;
uint8_t
Set_Minute
;
uint8_t
Dis_Hour
;
uint8_t
Dis_Minute
;
uint16_t
Back_Time_Left
;
uint16_t
Back_Time_Right
;
uint8_t
Back_Time_Right_Flag
;
uint8_t
Back_Time_Left_Flag
;
uint8_t
Dis_Hour_Tenb
;
uint8_t
Dis_Hour_Bit
;
uint8_t
Dis_Minute_Tenb
;
uint8_t
Dis_Minute_Bit
;
uint8_t
Unit
;
uint8_t
Language
;
uint8_t
OdoAndTrip
;
uint8_t
Bluetooth_Open_Close
;
uint8_t
Clock_Flash
;
}
_Menu_Data
;
typedef
enum
{
Page_Time
=
0
,
Page_Time_Set_Hour
,
Page_Time_Set_Minute
,
Page_Max
,
}
_Page_Type
;
extern
uint8_t
PageType
;
extern
uint8_t
Key_Right_Long_Press_Flag
;
extern
uint8_t
Key_Left_Long_Press_Flag
;
extern
uint8_t
ClearODO_Flag
;
// extern uint8_t g_u8Menu_Grade;
extern
uint8_t
g_u8Cursor_Posittion
;
extern
uint8_t
g_u8Language
;
extern
uint8_t
g_u8Theme
;
extern
uint8_t
g_u8Blue
;
extern
uint8_t
g_u8DVR_Set
;
extern
uint8_t
g_u8Formatting
;
extern
uint8_t
g_u8Factory
;
extern
_Menu_Infor
MenuInfor
;
extern
RTC_CounterTypeDef
counter_val
;
extern
void
Key_KL30_Init_EXample
(
void
);
extern
void
Key_Wakeup_Init_EXample
(
void
);
...
...
@@ -70,13 +57,22 @@ void Key_Operation_Right(Key_Event_en_t enKeyEvent);
void
Key_Operation_Left
(
Key_Event_en_t
enKeyEvent
);
Key_Status_en_t
Key_Status_Read_Left
(
void
);
Key_Status_en_t
Key_Status_Read_Right
(
void
);
void
Key_Event_Short_Press_Left
(
void
);
void
Key_Event_Short_Press_Right
(
void
);
void
KEY_RIGHT_EVENT_NONE_Service
(
void
);
void
KEY_LEFT_EVENT_NONE_Service
(
void
);
void
Key_Auto_Save
(
void
);
uint8_t
Get_Dis_Hour_Time
(
void
);
uint8_t
Get_Dis_Minute_Time
(
void
);
uint8_t
Get_Current_PageType
(
void
);
void
TYW_RESET_ODO
(
void
);
uint8_t
Get_Dis_Unit
(
void
);
void
Key_Check_Service
(
void
);
void
Key_TimeOut_Service
(
void
);
void
Key_Clear_Time
(
void
);
uint8_t
Get_Dis_OdoAndTrip
(
void
);
uint8_t
Get_Dis_Bluetooth_Open_Close
(
void
);
uint8_t
Get_Dis_Language
(
void
);
#endif
Firmware/Source/Component/Line_In/Line_In_user.c
View file @
9153bef1
...
...
@@ -5,63 +5,156 @@
const
Line_In_Attribute_st
g_stLineInAttribute
[
LINE_IN_MAX
]
=
{
{
LEVEL_LOW
,
LEVEL_HIGH
,
LINE_IN_IG_ON
,
20U
,
20U
,
Get_LINE_IN_TurnLeft
,
},
{
LEVEL_LOW
,
LEVEL_HIGH
,
LINE_IN_IG_ON
,
20U
,
20U
,
Get_LINE_IN_TurnRight
,
},
{
LEVEL_HIGH
,
LEVEL_LOW
,
LINE_IN_IG_ON
,
60U
,
20U
,
Get_LINE_IN_HighBeam
,
},
{
LEVEL_HIGH
,
LEVEL_LOW
,
LINE_IN_IG_ON
,
100U
,
20U
,
Get_LINE_IN_Auto_Start_Stop
,
},
{
LEVEL_HIGH
,
LEVEL_LOW
,
LINE_IN_IG_ON
,
20U
,
20U
,
Get_LINE_IN_Turn_Left
,
},
{
LEVEL_HIGH
,
LEVEL_LOW
,
LINE_IN_IG_ON
,
20U
,
20U
,
Get_LINE_IN_Turn_Right
,
},
{
LEVEL_HIGH
,
LEVEL_LOW
,
LINE_IN_IG_ON
,
60U
,
20U
,
Get_LINE_IN_High_Beam
,
},
{
LEVEL_LOW
,
LEVEL_HIGH
,
LINE_IN_IG_ON
,
100U
,
20U
,
Get_LINE_IN_Efi_Fault
,
},
{
LEVEL_HIGH
,
LEVEL_LOW
,
LINE_IN_IG_ON
,
20U
,
20U
,
Get_LINE_IN_ABS
,
},
{
LEVEL_LOW
,
LEVEL_HIGH
,
LINE_IN_IG_ON
,
20U
,
20U
,
Get_LINE_IN_Auto_Start_Stop
,
},
{
LEVEL_LOW
,
LEVEL_HIGH
,
LINE_IN_IG_ON
,
20U
,
20U
,
Get_LINE_IN_Oil_Pressure_Alert
,
},
{
LEVEL_LOW
,
LEVEL_HIGH
,
LINE_IN_IG_ON
,
20U
,
20U
,
Get_LINE_IN_Voltage
,
},
{
LEVEL_LOW
,
LEVEL_HIGH
,
LINE_IN_IG_ON
,
20U
,
20U
,
Get_LINE_IN_Fuel_Level_Low
,
},
{
LEVEL_LOW
,
LEVEL_HIGH
,
LINE_IN_IG_ON
,
20U
,
20U
,
Get_LINE_IN_E
,
},
{
LEVEL_LOW
,
LEVEL_HIGH
,
LINE_IN_IG_ON
,
20U
,
20U
,
Get_LINE_IN_S
,
},
};
Linelib_uint8_t
Get_LINE_IN_TurnLeft
(
void
)
Linelib_uint8_t
Get_LINE_IN_Turn_Left
(
void
)
{
Linelib_uint8_t
ret
=
0U
;
//if (RTE_GPIO_Get_Level(LeftTurn_P_In
))
if
(
RTE_GPIO_Get_Level
(
LeftTurn_MUC_OUT
))
{
ret
=
1u
;
}
//
else
else
{
ret
=
0UL
;
}
return
ret
;
}
Linelib_uint8_t
Get_LINE_IN_TurnRight
(
void
)
Linelib_uint8_t
Get_LINE_IN_Turn_Right
(
void
)
{
Linelib_uint8_t
ret
=
0U
;
//if (RTE_GPIO_Get_Level(RightTurn_P_In
))
if
(
RTE_GPIO_Get_Level
(
LeftTurn_MUC_OUT
))
{
ret
=
1u
;
}
//
else
else
{
ret
=
0UL
;
}
return
ret
;
}
Linelib_uint8_t
Get_LINE_IN_HighBeam
(
void
)
Linelib_uint8_t
Get_LINE_IN_High_Beam
(
void
)
{
Linelib_uint8_t
ret
=
0U
;
//if (RTE_GPIO_Get_Level(HighBeam_P_In
))
if
(
RTE_GPIO_Get_Level
(
LeftTurn_MUC_OUT
))
{
ret
=
1u
;
}
//else
else
{
ret
=
0UL
;
}
return
ret
;
}
Linelib_uint8_t
Get_LINE_IN_Efi_Fault
(
void
)
{
Linelib_uint8_t
ret
=
0U
;
if
(
RTE_GPIO_Get_Level
(
LeftTurn_MUC_OUT
))
{
ret
=
1u
;
}
else
{
ret
=
0UL
;
}
return
ret
;
}
Linelib_uint8_t
Get_LINE_IN_ABS
(
void
)
{
Linelib_uint8_t
ret
=
0U
;
if
(
RTE_GPIO_Get_Level
(
LeftTurn_MUC_OUT
))
{
ret
=
1u
;
}
else
{
ret
=
0UL
;
}
return
ret
;
}
Linelib_uint8_t
Get_LINE_IN_Auto_Start_Stop
(
void
)
{
Linelib_uint8_t
ret
=
0U
;
//if (RTE_GPIO_Get_Level(START_STOP_P_IN))
if
(
RTE_GPIO_Get_Level
(
LeftTurn_MUC_OUT
))
{
ret
=
1u
;
}
else
{
ret
=
0UL
;
}
return
ret
;
}
Linelib_uint8_t
Get_LINE_IN_Oil_Pressure_Alert
(
void
)
{
Linelib_uint8_t
ret
=
0U
;
if
(
RTE_GPIO_Get_Level
(
LeftTurn_MUC_OUT
))
{
ret
=
1u
;
}
else
{
ret
=
0UL
;
}
return
ret
;
}
Linelib_uint8_t
Get_LINE_IN_Voltage
(
void
)
{
Linelib_uint8_t
ret
=
0U
;
if
(
RTE_GPIO_Get_Level
(
LeftTurn_MUC_OUT
))
{
ret
=
1u
;
}
else
{
ret
=
0UL
;
}
return
ret
;
}
Linelib_uint8_t
Get_LINE_IN_Fuel_Level_Low
(
void
)
{
Linelib_uint8_t
ret
=
0U
;
if
(
RTE_GPIO_Get_Level
(
LeftTurn_MUC_OUT
))
{
ret
=
1u
;
}
else
{
ret
=
0UL
;
}
return
ret
;
}
Linelib_uint8_t
Get_LINE_IN_E
(
void
)
{
Linelib_uint8_t
ret
=
0U
;
if
(
RTE_GPIO_Get_Level
(
LeftTurn_MUC_OUT
))
{
ret
=
1u
;
}
else
{
ret
=
0UL
;
}
return
ret
;
}
Linelib_uint8_t
Get_LINE_IN_S
(
void
)
{
Linelib_uint8_t
ret
=
0U
;
if
(
RTE_GPIO_Get_Level
(
LeftTurn_MUC_OUT
))
{
ret
=
1u
;
}
//
else
else
{
ret
=
0UL
;
}
...
...
@@ -74,7 +167,7 @@ Linelib_uint8_t LINE_IN_Men[LINE_IN_MAX * LINE_IN_BLOCK_SIZE];
static
Linelib_uint16_t
LINE_GET_PWR
(
void
)
{
Linelib_uint16_t
Res
;
//
Res = Common_Get_IG_Sts() & 0x00FFu;
Res
=
Common_Get_IG_Sts
()
&
0x00FFu
;
return
Res
;
}
...
...
Firmware/Source/Component/Line_In/Line_In_user.h
View file @
9153bef1
...
...
@@ -5,19 +5,31 @@
typedef
enum
{
LINE_IN_TurnLeft
=
0
,
LINE_IN_TurnRight
,
LINE_IN_HighBeam
,
LINE_IN_Turn_Left
,
LINE_IN_Turn_Right
,
LINE_IN_High_Beam
,
LINE_IN_Efi_Fault
,
LINE_IN_ABS
,
LINE_IN_Auto_Start_Stop
,
LINE_IN_Oil_Pressure_Alert
,
LINE_IN_Voltage
,
LINE_IN_Fuel_Level_Low
,
LINE_IN_E
,
LINE_IN_S
,
LINE_IN_MAX
,
}
LINE_IN_Enum_t
;
extern
void
LINE_IN_Init
(
void
);
Linelib_uint8_t
Get_LINE_IN_TurnLeft
(
void
);
Linelib_uint8_t
Get_LINE_IN_TurnRight
(
void
);
Linelib_uint8_t
Get_LINE_IN_HighBeam
(
void
);
Linelib_uint8_t
Get_LINE_IN_Turn_Left
(
void
);
Linelib_uint8_t
Get_LINE_IN_Turn_Right
(
void
);
Linelib_uint8_t
Get_LINE_IN_High_Beam
(
void
);
Linelib_uint8_t
Get_LINE_IN_Efi_Fault
(
void
);
Linelib_uint8_t
Get_LINE_IN_ABS
(
void
);
Linelib_uint8_t
Get_LINE_IN_Auto_Start_Stop
(
void
);
Linelib_uint8_t
Get_LINE_IN_Oil_Pressure_Alert
(
void
);
Linelib_uint8_t
Get_LINE_IN_Voltage
(
void
);
Linelib_uint8_t
Get_LINE_IN_Fuel_Level_Low
(
void
);
Linelib_uint8_t
Get_LINE_IN_E
(
void
);
Linelib_uint8_t
Get_LINE_IN_S
(
void
);
#endif
Firmware/Source/Component/Menu/Menu.h
View file @
9153bef1
...
...
@@ -34,48 +34,63 @@ typedef unsigned int Menu_uint32_t;
*/
typedef
enum
{
MENU_ITEM_MAIN_ITEM
=
0
,
/*主界面*/
MENU_ITEM_DISPLAY_MODE
,
/*00 显示模式*/
MENU_ITEM_BACKLIGHT_SETTING
,
/*04 背光设置*/
MENU_ITEM_BACKLIGHT_AUTO
,
/*05 背光自动*/
MENU_ITEM_BACKLIGHT_1
,
/*06 背光_1*/
MENU_ITEM_BACKLIGHT_2
,
/*07 背光_2*/
MENU_ITEM_BACKLIGHT_3
,
/*08 背光_3*/
MENU_ITEM_BACKLIGHT_4
,
/*09 背光_4*/
MENU_ITEM_BLUETOOTH_CONNECT
,
/*11 蓝牙连接*/
MENU_ITEM_CLOCK_SETTING
,
/*15 时钟设置*/
MENU_ITEM_UNIT_SETTING
,
/*21 单位设置*/
MENU_ITEM_LANGUAGE_SETTING
,
/*24 语言设置*/
MENU_ITEM_FAULT_INFORMATION
,
/*27 故障信息*/
MENU_ITEM_PHONE_CONNECT
,
/*28 手机互联*/
MENU_ITEM_QUIT
,
/*29 退出*/
MENU_ITEM_SELECT_DAYTIME
,
/*01 选中日间*/
MENU_ITEM_SELECT_NIGHTTIME
,
/*02 选中夜间*/
MENU_ITEM_SELECT_AUTO
,
/*03 选中自动*/
MENU_ITEM_BACKLIGHT_5
,
/*10 背光_5*/
MENU_ITEM_BACKLIGHT_4
,
/*09 背光_4*/
MENU_ITEM_BACKLIGHT_3
,
/*08 背光_3*/
MENU_ITEM_BACKLIGHT_2
,
/*07 背光_2*/
MENU_ITEM_BACKLIGHT_1
,
/*06 背光_1*/
MENU_ITEM_BACKLIGHT_AUTO
,
/*05 背光自动*/
MENU_ITEM_BLUETOOTH_CONNECT
,
/*11 蓝牙连接*/
MENU_ITEM_BLUETOOTH_OPEN
,
/*12 蓝牙_开*/
MENU_ITEM_BLUETOOTH_CLOSE
,
/*13 蓝牙_关*/
MENU_ITEM_BLUETOOTH_OPEN_CLOSE
,
/*12 蓝牙_开*/
MENU_ITEM_BLUETOOTH_SYNC
,
/*13 蓝牙同步联系人*/
MENU_ITEM_BLUETOOTH_BACK
,
/*14 蓝牙返回*/
MENU_ITEM_CLOCK_SETTING
,
/*15 时钟设置*/
MENU_ITEM_CLOCK_BACK
,
/*16 时钟返回*/
MENU_ITEM_CLOCK_MIN_BIT
,
/*17 时钟分钟个位*/
MENU_ITEM_CLOCK_MIN_TENB
,
/*18 时钟分钟十位*/
MENU_ITEM_CLOCK_HOUR_BIT
,
/*19 时钟小时个位*/
MENU_ITEM_CLOCK_HOUR_TENB
,
/*20 时钟小时十位*/
MENU_ITEM_CLOCK_HOUR_BIT
,
/*19 时钟小时个位*/
MENU_ITEM_CLOCK_MIN_TENB
,
/*18 时钟分钟十位*/
MENU_ITEM_CLOCK_MIN_BIT
,
/*17 时钟分钟个位*/
MENU_ITEM_CLOCK_BACK
,
/*16 时钟返回*/
MENU_ITEM_CLOCK_HOUR_TENB_SET
,
/*20 时钟小时十位*/
MENU_ITEM_CLOCK_HOUR_BIT_SET
,
/*19 时钟小时个位*/
MENU_ITEM_CLOCK_MIN_TENB_SET
,
/*18 时钟分钟十位*/
MENU_ITEM_CLOCK_MIN_BIT_SET
,
/*17 时钟分钟个位*/
MENU_ITEM_UNIT_SETTING
,
/*21 单位设置*/
MENU_ITEM_UNIT_KM
,
/*22 选中公制*/
MENU_ITEM_UNIT_MILE
,
/*23 选中英制*/
MENU_ITEM_LANGUAGE_SETTING
,
/*24 语言设置*/
MENU_ITEM_LANGUAGE_CHINESE
,
/*25 选中中文*/
MENU_ITEM_LANGUAGE_ENGLISH
,
/*26 选中英文*/
MENU_ITEM_
FAULT_INFORMATION
,
/*27 故障信息*/
MENU_ITEM_
PHONE_CONNECT_SET
,
MENU_ITEM_PHONE_CONNECT
,
/*28 手机互联*/
MENU_ITEM_PHONE_CONNECT_WIN
,
/*28 手机互联成功*/
MENU_ITEM_QUIT
,
/*29 退出*/
MENU_ITEM_PHONE_CONNECT_APP
,
/*28 手机互联成功*/
MENU_ITEM_MAX
,
}
Menu_Item_en_t
;
/*所有菜单界面的枚举*/
typedef
enum
{
MENU_INTF_DISPLAY_MODE
=
0U
,
/*显示模式*/
MENU_INTF_MAIN_INTF
=
0
,
MENU_INTF_MODE
,
MENU_INTF_DISPLAY_MODE
,
/*显示模式*/
MENU_INTF_BACKLIGHT_SETTING
,
/*背光设置*/
...
...
@@ -83,6 +98,11 @@ typedef enum
MENU_INTF_CLOCK_SETTING
,
/*时钟设置*/
MENU_INTF_CLOCK_HOUR_TENB_SET
,
MENU_INTF_CLOCK_HOUR_BIT_SET
,
MENU_INTF_CLOCK_MIN_TENB_SET
,
MENU_INTF_CLOCK_MIN_BIT_SET
,
MENU_INTF_UNIT_SETTING
,
/*单位设置*/
MENU_INTF_LANGUAGE_SETTING
,
/*语言设置*/
...
...
@@ -91,7 +111,10 @@ typedef enum
MENU_INTF_PHONE_CONNECT
,
/*手机互联*/
MENU_INTF_PHONE_CONNECT_SET
,
MENU_INTF_QUIT
,
/*退出*/
MENU_INTERFACE_MAX
,
}
Menu_Interface_en_t
;
/*所有菜单分支*/
...
...
@@ -398,6 +421,8 @@ extern Menu_uint8_t Menu_Item_Select_Get(Menu_Item_en_t enMenuItem);
/*-----------------------------------------------------------------------------------*/
extern
Menu_uint8_t
u8MenuRamData
[
MENU_RAM_DATA_LEN
];
extern
void
Menu_Service
(
Menu_Key_en_t
enMenuKey
);
void
Menu_User_Init
(
void
);
void
Menu_User_WAKEUP
(
void
);
/*-----------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------*/
...
...
Firmware/Source/Component/Menu/Menu_Interface.c
View file @
9153bef1
// #include "Menu.h"
// #include "Components.h"
// /*-------------------------------------------------------*/
// /*-----------------------------------------------------------------*/
// /*-------------------Logic_Operation Call Back---------------------*/
// uint8_t g_u8Menu_Grade;
// uint8_t g_u8Cursor_Posittion;
// uint8_t g_u8Language;
// uint8_t g_u8Theme;
// uint8_t g_u8Blue;
// uint8_t g_u8DVR_Set;
// uint8_t g_u8Formatting;
// uint8_t g_u8Factory;
// _Menu_Infor MenuInfor;
// void DriveInfo_Service(Menu_Key_en_t enMenuKey);
// void QR_ANDROID_Service(Menu_Key_en_t enMenuKey);
// void QR_ODS_Service(Menu_Key_en_t enMenuKey);
// void SUBJECT_MODE_Service(Menu_Key_en_t enMenuKey);
// void UNITS_SETUP_Service(Menu_Key_en_t enMenuKey);
// void CLOCK_Service(Menu_Key_en_t enMenuKey);
// void BACKLIGHT_CLASS_Service(Menu_Key_en_t enMenuKey);
// void TPMS_STUDY_Service(Menu_Key_en_t enMenuKey);
// void LANGUAGE_Service(Menu_Key_en_t enMenuKey);
// void BLUE_TOOTH_SETTING_Service(Menu_Key_en_t enMenuKey);
// void DVRSET_Service(Menu_Key_en_t enMenuKey);
// void VERSION_Service(Menu_Key_en_t enMenuKey);
// void FACTORY_RESET_Service(Menu_Key_en_t enMenuKey);
// void SUBJECT1_Service(Menu_Key_en_t enMenuKey);
// void SUBJECT2_Service(Menu_Key_en_t enMenuKey);
// void SUBJECT3_Service(Menu_Key_en_t enMenuKey);
// void TIME_12H_Service(Menu_Key_en_t enMenuKey);
// void TIME_24H_Service(Menu_Key_en_t enMenuKey);
// void TIME_Service(Menu_Key_en_t enMenuKey);
// void BACKLIGHT_TYPE1_Service(Menu_Key_en_t enMenuKey);
// void BACKLIGHT_TYPE2_Service(Menu_Key_en_t enMenuKey);
// void BACKLIGHT_TYPE3_Service(Menu_Key_en_t enMenuKey);
// void BACKLIGHT_TYPE4_Service(Menu_Key_en_t enMenuKey);
// void BACKLIGHT_TYPE5_Service(Menu_Key_en_t enMenuKey);
// void BACKLIGHT_TYPEA_Service(Menu_Key_en_t enMenuKey);
// void TPMS_UNIT_Service(Menu_Key_en_t enMenuKey);
// void TPMS_STUDYF_Service(Menu_Key_en_t enMenuKey);
// void TPMS_STUDYB_Service(Menu_Key_en_t enMenuKey);
// void BLUE_LINK_Service(Menu_Key_en_t enMenuKey);
// void BLUE_lINKMAN_Service(Menu_Key_en_t enMenuKey);
// void BLUE_NAME_Service(Menu_Key_en_t enMenuKey);
// void BLUE_OUT_Service(Menu_Key_en_t enMenuKey);
// void DVR_SET_Service(Menu_Key_en_t enMenuKey);
// void DVR_LOOK_Service(Menu_Key_en_t enMenuKey);
// void VERSION2_Service(Menu_Key_en_t enMenuKey);
// void BACKLIGHT_BLACK_Service(Menu_Key_en_t enMenuKey);
// void BACKLIGHT_WHITE_Service(Menu_Key_en_t enMenuKey);
// void BACKLIGHT_A_Service(Menu_Key_en_t enMenuKey);
// void DVR_SET2_Service(Menu_Key_en_t enMenuKey);
// void DVR_NAME_Service(Menu_Key_en_t enMenuKey);
// void STORAGE_Service(Menu_Key_en_t enMenuKey);
// void FORMATTING_Service(Menu_Key_en_t enMenuKey);
// void DVR_LOOK2_Service(Menu_Key_en_t enMenuKey);
// void FACTORY_YES_Service(Menu_Key_en_t enMenuKey);
// void FACTORY_NO_Service(Menu_Key_en_t enMenuKey);
// void FORMATTING_YES_Service(Menu_Key_en_t enMenuKey);
// void FORMATTING_NO_Service(Menu_Key_en_t enMenuKey);
// /*---------------------------------------------------------------------------------------*/
// const Menu_Item_Attribute_st_t stMenuItemAttribute[MENU_ITEM_MAX] =
// {
// {0, MENU_INTF_DriveInfo, MENU_ITEM_MAX, 0U, 1U, 1U, MENU_ITEM_DriveInfo, MENU_ITEM_MAX, MENU_DIRECTION_TRANSVERSE, 0XFFU, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, DriveInfo_Service },/**< 行车电脑界面 */
// {0, MENU_INTF_QR_CODE, MENU_ITEM_MAX, 1U, 1U, 1U, MENU_ITEM_QR_ANDROID, MENU_ITEM_MAX, MENU_DIRECTION_TRANSVERSE, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, QR_ANDROID_Service },/**< 手机互联安卓 */
// {0, MENU_INTF_QR_CODE, MENU_ITEM_MAX, 1U, 1U, 1U, MENU_ITEM_QR_ODS, MENU_ITEM_MAX, MENU_DIRECTION_TRANSVERSE, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, QR_ODS_Service },/**< 手机互联苹果 */
// {0, MENU_INTF_STAIR_MENU, MENU_ITEM_MAX, 2U, 10U, 10U, MENU_ITEM_SUBJECT_MODE, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTF_SUBJECT_MODE, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, SUBJECT_MODE_Service },/**< 主题模式 */
// {0, MENU_INTF_STAIR_MENU, MENU_ITEM_MAX, 3U, 10U, 10U, MENU_ITEM_UNITS_SETUP, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, UNITS_SETUP_Service },/**< 单位设置 */
// {0, MENU_INTF_STAIR_MENU, MENU_ITEM_MAX, 4U, 10U, 10U, MENU_ITEM_CLOCK, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTF_CLOCK, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, CLOCK_Service },/**< 时钟信息 */
// {0, MENU_INTF_STAIR_MENU, MENU_ITEM_MAX, 5U, 10U, 10U, MENU_ITEM_BACKLIGHT_CLASS, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTF_BACKLIGHT_CLASS, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, BACKLIGHT_CLASS_Service },/**< 亮度设置 */
// {0, MENU_INTF_STAIR_MENU, MENU_ITEM_MAX, 6U, 10U, 10U, MENU_ITEM_TPMS_STUDY, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTF_TPMS_STUDY, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, TPMS_STUDY_Service },/**< 胎压学习 */
// {0, MENU_INTF_STAIR_MENU, MENU_ITEM_MAX, 7U, 10U, 10U, MENU_ITEM_LANGUAGE, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, LANGUAGE_Service },/**< 语言设置 */
// {0, MENU_INTF_STAIR_MENU, MENU_ITEM_MAX, 8U, 10U, 10U, MENU_ITEM_BLUE_TOOTH_SETTING, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTF_BLUE_TOOTH_SETTING, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, BLUE_TOOTH_SETTING_Service },/**< 蓝牙设置 */
// {0, MENU_INTF_STAIR_MENU, MENU_ITEM_MAX, 9U, 10U, 10U, MENU_ITEM_DVRSET, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTF_DVRSET, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, DVRSET_Service },/**< DVR */
// {0, MENU_INTF_STAIR_MENU, MENU_ITEM_MAX, 10U, 10U, 10U, MENU_ITEM_VERSION, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTF_VERSION, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, VERSION_Service },/**< 版本信息 */
// {0, MENU_INTF_STAIR_MENU, MENU_ITEM_MAX, 11U, 10U, 10U, MENU_ITEM_FACTORY_RESET, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTF_FACTORY_RESET, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, FACTORY_RESET_Service },/**< 恢复出厂设置 */
// {0, MENU_INTF_SUBJECT_MODE, MENU_ITEM_MAX, 12U, 3U, 3U, MENU_ITEM_SUBJECT1, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTF_BACKLIGHT_CLASS, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, SUBJECT1_Service },/**< 主题一 */
// {0, MENU_INTF_SUBJECT_MODE, MENU_ITEM_MAX, 13U, 3U, 3U, MENU_ITEM_SUBJECT2, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTF_BACKLIGHT_CLASS, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, SUBJECT2_Service },/**< 主题二 */
// {0, MENU_INTF_SUBJECT_MODE, MENU_ITEM_MAX, 14U, 3U, 3U, MENU_ITEM_SUBJECT3, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTF_BACKLIGHT_CLASS, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, SUBJECT3_Service },/**< 主题三 */
// {0, MENU_INTF_CLOCK, MENU_ITEM_MAX, 15U, 3U, 3U, MENU_ITEM_TIME_12H, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, TIME_12H_Service },/**< 12时制 */
// {0, MENU_INTF_CLOCK, MENU_ITEM_MAX, 16U, 3U, 3U, MENU_ITEM_TIME_24H, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, TIME_24H_Service },/**< 24时制 */
// {0, MENU_INTF_CLOCK, MENU_ITEM_MAX, 17U, 3U, 3U, MENU_ITEM_TIME, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, TIME_Service },/**< 时间调整 */
// {0, MENU_INTF_BACKLIGHT_CLASS, MENU_ITEM_MAX, 18U, 6U, 6U, MENU_ITEM_BACKLIGHT_TYPE1, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, BACKLIGHT_TYPE1_Service },/**< 亮度1 */
// {0, MENU_INTF_BACKLIGHT_CLASS, MENU_ITEM_MAX, 19U, 6U, 6U, MENU_ITEM_BACKLIGHT_TYPE2, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, BACKLIGHT_TYPE2_Service },/**< 亮度2 */
// {0, MENU_INTF_BACKLIGHT_CLASS, MENU_ITEM_MAX, 20U, 6U, 6U, MENU_ITEM_BACKLIGHT_TYPE3, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, BACKLIGHT_TYPE3_Service },/**< 亮度3 */
// {0, MENU_INTF_BACKLIGHT_CLASS, MENU_ITEM_MAX, 21U, 6U, 6U, MENU_ITEM_BACKLIGHT_TYPE4, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, BACKLIGHT_TYPE4_Service },/**< 亮度4 */
// {0, MENU_INTF_BACKLIGHT_CLASS, MENU_ITEM_MAX, 22U, 6U, 6U, MENU_ITEM_BACKLIGHT_TYPE5, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, BACKLIGHT_TYPE5_Service },/**< 亮度5 */
// {0, MENU_INTF_BACKLIGHT_CLASS, MENU_ITEM_MAX, 23U, 6U, 6U, MENU_ITEM_BACKLIGHT_TYPEA, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, BACKLIGHT_TYPEA_Service },/**< 亮度自动 */
// {0, MENU_INTF_TPMS_STUDY, MENU_ITEM_MAX, 24U, 3U, 3U, MENU_ITEM_TPMS_UNIT, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, TPMS_UNIT_Service },/**< 胎压单位 */
// {0, MENU_INTF_TPMS_STUDY, MENU_ITEM_MAX, 25U, 3U, 3U, MENU_ITEM_TPMS_STUDYF, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, TPMS_STUDYF_Service },/**< 前轮学习 */
// {0, MENU_INTF_TPMS_STUDY, MENU_ITEM_MAX, 26U, 3U, 3U, MENU_ITEM_TPMS_STUDYB, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, TPMS_STUDYB_Service },/**< 后轮学习 */
// {0, MENU_INTF_BLUE_TOOTH_SETTING, MENU_ITEM_MAX, 11U, 4U, 4U, MENU_ITEM_BLUE_LINK, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, BLUE_LINK_Service },/**< 蓝牙连接 */
// {0, MENU_INTF_BLUE_TOOTH_SETTING, MENU_ITEM_MAX, 11U, 4U, 4U, MENU_ITEM_BLUE_lINKMAN, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, BLUE_lINKMAN_Service },/**< 同步联系人 */
// {0, MENU_INTF_BLUE_TOOTH_SETTING, MENU_ITEM_MAX, 11U, 4U, 4U, MENU_ITEM_BLUE_NAME, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, BLUE_NAME_Service },/**< 蓝牙名称 */
// {0, MENU_INTF_BLUE_TOOTH_SETTING, MENU_ITEM_MAX, 11U, 4U, 4U, MENU_ITEM_BLUE_OUT, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, BLUE_OUT_Service },/**< 蓝牙退出 */
// {0, MENU_INTF_DVRSET, MENU_ITEM_MAX, 11U, 2U, 2U, MENU_ITEM_DVR_SET, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTF_DVR_SET, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, DVR_SET_Service },/**< DVR设置 */
// {0, MENU_INTF_DVRSET, MENU_ITEM_MAX, 11U, 2U, 2U, MENU_ITEM_DVR_LOOK, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTF_DVR_LOOK, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, DVR_LOOK_Service },/**< DVR回放 */
// {0, MENU_INTF_VERSION, MENU_ITEM_MAX, 11U, 1U, 1U, MENU_ITEM_VERSION2, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, VERSION2_Service },/**< 版本信息子菜单 */
// {0, MENU_INTF_BACKLIGHT_MODE, MENU_ITEM_MAX, 11U, 3U, 3U, MENU_ITEM_BACKLIGHT_BLACK, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_SUBJECT_MODE, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, BACKLIGHT_BLACK_Service },/**< 黑天模式 */
// {0, MENU_INTF_BACKLIGHT_MODE, MENU_ITEM_MAX, 11U, 3U, 3U, MENU_ITEM_BACKLIGHT_WHITE, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_SUBJECT_MODE, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, BACKLIGHT_WHITE_Service },/**< 白天模式 */
// {0, MENU_INTF_BACKLIGHT_MODE, MENU_ITEM_MAX, 11U, 3U, 3U, MENU_ITEM_BACKLIGHT_A, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_SUBJECT_MODE, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, BACKLIGHT_A_Service },/**< 自动模式 */
// {0, MENU_INTF_DVR_SET, MENU_ITEM_MAX, 11U, 4U, 4U, MENU_ITEM_DVR_SET2, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_DVRSET, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, DVR_SET2_Service },/**< DVR设置 */
// {0, MENU_INTF_DVR_SET, MENU_ITEM_MAX, 11U, 4U, 4U, MENU_ITEM_DVR_NAME, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_DVRSET, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, DVR_NAME_Service },/**< 记录仪名称 */
// {0, MENU_INTF_DVR_SET, MENU_ITEM_MAX, 11U, 4U, 4U, MENU_ITEM_STORAGE, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_DVRSET, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, STORAGE_Service },/**< 存储空间 */
// {0, MENU_INTF_DVR_SET, MENU_ITEM_MAX, 11U, 4U, 4U, MENU_ITEM_FORMATTING, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTF_FORMATTING, MENU_JUMP_FIRST, MENU_INTF_DVRSET, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, FORMATTING_Service },/**< 格式化SD卡 */
// {0, MENU_INTF_DVR_LOOK, MENU_ITEM_MAX, 11U, 1U, 1U, MENU_ITEM_DVR_LOOK2, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_DVRSET, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, DVR_LOOK2_Service },/**< DVR回放子菜单 */
// {0, MENU_INTF_FACTORY_RESET, MENU_ITEM_MAX, 11U, 4U, 4U, MENU_ITEM_FACTORY_YES, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, FACTORY_YES_Service },/**< 恢复出厂设置是 */
// {0, MENU_INTF_FACTORY_RESET, MENU_ITEM_MAX, 11U, 4U, 4U, MENU_ITEM_FACTORY_NO, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_STAIR_MENU, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, FACTORY_NO_Service },/**< 恢复出厂设置否 */
// {0, MENU_INTF_FORMATTING, MENU_ITEM_MAX, 11U, 4U, 4U, MENU_ITEM_FORMATTING_YES, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_DVR_SET, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, FORMATTING_YES_Service },/**< 格式化SD卡是 */
// {0, MENU_INTF_FORMATTING, MENU_ITEM_MAX, 11U, 1U, 1U, MENU_ITEM_FORMATTING_NO, MENU_ITEM_MAX, MENU_DIRECTION_LONGITUDINAL, 0XFFU, MENU_INTERFACE_MAX, MENU_JUMP_FIRST, MENU_INTF_DVR_SET, MENU_JUMP_FIRST, MENU_INTF_DriveInfo, MENU_JUMP_FIRST, FORMATTING_NO_Service },/**< 格式化SD卡否 */
// };
// /*-------------------------------------------------------------------------------------------------*/
// /*--------------------------The following usage is recommended, but not required--------------------------------*/
// /*--------------------------The following usage is recommended, but not required--------------------------------*/
// /*--------------------------The following usage is recommended, but not required--------------------------------*/
// static void Menu_Cursor_Preprocess(Menu_Key_en_t enMenuKey);
// static void Menu_Cursor_Postprocess(Menu_Key_en_t enMenuKey);
// void Menu_Service(Menu_Key_en_t enMenuKey);
// /*传入按键动作执行之前需要预先处理的动作*/
#include "Menu.h"
#include "Components.h"
/*-------------------Logic_Operation Call Back---------------------*/
uint8_t
g_u8Cursor_Posittion
;
extern
_Menu_Data
MenuData
;
void
Menu_Logic_Operation_MAIN_ITEM
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Display_Mode
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Backlight_Setting
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Bluetooth_Connect
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Clock_Setting
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Unit_Setting
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Language_Setting
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Fault_Information
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Phone_Connect
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Quit
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Select_Daytime
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Select_Nighttime
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Select_Auto
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Backlight_Auto
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Backlight_1
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Backlight_2
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Backlight_3
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Backlight_4
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Backlight_5
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Bluetooth_Open_Close
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Bluetooth_Sync_Contacts
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Bluetooth_Back
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Clock_Back
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Clock_Min_Bit
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Clock_Min_Tenb
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Clock_Hour_Bit
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Clock_Hour_Tenb
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Clock_Hour_Tenb_Set
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Clock_Hour_Bit_Set
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Clock_Min_Tenb_Set
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Clock_Min_Bit_Set
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Unit_Km
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Unit_Mile
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Language_Chinese
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Language_English
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Phone_Connect_Set
(
Menu_Key_en_t
enKeyType
);
void
Menu_Logic_Operation_Phone_Connect_App
(
Menu_Key_en_t
enKeyType
);
void
Menu_u8Data_Updata_Process
(
uint8_t
updateDir
,
uint8_t
datMax
,
uint8_t
datMin
,
uint8_t
datStep
,
uint8_t
*
dat
);
void
Menu_User_Init
(
void
)
{
Menu_Init_st_t
Menu_Init_st
;
Menu_Init_st
.
enMenuBranchLen
=
MENU_BRANCH_MAX
;
Menu_Init_st
.
enMenuInterfaceLen
=
MENU_INTERFACE_MAX
;
Menu_Init_st
.
enMenuItemLen
=
MENU_ITEM_MAX
;
Menu_Init_st
.
uintMenuConfig
=
0x0001
;
Menu_Init_st
.
uintMenuCursorMemoryDepth
=
0
;
Menu_Init
((
uint8_t
*
)
u8MenuRamData
,
(
Menu_Item_Attribute_st_t
*
)
stMenuItemAttribute
,
(
Menu_Init_st_t
*
)
&
Menu_Init_st
);
}
void
Menu_User_WAKEUP
(
void
)
{
Menu_Init_st_t
Menu_Init_st
;
Menu_Init_st
.
enMenuBranchLen
=
MENU_BRANCH_MAX
;
Menu_Init_st
.
enMenuInterfaceLen
=
MENU_INTERFACE_MAX
;
Menu_Init_st
.
enMenuItemLen
=
MENU_ITEM_MAX
;
Menu_Init_st
.
uintMenuConfig
=
0x0001
;
Menu_Init_st
.
uintMenuCursorMemoryDepth
=
0
;
Menu_Wake_Up_Init
((
uint8_t
*
)
u8MenuRamData
,
(
Menu_Item_Attribute_st_t
*
)
stMenuItemAttribute
,
(
Menu_Init_st_t
*
)
&
Menu_Init_st
);
}
/*---------------------------------------------------------------------------------------*/
const
Menu_Item_Attribute_st_t
stMenuItemAttribute
[
MENU_ITEM_MAX
]
=
{
/*MENU_ITEM_MAIN_ITEM = 0, */
{
0
,
MENU_INTF_MAIN_INTF
,
MENU_ITEM_MAX
,
0U
,
1U
,
1U
,
0
,
MENU_ITEM_MAX
,
MENU_DIRECTION_TRANSVERSE
,
0XFFU
,
MENU_INTF_MODE
,
MENU_JUMP_FIRST
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_MAIN_ITEM
},
/*MENU_ITEM_DISPLAY_MODE, */
{
0
,
MENU_INTF_MODE
,
MENU_ITEM_MAIN_ITEM
,
0U
,
9U
,
1U
,
1
,
MENU_ITEM_MAX
,
MENU_DIRECTION_TRANSVERSE
,
0XFFU
,
MENU_INTF_DISPLAY_MODE
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Display_Mode
},
/*MENU_ITEM_BACKLIGHT_SETTING, */
{
0
,
MENU_INTF_MODE
,
MENU_ITEM_MAIN_ITEM
,
1U
,
9U
,
1U
,
2
,
MENU_ITEM_MAX
,
MENU_DIRECTION_TRANSVERSE
,
0XFFU
,
MENU_INTF_BACKLIGHT_SETTING
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Backlight_Setting
},
/*MENU_ITEM_BLUETOOTH_CONNECT, */
{
0
,
MENU_INTF_MODE
,
MENU_ITEM_MAIN_ITEM
,
2U
,
9U
,
1U
,
3
,
MENU_ITEM_MAX
,
MENU_DIRECTION_TRANSVERSE
,
0XFFU
,
MENU_INTF_BLUETOOTH_CONNECT
,
MENU_JUMP_FIRST
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Bluetooth_Connect
},
/*MENU_ITEM_CLOCK_SETTING, */
{
0
,
MENU_INTF_MODE
,
MENU_ITEM_MAIN_ITEM
,
3U
,
9U
,
1U
,
4
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_CLOCK_SETTING
,
MENU_JUMP_FIRST
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Clock_Setting
},
/*MENU_ITEM_UNIT_SETTING, */
{
0
,
MENU_INTF_MODE
,
MENU_ITEM_MAIN_ITEM
,
4U
,
9U
,
1U
,
5
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_UNIT_SETTING
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Unit_Setting
},
/*MENU_ITEM_LANGUAGE_SETTING, */
{
0
,
MENU_INTF_MODE
,
MENU_ITEM_MAIN_ITEM
,
5U
,
9U
,
1U
,
6
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_LANGUAGE_SETTING
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Language_Setting
},
/*MENU_ITEM_FAULT_INFORMATION, */
{
0
,
MENU_INTF_MODE
,
MENU_ITEM_MAIN_ITEM
,
6U
,
9U
,
1U
,
7
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_FAULT_INFORMATION
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Fault_Information
},
/*MENU_ITEM_PHONE_CONNECT, */
{
0
,
MENU_INTF_MODE
,
MENU_ITEM_MAIN_ITEM
,
7U
,
9U
,
1U
,
8
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_PHONE_CONNECT
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Phone_Connect
},
/*MENU_ITEM_QUIT, */
{
0
,
MENU_INTF_MODE
,
MENU_ITEM_MAIN_ITEM
,
8U
,
9U
,
1U
,
9
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Quit
},
/*MENU_ITEM_SELECT_DAYTIME, */
{
0
,
MENU_INTF_DISPLAY_MODE
,
MENU_ITEM_DISPLAY_MODE
,
0U
,
3U
,
1U
,
10
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Select_Daytime
},
/*MENU_ITEM_SELECT_NIGHTTIME, */
{
0
,
MENU_INTF_DISPLAY_MODE
,
MENU_ITEM_DISPLAY_MODE
,
1U
,
3U
,
1U
,
11
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Select_Nighttime
},
/*MENU_ITEM_SELECT_AUTO, */
{
0
,
MENU_INTF_DISPLAY_MODE
,
MENU_ITEM_DISPLAY_MODE
,
2U
,
3U
,
1U
,
12
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Select_Auto
},
/*MENU_ITEM_BACKLIGHT_5, */
{
0
,
MENU_INTF_BACKLIGHT_SETTING
,
MENU_ITEM_BACKLIGHT_SETTING
,
0U
,
6U
,
1U
,
13
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Backlight_5
},
/*MENU_ITEM_BACKLIGHT_4, */
{
0
,
MENU_INTF_BACKLIGHT_SETTING
,
MENU_ITEM_BACKLIGHT_SETTING
,
1U
,
6U
,
1U
,
14
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Backlight_4
},
/*MENU_ITEM_BACKLIGHT_3, */
{
0
,
MENU_INTF_BACKLIGHT_SETTING
,
MENU_ITEM_BACKLIGHT_SETTING
,
2U
,
6U
,
1U
,
15
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Backlight_3
},
/*MENU_ITEM_BACKLIGHT_2, */
{
0
,
MENU_INTF_BACKLIGHT_SETTING
,
MENU_ITEM_BACKLIGHT_SETTING
,
3U
,
6U
,
1U
,
16
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Backlight_2
},
/*MENU_ITEM_BACKLIGHT_1, */
{
0
,
MENU_INTF_BACKLIGHT_SETTING
,
MENU_ITEM_BACKLIGHT_SETTING
,
4U
,
6U
,
1U
,
17
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Backlight_1
},
/*MENU_ITEM_BACKLIGHT_AUTO, */
{
0
,
MENU_INTF_BACKLIGHT_SETTING
,
MENU_ITEM_BACKLIGHT_SETTING
,
5U
,
6U
,
1U
,
18
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Backlight_Auto
},
/*MENU_ITEM_BLUETOOTH_OPEN_CLOSE*/
{
0
,
MENU_INTF_BLUETOOTH_CONNECT
,
MENU_ITEM_BLUETOOTH_CONNECT
,
0U
,
3U
,
1U
,
19
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_BLUETOOTH_CONNECT
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Bluetooth_Open_Close
},
/*MENU_ITEM_BLUETOOTH_SYNC, */
{
0
,
MENU_INTF_BLUETOOTH_CONNECT
,
MENU_ITEM_BLUETOOTH_CONNECT
,
1U
,
3U
,
1U
,
20
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_BLUETOOTH_CONNECT
,
MENU_JUMP_LAST_POSITION
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Bluetooth_Sync_Contacts
},
/*MENU_ITEM_BLUETOOTH_BACK, */
{
0
,
MENU_INTF_BLUETOOTH_CONNECT
,
MENU_ITEM_BLUETOOTH_CONNECT
,
2U
,
3U
,
1U
,
21
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_MODE
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Bluetooth_Back
},
/*MENU_ITEM_CLOCK_HOUR_TENB, */
{
0
,
MENU_INTF_CLOCK_SETTING
,
MENU_ITEM_CLOCK_SETTING
,
0U
,
5U
,
1U
,
22
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_CLOCK_HOUR_TENB_SET
,
MENU_JUMP_FIRST
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Clock_Hour_Tenb
},
/*MENU_ITEM_CLOCK_HOUR_BIT, */
{
0
,
MENU_INTF_CLOCK_SETTING
,
MENU_ITEM_CLOCK_SETTING
,
1U
,
5U
,
1U
,
23
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_CLOCK_HOUR_BIT_SET
,
MENU_JUMP_FIRST
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Clock_Hour_Bit
},
/*MENU_ITEM_CLOCK_MIN_TENB, */
{
0
,
MENU_INTF_CLOCK_SETTING
,
MENU_ITEM_CLOCK_SETTING
,
2U
,
5U
,
1U
,
24
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_CLOCK_MIN_TENB_SET
,
MENU_JUMP_FIRST
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Clock_Min_Tenb
},
/*MENU_ITEM_CLOCK_MIN_BIT, */
{
0
,
MENU_INTF_CLOCK_SETTING
,
MENU_ITEM_CLOCK_SETTING
,
3U
,
5U
,
1U
,
25
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_CLOCK_MIN_BIT_SET
,
MENU_JUMP_FIRST
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Clock_Min_Bit
},
/*MENU_ITEM_CLOCK_BACK, */
{
0
,
MENU_INTF_CLOCK_SETTING
,
MENU_ITEM_CLOCK_SETTING
,
4U
,
5U
,
1U
,
26
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_MODE
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Clock_Back
},
/*MENU_ITEM_CLOCK_HOUR_TENB_SET,*/
{
0
,
MENU_INTF_CLOCK_HOUR_TENB_SET
,
MENU_ITEM_CLOCK_HOUR_TENB_SET
,
0U
,
1U
,
1U
,
27
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_CLOCK_SETTING
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Clock_Hour_Tenb_Set
},
/*MENU_ITEM_CLOCK_HOUR_BIT_SET, */
{
0
,
MENU_INTF_CLOCK_HOUR_BIT_SET
,
MENU_ITEM_CLOCK_HOUR_BIT_SET
,
0U
,
1U
,
1U
,
28
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_CLOCK_SETTING
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Clock_Hour_Bit_Set
},
/*MENU_ITEM_CLOCK_MIN_TENB_SET, */
{
0
,
MENU_INTF_CLOCK_MIN_TENB_SET
,
MENU_ITEM_CLOCK_MIN_TENB
,
0U
,
1U
,
1U
,
29
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_CLOCK_SETTING
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Clock_Min_Tenb_Set
},
/*MENU_ITEM_CLOCK_MIN_BIT_SET, */
{
0
,
MENU_INTF_CLOCK_MIN_BIT_SET
,
MENU_ITEM_CLOCK_MIN_BIT
,
0U
,
1U
,
1U
,
30
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_CLOCK_SETTING
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Clock_Min_Bit_Set
},
/*MENU_ITEM_UNIT_KM, */
{
0
,
MENU_INTF_UNIT_SETTING
,
MENU_ITEM_UNIT_SETTING
,
0U
,
2U
,
1U
,
31
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Unit_Km
},
/*MENU_ITEM_UNIT_MILE, */
{
0
,
MENU_INTF_UNIT_SETTING
,
MENU_ITEM_UNIT_SETTING
,
1U
,
2U
,
1U
,
32
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Unit_Mile
},
/*MENU_ITEM_LANGUAGE_CHINESE, */
{
0
,
MENU_INTF_LANGUAGE_SETTING
,
MENU_ITEM_LANGUAGE_SETTING
,
0U
,
2U
,
1U
,
33
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Language_Chinese
},
/*MENU_ITEM_LANGUAGE_ENGLISH, */
{
0
,
MENU_INTF_LANGUAGE_SETTING
,
MENU_ITEM_LANGUAGE_SETTING
,
1U
,
2U
,
1U
,
34
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_SELECT
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Language_English
},
/*MENU_ITEM_PHONE_CONNECT_SET */
{
0
,
MENU_INTF_PHONE_CONNECT
,
MENU_ITEM_PHONE_CONNECT
,
0U
,
1U
,
1U
,
35
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_PHONE_CONNECT_SET
,
MENU_JUMP_FIRST
,
0XFFU
,
MENU_JUMP_FIRST
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Phone_Connect_Set
},
/*MENU_ITEM_PHONE_CONNECT_APP */
{
0
,
MENU_INTF_PHONE_CONNECT_SET
,
MENU_ITEM_PHONE_CONNECT_SET
,
0U
,
1U
,
1U
,
36
,
MENU_ITEM_MAX
,
MENU_DIRECTION_LONGITUDINAL
,
0XFFU
,
MENU_INTF_MAIN_INTF
,
MENU_JUMP_FIRST
,
0XFFU
,
MENU_JUMP_FIRST
,
0XFFU
,
MENU_JUMP_FIRST
,
Menu_Logic_Operation_Phone_Connect_App
},
};
/*-------------------------------------------------------------------------------------------------*/
/*--------------------------The following usage is recommended, but not required--------------------------------*/
/*--------------------------The following usage is recommended, but not required--------------------------------*/
/*--------------------------The following usage is recommended, but not required--------------------------------*/
//static void Menu_Cursor_Preprocess(Menu_Key_en_t enMenuKey);
//static void Menu_Cursor_Postprocess(Menu_Key_en_t enMenuKey);
void
Menu_Service
(
Menu_Key_en_t
enMenuKey
);
/*传入按键动作执行之前需要预先处理的动作*/
// static void Menu_Cursor_Preprocess(Menu_Key_en_t enMenuKey)
// {
// /*预处理中执行过本次按键了,后续不必执行时调用一次*/
// /*u8MenuKeyExecute = 0U;*/
// }
/
/ /
*传入按键动作执行之后需要后置处理的动作*/
/*传入按键动作执行之后需要后置处理的动作*/
// static void Menu_Cursor_Postprocess(Menu_Key_en_t enMenuKey)
// {
// }
/
/ /
*------------传入按键类型-----------------------*/
//
void Menu_Service(Menu_Key_en_t enMenuKey)
//
{
//
/*功能回调函数的调用*/
//
Menu_Logic_Process(enMenuKey);
//
/*--------------------------------------------------*/
//
/*按键动作对光标的处理*/
//
Menu_Cursor_Preprocess(enMenuKey);
//
Menu_Cursor_Process(enMenuKey);
//
Menu_Cursor_Postprocess(enMenuKey);
//
/*--------------------------------------------------*/
//
}
/*------------传入按键类型-----------------------*/
void
Menu_Service
(
Menu_Key_en_t
enMenuKey
)
{
/*功能回调函数的调用*/
Menu_Logic_Process
(
enMenuKey
);
/*--------------------------------------------------*/
/*按键动作对光标的处理*/
//
Menu_Cursor_Preprocess(enMenuKey);
Menu_Cursor_Process
(
enMenuKey
);
//
Menu_Cursor_Postprocess(enMenuKey);
/*--------------------------------------------------*/
}
// /*------------请放在休眠,唤醒之后不会被清除的RAM区域中-------------------------*/
// /*------------请放在休眠,唤醒之后不会被清除的RAM区域中-------------------------*/
// /*------------请放在休眠,唤醒之后不会被清除的RAM区域中-------------------------*/
// //#pragma ghs section bss = ".myNonInitArea"
// Menu_uint8_t u8MenuRamData[MENU_RAM_DATA_LEN];
// //#pragma ghs section bss = default
// /*---------------------------------------*/
// /*---------------------------------------*/
// /*---------------------------------------*/
// void DriveInfo_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x00;
// g_u8Cursor_Posittion = 0x00;
// if(enKeyType == MENU_KEY_LEFT_SHORT)
// {
// //切换大计小计
// }
// else if(enKeyType == MENU_KEY_LEFT_LONG)
// {
// //清小计
// }
// if(enKeyType == MENU_KEY_CONFIRM_LONG)
// {
// //长按该返回上一菜单没写此处是进入手机互联
// }
// else if(enKeyType == MENU_KEY_UP_SUPER_LONG)
// {
// //请保养
// }
// }
// void QR_ANDROID_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0xB1;
// g_u8Cursor_Posittion = 0x01;
// }
// void QR_ODS_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0xB1;
// g_u8Cursor_Posittion = 0x02;
// }
// void SUBJECT_MODE_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x10;
// g_u8Cursor_Posittion = 0x00;
// }
// void UNITS_SETUP_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x20;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// MenuInfor.Unit = !MenuInfor.Unit;//切换单位标志
// }
// }
// void CLOCK_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x30;
// g_u8Cursor_Posittion = 0x00;
// }
// void BACKLIGHT_CLASS_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x40;
// g_u8Cursor_Posittion = 0x00;
// }
// void TPMS_STUDY_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x50;
// g_u8Cursor_Posittion = 0x00;
// }
// void LANGUAGE_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x60;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// if(g_u8Language == 1u)
// {
// g_u8Language = 2;
// }
// else
// {
// g_u8Language = 1;
// }
// }
// }
// void BLUE_TOOTH_SETTING_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x70;
// g_u8Cursor_Posittion = 0x00;
// }
// void DVRSET_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x80;
// g_u8Cursor_Posittion = 0x00;
// }
// void VERSION_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x90;
// g_u8Cursor_Posittion = 0x00;
// }
// void FACTORY_RESET_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0xA0;
// g_u8Cursor_Posittion = 0x00;
// }
// void SUBJECT1_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x11;
// g_u8Cursor_Posittion = 1u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// g_u8Theme = g_u8Cursor_Posittion;
// }
/*------------请放在休眠,唤醒之后不会被清除的RAM区域中-------------------------*/
/*------------请放在休眠,唤醒之后不会被清除的RAM区域中-------------------------*/
/*------------请放在休眠,唤醒之后不会被清除的RAM区域中-------------------------*/
//#pragma ghs section bss = ".myNonInitArea"
Menu_uint8_t
u8MenuRamData
[
MENU_RAM_DATA_LEN
];
//#pragma ghs section bss = default
/*---------------------------------------*/
/*---------------------------------------*/
/*---------------------------------------*/
void
Menu_Logic_Operation_MAIN_ITEM
(
Menu_Key_en_t
enKeyType
)
{
if
(
enKeyType
==
MENU_KEY_FUNCTION_1_SHORT
)
//大小计切换
{
if
(
Get_Dis_OdoAndTrip
()
==
0
)
{
MenuData
.
OdoAndTrip
=
1
;
}
else
{
MenuData
.
OdoAndTrip
=
0
;
}
}
}
void
Menu_Logic_Operation_Display_Mode
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_Logic_Operation_Select_Daytime
(
Menu_Key_en_t
enKeyType
)
{
if
(
enKeyType
==
MENU_KEY_CONFIRM_SHORT
)
{
Menu_Item_Select_Set
(
MENU_ITEM_SELECT_DAYTIME
,
1
);
Menu_Item_Select_Set
(
MENU_ITEM_SELECT_NIGHTTIME
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_SELECT_AUTO
,
0
);
}
}
void
Menu_Logic_Operation_Select_Nighttime
(
Menu_Key_en_t
enKeyType
)
{
if
(
enKeyType
==
MENU_KEY_CONFIRM_SHORT
)
{
Menu_Item_Select_Set
(
MENU_ITEM_SELECT_DAYTIME
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_SELECT_NIGHTTIME
,
1
);
Menu_Item_Select_Set
(
MENU_ITEM_SELECT_AUTO
,
0
);
}
}
void
Menu_Logic_Operation_Select_Auto
(
Menu_Key_en_t
enKeyType
)
{
if
(
enKeyType
==
MENU_KEY_CONFIRM_SHORT
)
{
Menu_Item_Select_Set
(
MENU_ITEM_SELECT_DAYTIME
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_SELECT_NIGHTTIME
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_SELECT_AUTO
,
1
);
}
}
void
Menu_Logic_Operation_Backlight_5
(
Menu_Key_en_t
enKeyType
)
{
if
(
enKeyType
==
MENU_KEY_CONFIRM_SHORT
)
{
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_5
,
1
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_4
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_3
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_2
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_1
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_AUTO
,
0
);
}
}
void
Menu_Logic_Operation_Backlight_4
(
Menu_Key_en_t
enKeyType
)
{
if
(
enKeyType
==
MENU_KEY_CONFIRM_SHORT
)
{
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_5
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_4
,
1
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_3
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_2
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_1
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_AUTO
,
0
);
}
}
void
Menu_Logic_Operation_Backlight_3
(
Menu_Key_en_t
enKeyType
)
{
if
(
enKeyType
==
MENU_KEY_CONFIRM_SHORT
)
{
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_5
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_4
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_3
,
1
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_2
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_1
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_AUTO
,
0
);
}
}
void
Menu_Logic_Operation_Backlight_2
(
Menu_Key_en_t
enKeyType
)
{
if
(
enKeyType
==
MENU_KEY_CONFIRM_SHORT
)
{
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_5
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_4
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_3
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_2
,
1
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_1
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_AUTO
,
0
);
}
}
void
Menu_Logic_Operation_Backlight_1
(
Menu_Key_en_t
enKeyType
)
{
if
(
enKeyType
==
MENU_KEY_CONFIRM_SHORT
)
{
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_5
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_4
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_3
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_2
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_1
,
1
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_AUTO
,
0
);
}
}
void
Menu_Logic_Operation_Backlight_Auto
(
Menu_Key_en_t
enKeyType
)
{
if
(
enKeyType
==
MENU_KEY_CONFIRM_SHORT
)
{
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_5
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_4
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_3
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_2
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_1
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BACKLIGHT_AUTO
,
1
);
}
}
void
Menu_Logic_Operation_Bluetooth_Open_Close
(
Menu_Key_en_t
enKeyType
)
{
if
(
enKeyType
==
MENU_KEY_CONFIRM_SHORT
)
{
Menu_Item_Select_Set
(
MENU_ITEM_BLUETOOTH_OPEN_CLOSE
,
1
);
Menu_Item_Select_Set
(
MENU_ITEM_BLUETOOTH_SYNC
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_BLUETOOTH_BACK
,
0
);
if
(
Get_Dis_Bluetooth_Open_Close
()
==
0
)
{
MenuData
.
Bluetooth_Open_Close
=
1
;
}
else
{
MenuData
.
Bluetooth_Open_Close
=
0
;
}
}
}
void
Menu_Logic_Operation_Bluetooth_Sync_Contacts
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_Logic_Operation_Bluetooth_Back
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_Logic_Operation_Clock_Hour_Tenb
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_Logic_Operation_Clock_Hour_Bit
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_Logic_Operation_Clock_Min_Tenb
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_Logic_Operation_Clock_Min_Bit
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_Logic_Operation_Clock_Back
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_Logic_Operation_Clock_Hour_Tenb_Set
(
Menu_Key_en_t
enKeyType
)
{
uint8_t
updataDir
=
0u
;
uint8_t
datmax
=
0u
;
uint8_t
datmin
=
0u
;
if
(
enKeyType
==
MENU_KEY_DOWN_SHORT
)
{
updataDir
=
1
;
datmax
=
2u
;
datmin
=
0u
;
Menu_u8Data_Updata_Process
(
updataDir
,
datmax
,
datmin
,
1u
,
(
uint8_t
*
)
&
(
MenuData
.
Dis_Hour_Tenb
));
}
}
void
Menu_Logic_Operation_Clock_Hour_Bit_Set
(
Menu_Key_en_t
enKeyType
)
{
uint8_t
updataDir
=
0u
;
uint8_t
datmax
=
0u
;
uint8_t
datmin
=
0u
;
if
(
enKeyType
==
MENU_KEY_DOWN_SHORT
)
{
updataDir
=
1
;
datmax
=
9u
;
datmin
=
0u
;
Menu_u8Data_Updata_Process
(
updataDir
,
datmax
,
datmin
,
1u
,
(
uint8_t
*
)
&
(
MenuData
.
Dis_Hour_Bit
));
}
}
void
Menu_Logic_Operation_Clock_Min_Tenb_Set
(
Menu_Key_en_t
enKeyType
)
{
uint8_t
updataDir
=
0u
;
uint8_t
datmax
=
0u
;
uint8_t
datmin
=
0u
;
if
(
enKeyType
==
MENU_KEY_DOWN_SHORT
)
{
updataDir
=
1
;
datmax
=
5u
;
datmin
=
0u
;
Menu_u8Data_Updata_Process
(
updataDir
,
datmax
,
datmin
,
1u
,
(
uint8_t
*
)
&
(
MenuData
.
Dis_Minute_Tenb
));
}
}
void
Menu_Logic_Operation_Clock_Min_Bit_Set
(
Menu_Key_en_t
enKeyType
)
{
uint8_t
updataDir
=
0u
;
uint8_t
datmax
=
0u
;
uint8_t
datmin
=
0u
;
if
(
enKeyType
==
MENU_KEY_DOWN_SHORT
)
{
updataDir
=
1
;
datmax
=
9u
;
datmin
=
0u
;
Menu_u8Data_Updata_Process
(
updataDir
,
datmax
,
datmin
,
1u
,
(
uint8_t
*
)
&
(
MenuData
.
Dis_Minute_Bit
));
}
}
void
Menu_Logic_Operation_Backlight_Setting
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_Logic_Operation_Bluetooth_Connect
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_Logic_Operation_Clock_Setting
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_Logic_Operation_Unit_Setting
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_Logic_Operation_Language_Setting
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_Logic_Operation_Fault_Information
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_Logic_Operation_Phone_Connect
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_Logic_Operation_Quit
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_Logic_Operation_Unit_Km
(
Menu_Key_en_t
enKeyType
)
{
if
(
enKeyType
==
MENU_KEY_CONFIRM_SHORT
)
{
Menu_Item_Select_Set
(
MENU_ITEM_UNIT_KM
,
1
);
Menu_Item_Select_Set
(
MENU_ITEM_UNIT_MILE
,
0
);
MenuData
.
Unit
=
0
;
}
}
void
Menu_Logic_Operation_Unit_Mile
(
Menu_Key_en_t
enKeyType
)
{
if
(
enKeyType
==
MENU_KEY_CONFIRM_SHORT
)
{
Menu_Item_Select_Set
(
MENU_ITEM_UNIT_KM
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_UNIT_MILE
,
1
);
MenuData
.
Unit
=
1
;
}
}
void
Menu_Logic_Operation_Language_Chinese
(
Menu_Key_en_t
enKeyType
)
{
if
(
enKeyType
==
MENU_KEY_CONFIRM_SHORT
)
{
Menu_Item_Select_Set
(
MENU_ITEM_LANGUAGE_CHINESE
,
1
);
Menu_Item_Select_Set
(
MENU_ITEM_LANGUAGE_ENGLISH
,
0
);
MenuData
.
Language
=
0
;
}
}
void
Menu_Logic_Operation_Language_English
(
Menu_Key_en_t
enKeyType
)
{
if
(
enKeyType
==
MENU_KEY_CONFIRM_SHORT
)
{
Menu_Item_Select_Set
(
MENU_ITEM_LANGUAGE_CHINESE
,
0
);
Menu_Item_Select_Set
(
MENU_ITEM_LANGUAGE_ENGLISH
,
1
);
MenuData
.
Language
=
1
;
}
}
void
Menu_Logic_Operation_Phone_Connect_Set
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_Logic_Operation_Phone_Connect_App
(
Menu_Key_en_t
enKeyType
)
{
}
void
Menu_u8Data_Updata_Process
(
uint8_t
updateDir
,
uint8_t
datMax
,
uint8_t
datMin
,
uint8_t
datStep
,
uint8_t
*
dat
)
{
uint8_t
temp
=
*
dat
;
if
(
datMax
>
datMin
)
{
if
(
updateDir
==
1u
)
{
if
(
temp
<
datMax
)
{
if
((
temp
)
<=
(
255u
-
datStep
))
{
temp
+=
datStep
;
}
}
else
{
temp
=
datMin
;
}
}
else
if
(
updateDir
==
2u
)
{
if
(
temp
>
datMin
)
{
if
(
temp
>=
datStep
)
{
temp
-=
datStep
;
}
}
else
{
temp
=
datMax
;
}
}
else
{
}
}
else
{
}
*
dat
=
temp
;
}
// }
// void SUBJECT2_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x11;
// g_u8Cursor_Posittion = 2u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// g_u8Theme = g_u8Cursor_Posittion;
// }
// }
// void SUBJECT3_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x11;
// g_u8Cursor_Posittion = 3u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// g_u8Theme = g_u8Cursor_Posittion;
// }
// }
// void TIME_12H_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x31;
// g_u8Cursor_Posittion = 0x00u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// g_u8Theme = !g_u8Cursor_Posittion;
// }
// }
// void TIME_24H_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x31;
// g_u8Cursor_Posittion = 0x01u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// g_u8Theme = !g_u8Cursor_Posittion;
// }
// }
// void TIME_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x31;
// g_u8Cursor_Posittion = 0x02u;
// //亮灭逻辑没写
// }
// void BACKLIGHT_TYPE1_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x41;
// g_u8Cursor_Posittion = 0x01u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// MenuInfor.BackLight_Val = BackLight_Val_1;
// }
// }
// void BACKLIGHT_TYPE2_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x41;
// g_u8Cursor_Posittion = 0x02u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// MenuInfor.BackLight_Val = BackLight_Val_2;
// }
// }
// void BACKLIGHT_TYPE3_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x41;
// g_u8Cursor_Posittion = 0x03u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// MenuInfor.BackLight_Val = BackLight_Val_3;
// }
// }
// void BACKLIGHT_TYPE4_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x41;
// g_u8Cursor_Posittion = 0x04u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// MenuInfor.BackLight_Val = BackLight_Val_4;
// }
// }
// void BACKLIGHT_TYPE5_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x41;
// g_u8Cursor_Posittion = 0x05u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// MenuInfor.BackLight_Val = BackLight_Val_5;
// }
// }
// void BACKLIGHT_TYPEA_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x41;
// g_u8Cursor_Posittion = 0x06u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// MenuInfor.BackLight_Val = BackLight_Val_A;
// }
// }
// void TPMS_UNIT_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x51;
// g_u8Cursor_Posittion = 0x01u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// //胎压单位进行顺序切换
// }
// }
// void TPMS_STUDYF_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x51;
// g_u8Cursor_Posittion = 0x02u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// //前胎压学习状态位
// }
// else if(enKeyType == MENU_KEY_DOWN_SUPER_LONG)
// {
// //解除胎压学习
// }
// }
// void TPMS_STUDYB_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x51;
// g_u8Cursor_Posittion = 0x03u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// //后胎压学习状态位
// }
// else if(enKeyType == MENU_KEY_DOWN_SUPER_LONG)
// {
// //解除胎压学习
// }
// }
// void BLUE_LINK_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x71;
// g_u8Cursor_Posittion = 0x01u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// if(g_u8Blue == 1u)
// {
// g_u8Blue = 2;
// }
// else
// {
// g_u8Blue = 1u;
// }
// }
// }
// void BLUE_lINKMAN_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x71;
// g_u8Cursor_Posittion = 0x02u;
// }
// void BLUE_NAME_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x71;
// g_u8Cursor_Posittion = 0x03u;
// }
// void BLUE_OUT_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x71;
// g_u8Cursor_Posittion = 0x01u;
// }
// void DVR_SET_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x81;
// g_u8Cursor_Posittion = 0x01u;
// }
// void DVR_LOOK_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x81;
// g_u8Cursor_Posittion = 0x02u;
// }
// void VERSION2_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x91;
// g_u8Cursor_Posittion = 0x00u;
// }
// void BACKLIGHT_BLACK_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x12;
// g_u8Cursor_Posittion = 0x01u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// MenuInfor.BackLightMode = g_u8Cursor_Posittion;
// }
// }
// void BACKLIGHT_WHITE_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x12;
// g_u8Cursor_Posittion = 0x02u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// MenuInfor.BackLightMode = g_u8Cursor_Posittion;
// }
// }
// void BACKLIGHT_A_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x12;
// g_u8Cursor_Posittion = 0x03u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// MenuInfor.BackLightMode = g_u8Cursor_Posittion;
// }
// }
// void DVR_SET2_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x82;
// g_u8Cursor_Posittion = 0x01u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// if(g_u8DVR_Set == 1u)
// {
// g_u8DVR_Set = 2;
// }
// else
// {
// g_u8DVR_Set = 1u;
// }
// }
// }
// void DVR_NAME_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x82;
// g_u8Cursor_Posittion = 0x02u;
// }
// void STORAGE_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x82;
// g_u8Cursor_Posittion = 0x03u;
// }
// void FORMATTING_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x82;
// g_u8Cursor_Posittion = 0x04u;
// }
// void DVR_LOOK2_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x84;
// g_u8Cursor_Posittion = 0x00u;
// }
// void FACTORY_YES_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0xA1;
// g_u8Cursor_Posittion = 0x01u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// g_u8Factory = g_u8Cursor_Posittion;
// }
// }
// void FACTORY_NO_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0xA1;
// g_u8Cursor_Posittion = 0x01u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// g_u8Factory = g_u8Cursor_Posittion;
// }
// }
// void FORMATTING_YES_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x84;
// g_u8Cursor_Posittion = 0x01u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// g_u8Formatting = g_u8Cursor_Posittion;
// }
// }
// void FORMATTING_NO_Service(Menu_Key_en_t enKeyType)
// {
// g_u8Menu_Grade = 0x84;
// g_u8Cursor_Posittion = 0x02u;
// if(enKeyType == MENU_KEY_CONFIRM_SHORT)
// {
// g_u8Formatting = g_u8Cursor_Posittion;
// }
// }
\ No newline at end of file
Firmware/Source/Component/PowerManagement/PowerManag_user.c
View file @
9153bef1
#include "PowerManagement.h"
#include "Components.h"
//
RTC_Information_st_t g_stRTCInformation;
RTC_Information_st_t
g_stRTCInformation
;
static
void
Power_KL30_Init
(
void
);
static
void
Power_Wakeup_Init
(
void
);
...
...
@@ -10,14 +10,11 @@ static void Power_OVP_Init(void);
static
void
Power_IG_OFF_Init
(
void
);
static
void
Power_IG_ON_Init
(
void
);
static
void
Power_Sleep_Init
(
void
);
static
Power_Status_em
Power_Stay_ON
(
void
);
static
Power_Status_em
Power_Stay_OFF
(
void
);
static
Power_Status_em
Power_Stay_Protect
(
void
);
static
Power_Status_em
Power_Stay_Sleep
(
void
);
static
const
st_PowerGroup
g_stPwrTasks
=
{
Power_KL30_Init
,
Power_IG_OFF_Init
,
...
...
@@ -56,32 +53,28 @@ static void Power_KL30_Init(void)
Data_User_Mileage_KL30Init
();
Fuel_KL30_Init
();
Amt630hInit
();
Telltales_Init
();
TimerM_PWM_counter_Output_Init
(
TIMERM_COUNTER1
,
400
,
64000000
);
TimerM_PWM_CH_Output_init
(
TIMERM_COUNTER1
,
TIMERM_CHB
,
ActiveLevel_High
);
// g_stRTCInformation.u8RTCSecond = 0;
// g_stRTCInformation.u8RTCMinute = 0;
// g_stRTCInformation.u8RTCHour = 0;
// g_stRTCInformation.u8RTCDayOfMonth = 1;
// g_stRTCInformation.u8RTCMonth = 1;
// g_stRTCInformation.u8RTCYear = 20;
// RTE_RTC_Init(g_stRTCInformation);
// RTE_DEEPSLEEP_GPIO_Interrupt_Enable(WAKEUP_KL15_In,Trigger_Rising);
g_stRTCInformation
.
u8RTCSecond
=
0
;
g_stRTCInformation
.
u8RTCMinute
=
0
;
g_stRTCInformation
.
u8RTCHour
=
0
;
g_stRTCInformation
.
u8RTCDayOfMonth
=
1
;
g_stRTCInformation
.
u8RTCMonth
=
1
;
g_stRTCInformation
.
u8RTCYear
=
20
;
RTE_RTC_Init
(
g_stRTCInformation
);
Menu_User_Init
();
Can_Init
();
Protocol_KL30_Wakeup_Init
();
//RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN, Trigger_Rising);
}
//extern uint32_t PowerIgnOffTimeLine;
static
void
Power_Wakeup_Init
(
void
)
{
// PowerIgnOffTimeLine = 0;
Gpio_Init
(
Gpio_WakeUp_Init
);
eeprom_StoreInfo_Init
();
Analog_Signal_Conv_Init
();
Data_User_Mileage_WakeupInit
();
Sys_WakeUp_Init
();
Data_Vehicle_Speed_KL30_Wakeup_Init
();
Data_Engine_Speed_KL30_Wakeup_Init
();
...
...
@@ -92,9 +85,12 @@ static void Power_Wakeup_Init(void)
Amt630hInit
();
TimerM_PWM_counter_Output_Init
(
TIMERM_COUNTER1
,
400
,
64000000
);
TimerM_PWM_CH_Output_init
(
TIMERM_COUNTER1
,
TIMERM_CHB
,
ActiveLevel_High
);
//Telltales_Init();
// RTE_DEEPSLEEP_GPIO_Interrupt_Enable(WAKEUP_KL15_In,Trigger_Rising);
Telltales_Init
();
Key_KL30_Init_EXample
();
Menu_User_WAKEUP
();
Can_Init
();
Protocol_KL30_Wakeup_Init
();
//RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN, Trigger_Rising);
}
static
void
Power_LVP_Init
(
void
)
...
...
@@ -109,7 +105,6 @@ static void Power_OVP_Init(void)
static
void
Power_IG_OFF_Init
(
void
)
{
Line_In_KL15_OFF_Init
();
}
static
void
Power_IG_ON_Init
(
void
)
...
...
@@ -123,19 +118,15 @@ static void Power_IG_ON_Init(void)
static
void
Power_Sleep_Init
(
void
)
{
TimerM_PWM_counter_Output_Init
(
TIMERM_COUNTER1
,
400
,
0
);
// //RTC_Stop();
// rte_can_deinit(CAN_CH_0);
rte_can_deinit
(
CAN_CH_0
);
TMM0_Stop
();
TMM1_Stop
();
TMM_All_Stop
();
RTE_ADC_DeInit
();
// //CGC->CSC = 1 ; //HIOSTOP = 1
Gpio_Init
(
Gpio_Sleep_Init
);
AMT630H_Sleep
();
Analog_Signal_Conv_Stop
();
//
RTE_DEEPSLEEP_Enable();
RTE_DEEPSLEEP_Enable
();
}
static
Power_Status_em
Power_Stay_ON
(
void
)
...
...
@@ -166,15 +157,19 @@ static Power_Status_em Power_Stay_OFF(void)
}
else
{
if
((
Common_GetIgnOffTime
()
<
20
000
))
if
((
Common_GetIgnOffTime
()
<
1
000
))
{
u8PowerSts
=
EM_IGN_OFF
;
}
else
{
//igoff大于1s且下15电才进休眠,否则一直保持在igoff状态
if
(
Sys_Read_KL15_Voltage
()
<
5000
)
{
u8PowerSts
=
EM_IGN_Sleep_Init
;
}
}
}
return
u8PowerSts
;
}
...
...
@@ -188,8 +183,8 @@ static Power_Status_em Power_Stay_Protect(void)
/* 关闭所有外设,坪保留AD采集,电溝状思切�? */
{
TimerM_PWM_set_duty
(
TIMERM_COUNTER1
,
TIMERM_CHB
,
0
);
CAN_TX_SetEnable
(
&
CAN_CH0_CanMsgTxOp
,
CAN_N_TX_Disable
);
}
u8PowerSts
=
EM_IGN_OFF_Init
;
/* 电溝模弝正常 */
...
...
@@ -202,8 +197,15 @@ static Power_Status_em Power_Stay_Protect(void)
if
(
SYS_OPR_STAT_RUN
)
{
CAN_TX_SetEnable
(
&
CAN_CH0_CanMsgTxOp
,
CAN_N_TX_Enable
);
return
u8PowerSts
;
}
//进入异常电压,电源库里直接将15电等于0,则直接退出,状态是igoff,下15则进入休眠
if
(
SYS_OPR_STAT_IGN_OFF
)
{
break
;
}
}
}
...
...
Firmware/Source/Component/Telltales/Telltales_user.c
View file @
9153bef1
//#include "Telltales_Lib.h"
//#include "Telltales_user.h"
//#include "Line_In\Line_In_user.h"
//#include "Application.h"
//#include "CAN_APP\CAN_CH0_CAN_Communication_Matrix.h"
//#include "Components.h"
#include "Telltales_Lib.h"
#include "Telltales_user.h"
#include "Line_In\Line_In_user.h"
#include "Components.h"
//static Tellib_uint16_t LED_High_Beam_Judgement(void);
//static void LED_High_Beam_Execution(Tellib_uint16_t led_status);
//static Tellib_uint16_t LED_Efi_Fault_Judgement(void);
//static void LED_Efi_Fault_Execution(Tellib_uint16_t led_status);
//static Tellib_uint16_t LED_Auto_Start_Stop_Judgement(void);
//static void LED_Auto_Start_Stop_Execution(Tellib_uint16_t led_status);
//static Tellib_uint16_t LED_Voltage_Judgement(void);
//static void LED_Voltage_Execution(Tellib_uint16_t led_status);
static
Tellib_uint16_t
LED_Turn_Left_Judgement
(
void
);
static
void
LED_Turn_Left_Execution
(
Tellib_uint16_t
led_status
);
static
Tellib_uint16_t
LED_Turn_Right_Judgement
(
void
);
static
void
LED_Turn_Right_Execution
(
Tellib_uint16_t
led_status
);
static
Tellib_uint16_t
LED_High_Beam_Judgement
(
void
);
static
void
LED_High_Beam_Execution
(
Tellib_uint16_t
led_status
);
static
Tellib_uint16_t
LED_Efi_Fault_Judgement
(
void
);
//电喷故障灯
static
void
LED_Efi_Fault_Execution
(
Tellib_uint16_t
led_status
);
static
Tellib_uint16_t
LED_ABS_Judgement
(
void
);
static
void
LED_ABS_Execution
(
Tellib_uint16_t
led_status
);
static
Tellib_uint16_t
LED_Auto_Start_Stop_Judgement
(
void
);
static
void
LED_Auto_Start_Stop_Execution
(
Tellib_uint16_t
led_status
);
static
Tellib_uint16_t
LED_Oil_Pressure_Alert_Judgement
(
void
);
static
void
LED_Oil_Pressure_Alert_Execution
(
Tellib_uint16_t
led_status
);
static
Tellib_uint16_t
LED_TCS_Judgement
(
void
);
static
void
LED_TCS_Execution
(
Tellib_uint16_t
led_status
);
static
Tellib_uint16_t
LED_HEV_Judgement
(
void
);
static
void
LED_HEV_Execution
(
Tellib_uint16_t
led_status
);
static
Tellib_uint16_t
LED_Voltage_Judgement
(
void
);
static
void
LED_Voltage_Execution
(
Tellib_uint16_t
led_status
);
static
Tellib_uint16_t
LED_Fuel_Level_Low_Judgement
(
void
);
static
void
LED_Fuel_Level_Low_Execution
(
Tellib_uint16_t
led_status
);
static
Tellib_uint16_t
LED_Coolant_Temperature_Judgement
(
void
);
static
void
LED_Coolant_Temperature_Execution
(
Tellib_uint16_t
led_status
);
static
Tellib_uint16_t
LED_WIFI_Judgement
(
void
);
static
void
LED_WIFI_Execution
(
Tellib_uint16_t
led_status
);
static
Tellib_uint16_t
LED_Bluetooth_Judgement
(
void
);
static
void
LED_Bluetooth_Execution
(
Tellib_uint16_t
led_status
);
static
Tellib_uint16_t
LED_E_Judgement
(
void
);
static
void
LED_E_Execution
(
Tellib_uint16_t
led_status
);
static
Tellib_uint16_t
LED_S_Judgement
(
void
);
static
void
LED_S_Execution
(
Tellib_uint16_t
led_status
);
uint8_t
u8CanId401Flag
=
0
;
const
LED_Attribute_st
LED_Attribute
[
LED_Max
]
=
{
/* 指示灯索引 是否自检 外部信号自检 工作电源状态 自检开始时间 自检持续时间 指示灯点亮条件 指示灯执行函数 */
//static Tellib_uint16_t LED_Fuel_Judgement(void);
//static void LED_Fuel_Execution(Tellib_uint16_t led_status);
{
em_LED_Turn_Left
,
SelfCheck
,
NoExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_Turn_Left_Judgement
,
LED_Turn_Left_Execution
},
{
em_LED_Turn_Right
,
SelfCheck
,
NoExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_Turn_Right_Judgement
,
LED_Turn_Right_Execution
},
{
em_LED_High_Beam
,
SelfCheck
,
NoExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_High_Beam_Judgement
,
LED_High_Beam_Execution
},
{
em_LED_Efi_Fault
,
SelfCheck
,
NoExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_Efi_Fault_Judgement
,
LED_Efi_Fault_Execution
},
{
em_LED_ABS
,
SelfCheck
,
NoExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_ABS_Judgement
,
LED_ABS_Execution
},
{
em_LED_Auto_Start_Stop
,
SelfCheck
,
NoExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_Auto_Start_Stop_Judgement
,
LED_Auto_Start_Stop_Execution
},
{
em_LED_Oil_Pressure_Alert
,
SelfCheck
,
NoExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_Oil_Pressure_Alert_Judgement
,
LED_Oil_Pressure_Alert_Execution
},
{
em_LED_TCS
,
SelfCheck
,
NoExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_TCS_Judgement
,
LED_TCS_Execution
},
{
em_LED_HEV
,
SelfCheck
,
NoExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_HEV_Judgement
,
LED_HEV_Execution
},
{
em_LED_Voltage
,
SelfCheck
,
NoExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_Voltage_Judgement
,
LED_Voltage_Execution
},
{
em_LED_Fuel_Level_Low
,
SelfCheck
,
NoExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_Fuel_Level_Low_Judgement
,
LED_Fuel_Level_Low_Execution
},
{
em_LED_Coolant_Temperature
,
SelfCheck
,
NoExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_Coolant_Temperature_Judgement
,
LED_Coolant_Temperature_Execution
},
{
em_LED_WIFI
,
SelfCheck
,
NoExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_WIFI_Judgement
,
LED_WIFI_Execution
},
{
em_LED_Bluetooth
,
SelfCheck
,
NoExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_Bluetooth_Judgement
,
LED_Bluetooth_Execution
},
{
em_LED_E
,
SelfCheck
,
NoExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_E_Judgement
,
LED_E_Execution
},
{
em_LED_S
,
SelfCheck
,
NoExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_S_Judgement
,
LED_S_Execution
},
};
Tellib_uint8_t
Tel_Mem
[
Tel_MEM_Block_Size
*
LED_Max
+
Tel_MEM_Block_Addition
];
void
Telltales_Init
(
void
)
{
TelExtPara
m_ExtPara
;
m_ExtPara
.
TotalLength
=
LED_Max
;
m_ExtPara
.
LED_PowerOFF_TimerCbk
=
Common_GetIgnOffTime
;
m_ExtPara
.
LED_PowerON_TimerCbk
=
Common_GetIgnOnTime
;
m_ExtPara
.
LED_PowerCbk
=
Common_Get_IG_Sts
;
u8CanId401Flag
=
0
;
Telltales_KL30_Wakeup_Init
(
Tel_Mem
,
LED_Attribute
,
&
m_ExtPara
);
}
void
Can_ID_401
(
uint8_t
CopyData
[])
{
u8CanId401Flag
=
1
;
}
/******************************************************************************************************************************************************************************************************************* */
static
Tellib_uint16_t
LED_Turn_Left_Judgement
(
void
)
//硬线-P10 高电平
{
Tellib_uint16_t
LED_STATE
=
0u
;
if
(
Line_In_Get_Status
(
LINE_IN_Turn_Left
))
{
LED_STATE
=
1
;
}
else
{
LED_STATE
=
0
;
}
return
LED_STATE
;
}
static
void
LED_Turn_Left_Execution
(
Tellib_uint16_t
led_status
)
{
// if (led_status == 1u)
// {
// RTE_GPIO_Set_Level(TurnLeft_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(TurnLeft_MUC_OUT, LED_LINEOUT_Low);
// }
}
/*硬线-P9 高电平*/
static
Tellib_uint16_t
LED_Turn_Right_Judgement
(
void
)
{
Tellib_uint16_t
LED_STATE
=
0u
;
if
(
Line_In_Get_Status
(
LINE_IN_Turn_Right
))
{
LED_STATE
=
1
;
}
else
{
LED_STATE
=
0
;
}
return
LED_STATE
;
}
static
void
LED_Turn_Right_Execution
(
Tellib_uint16_t
led_status
)
{
// if (led_status == 1u)
// {
// RTE_GPIO_Set_Level(TurnRight_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(TurnRight_MUC_OUT, LED_LINEOUT_Low);
// }
}
/*硬线-P18 高电平*/
static
Tellib_uint16_t
LED_High_Beam_Judgement
(
void
)
{
Tellib_uint16_t
LED_STATE
=
0u
;
if
(
Line_In_Get_Status
(
LINE_IN_High_Beam
))
{
LED_STATE
=
1
;
}
else
{
LED_STATE
=
0
;
}
return
LED_STATE
;
}
static
void
LED_High_Beam_Execution
(
Tellib_uint16_t
led_status
)
{
// if (led_status == 1u)
// {
// RTE_GPIO_Set_Level(HighBeam_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(HighBeam_MUC_OUT, LED_LINEOUT_Low);
// }
}
/*硬线-P15 低电平*/
static
Tellib_uint16_t
LED_Efi_Fault_Judgement
(
void
)
{
Tellib_uint16_t
LED_STATE
=
0u
;
if
(
Line_In_Get_Status
(
LINE_IN_Efi_Fault
))
{
LED_STATE
=
1
;
}
else
{
LED_STATE
=
0
;
}
return
LED_STATE
;
}
static
void
LED_Efi_Fault_Execution
(
Tellib_uint16_t
led_status
)
{
// if (led_status == 1u)
// {
// RTE_GPIO_Set_Level(EfiFault_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(EfiFault_MUC_OUT, LED_LINEOUT_Low);
// }
}
/*硬线-P7 悬空/高点亮 接地灭*/
static
Tellib_uint16_t
LED_ABS_Judgement
(
void
)
{
Tellib_uint16_t
LED_STATE
=
0u
;
if
(
Line_In_Get_Status
(
LINE_IN_ABS
))
{
LED_STATE
=
1
;
}
else
{
LED_STATE
=
0
;
}
return
LED_STATE
;
}
static
void
LED_ABS_Execution
(
Tellib_uint16_t
led_status
)
{
// if (led_status == 1u)
// {
// RTE_GPIO_Set_Level(ABS_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(ABS_MUC_OUT, LED_LINEOUT_Low);
// }
}
/*硬线-P12 低电平*/
static
Tellib_uint16_t
LED_Auto_Start_Stop_Judgement
(
void
)
{
Tellib_uint16_t
LED_STATE
=
0u
;
if
(
Line_In_Get_Status
(
LINE_IN_Auto_Start_Stop
))
{
LED_STATE
=
1
;
}
else
{
LED_STATE
=
0
;
}
return
LED_STATE
;
}
static
void
LED_Auto_Start_Stop_Execution
(
Tellib_uint16_t
led_status
)
{
// if (led_status == 1u)
// {
// RTE_GPIO_Set_Level(AutoStartStop_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(AutoStartStop_MUC_OUT, LED_LINEOUT_Low);
// }
}
/*硬线-P21 低电平*/
static
Tellib_uint16_t
LED_Oil_Pressure_Alert_Judgement
(
void
)
{
Tellib_uint16_t
LED_STATE
=
0u
;
if
(
Line_In_Get_Status
(
LINE_IN_Oil_Pressure_Alert
))
{
LED_STATE
=
1
;
}
else
{
LED_STATE
=
0
;
}
return
LED_STATE
;
}
static
void
LED_Oil_Pressure_Alert_Execution
(
Tellib_uint16_t
led_status
)
{
// if (led_status == 1u)
// {
// RTE_GPIO_Set_Level(OilPressureAlert_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(OilPressureAlert_MUC_OUT, LED_LINEOUT_Low);
// }
}
/*CAN信号来源:TCS_37B*/
static
Tellib_uint16_t
LED_TCS_Judgement
(
void
)
{
//Tellib_uint16_t LED_STATE = 0u;
//if (CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_CH0_37B_Msg_Count) == CAN_SIG_LOST)
//{
// LED_STATE = 0u;
//}
//else
//{
// if(Get_CAN_CH0_ID_37B_Sig_TCS_Work_Mode() == 1)
// {
// LED_STATE = 1u;
// }
// else
// {
// LED_STATE = 0u;
// }
//}
//return LED_STATE;
//static Tellib_uint16_t LED_Atmosphere_Judgement(void);
//static void LED_Atmosphere_Execution(Tellib_uint16_t led_status);
//uint8_t u8CanId401Flag = 0;
//const LED_Attribute_st LED_Attribute [ LED_Max ] = {
// /* 指示灯索引 是否自检 外部信号自检 工作电源状态 自检开始时间 自检持续时间 指示灯点亮条件 指示灯执行函数 */
//
// {em_LED_High_Beam, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 3000ul, LED_High_Beam_Judgement, LED_High_Beam_Execution },
// {em_LED_Efi_Fault, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 3000ul, LED_Efi_Fault_Judgement, LED_Efi_Fault_Execution },
// {em_LED_Auto_Start_Stop, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 3000ul, LED_Auto_Start_Stop_Judgement, LED_Auto_Start_Stop_Execution },
// {em_LED_Voltage, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 3000ul, LED_Voltage_Judgement, LED_Voltage_Execution },
// {em_LED_Fuel, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 3000ul, LED_Fuel_Judgement, LED_Fuel_Execution },
// {em_LED_Atmosphere, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 3000ul, LED_Atmosphere_Judgement, LED_Atmosphere_Execution},
//};
}
static
void
LED_TCS_Execution
(
Tellib_uint16_t
led_status
)
{
// if (led_status == 1u)
// {
// RTE_GPIO_Set_Level(TCS_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(TCS_MUC_OUT, LED_LINEOUT_Low);
// }
}
/*信号来源:ISG_111*/
static
Tellib_uint16_t
LED_HEV_Judgement
(
void
)
{
//Tellib_uint16_t LED_STATE = 0u;
//if (CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_CAN_0x402_Msg_Count) == CAN_SIG_LOST)
//{
// LED_STATE = 0u;
//}
//else
//{
// if( == 1)
// {
// LED_STATE = 1u;
// }
// else
// {
// LED_STATE = 0u;
// }
//}
//return LED_STATE;
}
static
void
LED_HEV_Execution
(
Tellib_uint16_t
led_status
)
{
// if (led_status == 1u)
// {
// RTE_GPIO_Set_Level(HEV_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(HEV_MUC_OUT, LED_LINEOUT_Low);
// }
}
/*硬线-P19 电压值*/
static
Tellib_uint16_t
LED_Voltage_Judgement
(
void
)
{
Tellib_uint16_t
LED_STATE
=
0u
;
if
(
Line_In_Get_Status
(
LINE_IN_Voltage
))
{
LED_STATE
=
1
;
}
else
{
LED_STATE
=
0
;
}
return
LED_STATE
;
}
static
void
LED_Voltage_Execution
(
Tellib_uint16_t
led_status
)
{
// if (led_status == 1u)
// {
// RTE_GPIO_Set_Level(Voltage_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(Voltage_MUC_OUT, LED_LINEOUT_Low);
// }
}
/*硬线P14-阻值*/
static
Tellib_uint16_t
LED_Fuel_Level_Low_Judgement
(
void
)
{
Tellib_uint16_t
LED_STATE
=
0u
;
if
(
Line_In_Get_Status
(
LINE_IN_Fuel_Level_Low
))
{
LED_STATE
=
1
;
}
else
{
LED_STATE
=
0
;
}
return
LED_STATE
;
}
static
void
LED_Fuel_Level_Low_Execution
(
Tellib_uint16_t
led_status
)
{
// if (led_status == 1u)
// {
// RTE_GPIO_Set_Level(FuelLevelLow_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(FuelLevelLow_MUC_OUT, LED_LINEOUT_Low);
// }
}
//
/*信号来源:ECU_101 +硬线-P11 阻值 CAN>硬线*/
static
Tellib_uint16_t
LED_Coolant_Temperature_Judgement
(
void
)
{
}
static
void
LED_Coolant_Temperature_Execution
(
Tellib_uint16_t
led_status
)
{
// if (led_status == 1u)
// {
// RTE_GPIO_Set_Level(CoolantTemperature_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(CoolantTemperature_MUC_OUT, LED_LINEOUT_Low);
// }
}
/*无*/
static
Tellib_uint16_t
LED_WIFI_Judgement
(
void
)
{
Tellib_uint16_t
LED_STATE
=
0u
;
// if (Line_In_Get_Status(LINE_IN_WIFI))
// {
// LED_STATE = 1;
// }
// else
// {
// LED_STATE = 0;
// }
return
LED_STATE
;
}
static
void
LED_WIFI_Execution
(
Tellib_uint16_t
led_status
)
{
// if (led_status == 1u)
// {
// RTE_GPIO_Set_Level(WIFI_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(WIFI_MUC_OUT, LED_LINEOUT_Low);
// }
}
/*信号来源:蓝牙模块*/
static
Tellib_uint16_t
LED_Bluetooth_Judgement
(
void
)
{
// Tellib_uint16_t LED_STATE = 0u;
// if (Line_In_Get_Status(LINE_IN_Bluetooth))
// {
// LED_STATE = 1;
// }
// else
// {
// LED_STATE = 0;
// }
// return LED_STATE;
}
static
void
LED_Bluetooth_Execution
(
Tellib_uint16_t
led_status
)
{
// if (led_status == 1u)
// {
// RTE_GPIO_Set_Level(Bluetooth_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(Bluetooth_MUC_OUT, LED_LINEOUT_Low);
// }
}
/*信号来源:0x111*/
static
Tellib_uint16_t
LED_E_Judgement
(
void
)
{
//Tellib_uint8_t Tel_Mem [ Tel_MEM_Block_Size * LED_Max + Tel_MEM_Block_Addition ];
}
static
void
LED_E_Execution
(
Tellib_uint16_t
led_status
)
{
// if (led_status == 1u)
// {
// RTE_GPIO_Set_Level(E_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(E_MUC_OUT, LED_LINEOUT_Low);
// }
}
/*信号来源:0x111*/
static
Tellib_uint16_t
LED_S_Judgement
(
void
)
{
// void Telltales_Init(void)
// {
// TelExtPara m_ExtPara;
// m_ExtPara.TotalLength = LED_Max;
// m_ExtPara.LED_PowerOFF_TimerCbk = Common_GetIgnOffTime;
// m_ExtPara.LED_PowerON_TimerCbk = Common_GetIgnOnTime;
// m_ExtPara.LED_PowerCbk = Common_Get_IG_Sts;
// u8CanId401Flag = 0;
// Telltales_KL30_Wakeup_Init(Tel_Mem, LED_Attribute, &m_ExtPara);
// }
//void Can_ID_401(uint8_t CopyData [])
//{
// u8CanId401Flag = 1;
//}
//
//static Tellib_uint16_t LED_High_Beam_Judgement(void)
//{
// Tellib_uint16_t LED_STATE = 0u;
// if (Line_In_Get_Status(LINE_IN_HighBeam))
// {
// LED_STATE = 1;
// }
// else
// {
// LED_STATE = 0;
// }
// return LED_STATE;
//}
//static void LED_High_Beam_Execution(Tellib_uint16_t led_status)
//{
// if ( led_status == 1u )
// {
// RTE_GPIO_Set_Level(HighBeam_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(HighBeam_MUC_OUT, LED_LINEOUT_Low);
// }
//}
//static Tellib_uint16_t LED_Efi_Fault_Judgement(void)
//{
// Tellib_uint16_t LED_STATE = 0u;
// if (CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_CAN_0x402_Msg_Count) == CAN_SIG_LOST)
// {
// LED_STATE = 0u;
// }
// else
// {
// if(Get_CAN_CH0_ID_402_Sig_ECU_Warning_Lamp() == 1)
// {
// LED_STATE = 1u;
// }
// else
// {
// LED_STATE = 0u;
// }
// }
// return LED_STATE;
//}
//static void LED_Efi_Fault_Execution(Tellib_uint16_t led_status)
//{
// if ( led_status == 1u )
// {
// RTE_GPIO_Set_Level(EFI_FAULT_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(EFI_FAULT_OUT, LED_LINEOUT_Low);
// }
//}
//Tellib_uint8_t Auto_Start_Stop = 0u;
//Tellib_uint8_t Key_ISTOP = 0u;
//void Telltales_Auto_Start_Stop(void)
//{
// Auto_Start_Stop = 0;
//
//}
//void Telltales_Auto_Start_Stop_Setting(void)
//{
// if (Auto_Start_Stop == 0)
// {
// Auto_Start_Stop = 1;
// }
// else if (Auto_Start_Stop == 1)
// {
// Auto_Start_Stop = 0;
// }
// else
// {
// ;
// }
//}
//static Tellib_uint16_t LED_Auto_Start_Stop_Judgement(void)
//{
// Tellib_uint16_t LED_STATE = 0u;
//
// if (Auto_Start_Stop == 1)
// {
// if (Line_In_Get_Status(LINE_IN_Auto_Start_Stop))
// {
// LED_STATE = 1;
// }
// else
// {
// LED_STATE = 0;
// }
// }
// else
// {
// LED_STATE = 0;
// }
//
// return LED_STATE;
//}
//static void LED_Auto_Start_Stop_Execution(Tellib_uint16_t led_status)
//{
// if ( led_status == 1u )
// {
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_07_Key_ISTOP, LED_ON);
// SEG_SET_LED_STS(1,1);
// }
// else
// {
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_07_Key_ISTOP, LED_OFF);
// SEG_SET_LED_STS(1,0);
// }
//}
//Tellib_uint8_t Telltales_Voltage_Date(void)
//{
// Tellib_uint8_t Voltage = 0;
// Voltage = Get_CAN_CH0_ID_401_Sig_ECU_Battery_Voltage();
// return Voltage;
//}
//static Tellib_uint16_t LED_Voltage_Judgement(void)
//{
// Tellib_uint16_t LED_STATE = 0u;
// Tellib_uint16_t Voltage = 0u;
// Voltage = Telltales_Voltage_Date();
// if ((CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_CAN_0x401_Msg_Count) == CAN_SIG_LOST) || (u8CanId401Flag != 1))
// {
// u8CanId401Flag = 0;
// LED_STATE = 0u;
// }
// else
// {
// if ((Voltage < 120) || (Voltage > 150))
// {
// LED_STATE = 1u;
// }
// else
// {
// LED_STATE = 2u;
// }
// }
// return LED_STATE;
//}
//static void LED_Voltage_Execution(Tellib_uint16_t led_status)
//{
// if ( led_status == 1u )
// {
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_03_High_Low_Voltage, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_02_Normal_Voltage, LED_OFF);
// SEG_SET_LED_STS(0,1);
// }
// else if ( led_status == 2u )
// {
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_02_Normal_Voltage, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_03_High_Low_Voltage, LED_OFF);
// SEG_SET_LED_STS(0,1);
// }
// else
// {
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_03_High_Low_Voltage, LED_OFF);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_02_Normal_Voltage, LED_OFF);
// SEG_SET_LED_STS(0,0);
// }
//}
//static Tellib_uint16_t LED_Fuel_Judgement(void)
//{
// Tellib_uint16_t LED_STATE = 0u;
// if (Common_GetIgnOnTime() >= 3000)
// {
// if(Get_Fuel_Sensor_State() == FuelSensorNormal)
// {
// if(Get_CurFuelSetp() > 1)
// {
// LED_STATE = 3;//白灯
// }
// else
// {
// LED_STATE = 2;//格小于等于1
// }
// }
// else
// {
// LED_STATE = 2;//开路
// }
// }
// else
// {
// LED_STATE = 1;//自检只亮黄
// }
// return LED_STATE;
//}
//static void LED_Fuel_Execution(Tellib_uint16_t led_status)
//{
// if ( led_status == 3u )
// {
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_04_Fuel_W, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_05_Fuel_Y, LED_OFF);
// SEG_SET_LED_STS(2,1);
// }
// else if ( led_status == 2u )
// {
// if (FLASH_SYNC_1Hz)
// {
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_05_Fuel_Y, LED_ON);
// SEG_SET_LED_STS(2,1);
// }
// else
// {
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_05_Fuel_Y, LED_OFF);
// SEG_SET_LED_STS(2,0);
// }
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_04_Fuel_W, LED_OFF);
//
// }
// else if ( led_status == 1u )
// {
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_05_Fuel_Y, LED_ON);
// SEG_SET_LED_STS(2,1);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_04_Fuel_W, LED_OFF);
// }
// else
// {
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_04_Fuel_W, LED_OFF);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_05_Fuel_Y, LED_OFF);
// SEG_SET_LED_STS(2,0);
// }
//}
//static Tellib_uint16_t LED_Atmosphere_Judgement(void)
//{
// Tellib_uint16_t LED_STATE = 0u;
// LED_STATE = 1;
// return LED_STATE;
//}
//static void LED_Atmosphere_Execution(Tellib_uint16_t led_status)
//{
// if (led_status == 1)
// {
// RTE_GPIO_Set_Level(AMBIENT_LIGHT_B, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(AMBIENT_LIGHT_B, LED_LINEOUT_Low);
// }
//}
//void Turn_Left_Right_Lamp(void)
//{
// if ( SYS_OPR_STAT_IGN_ON )
// {
// if (Common_GetIgnOnTime() >= 3000)
// {
// if (Line_In_Get_Status(LINE_IN_TurnLeft))
// {
// RTE_GPIO_Set_Level(LeftTurn_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(LeftTurn_MUC_OUT, LED_LINEOUT_Low);
// }
// if (Line_In_Get_Status(LINE_IN_TurnRight))
// {
// RTE_GPIO_Set_Level(RightTurn_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(RightTurn_MUC_OUT, LED_LINEOUT_Low);
// }
// }
// else
// {
// RTE_GPIO_Set_Level(RightTurn_MUC_OUT, LED_LINEOUT_High);
// RTE_GPIO_Set_Level(LeftTurn_MUC_OUT, LED_LINEOUT_High);
// }
// }
// else
// {
// RTE_GPIO_Set_Level(RightTurn_MUC_OUT, LED_LINEOUT_Low);
// RTE_GPIO_Set_Level(LeftTurn_MUC_OUT, LED_LINEOUT_Low);
// }
//}
}
static
void
LED_S_Execution
(
Tellib_uint16_t
led_status
)
{
// if (led_status == 1u)
// {
// RTE_GPIO_Set_Level(S_MUC_OUT, LED_LINEOUT_High);
// }
// else
// {
// RTE_GPIO_Set_Level(S_MUC_OUT, LED_LINEOUT_Low);
// }
}
\ No newline at end of file
Firmware/Source/Component/Telltales/Telltales_user.h
View file @
9153bef1
//#ifndef TELLTALES_USER_H
//#define TELLTALES_USER_H
#ifndef TELLTALES_USER_H
#define TELLTALES_USER_H
typedef
enum
{
em_LED_Turn_Left
,
em_LED_Turn_Right
,
em_LED_High_Beam
,
em_LED_Efi_Fault
,
em_LED_ABS
,
em_LED_Auto_Start_Stop
,
em_LED_Oil_Pressure_Alert
,
em_LED_TCS
,
em_LED_HEV
,
em_LED_Voltage
,
em_LED_Fuel_Level_Low
,
em_LED_Coolant_Temperature
,
em_LED_WIFI
,
em_LED_Bluetooth
,
em_LED_E
,
em_LED_S
,
//typedef enum
//{
// em_LED_High_Beam,
// em_LED_Efi_Fault,
// em_LED_Auto_Start_Stop,
// em_LED_Voltage,
// em_LED_Fuel,
// em_LED_Atmosphere,
//
// LED_Max ,
//} LED_Idx_t;
//extern Tellib_uint8_t Auto_Start_Stop ;
//void Telltales_Init(void);
//Tellib_uint8_t Telltales_Voltage_Date(void);
//#endif
LED_Max
,
}
LED_Idx_t
;
extern
Tellib_uint8_t
Auto_Start_Stop
;
void
Telltales_Init
(
void
);
Tellib_uint8_t
Telltales_Voltage_Date
(
void
);
#endif
Firmware/Source/Device/Cmsemicon/BAT32A279/RTE/CAN/rte_can.c
View file @
9153bef1
...
...
@@ -20,8 +20,8 @@ static void can_recv_handler(void *msg)
if
(
CAN_GetFlagStatus
(
CAN0
,
CAN_FLAG_REC
)
!=
RESET
)
{
CAN_ClearFlag
(
CAN0
,
CAN_FLAG_REC
);
//
CANMSG = CAN_Get_CANxMSGy(CAN0);
//
CAN_Receive_IT(CAN0, &CAN_RecvMsg);
//
CANMSG = CAN_Get_CANxMSGy(CAN0);
//
CAN_Receive_IT(CAN0, &CAN_RecvMsg);
if
(
can_rx_handler
!=
NULL
)
{
...
...
@@ -31,9 +31,9 @@ static void can_recv_handler(void *msg)
}
/**
* @brief CAN初始?
* @brief CAN初始
�
?
*
* @param config CAN初始结构体指?
* @param config CAN初始结构体指
�
?
* @return uint8_t 0成功 1失败
*/
uint8_t
rte_can_init
(
can_config_st_t
*
config
)
...
...
@@ -98,7 +98,7 @@ uint8_t rte_can_init(can_config_st_t *config)
/**
* @brief can反初始化
* @param CANx CAN0 ? CAN1
* @param CANx CAN0
�
? CAN1
*
* @return uint8_t 0成功 1失败
*/
...
...
@@ -124,10 +124,10 @@ uint8_t rte_can_deinit(CAN_CH ch)
/**
* @brief 获取CAN是否BusOff
* @param CANx CAN0 ? CAN1
* @param CANx CAN0
�
? CAN1
*
* @return uint8_t 0 没有busoff
* 1 错误的操? 2 busoff
* 1 错误的操
�
? 2 busoff
*/
uint8_t
get_can_busoff
(
CAN_CH
ch
)
{
...
...
@@ -151,9 +151,9 @@ uint8_t get_can_busoff(CAN_CH ch)
}
/**
* @brief 从busoff状态恢?
* @brief 从busoff状态恢
�
?
*
* @param CANx CAN0 ? CAN1
* @param CANx CAN0
�
? CAN1
* @return uint8_t 0成功 1失败
*/
uint8_t
reset_busoff
(
CAN_CH
ch
)
...
...
@@ -189,7 +189,7 @@ uint8_t reset_busoff(CAN_CH ch)
return
0
;
}
/* 下面是一些例
? 自己
?
/* 下面是一些例
�? 自己�
?
CAN_SendMsg.Id = 0x00aa0432;
CAN_SendMsg.IDE = CAN_Id_Extended;
CAN_SendMsg.CacheType = CAN_CacheType_Tx;
...
...
Firmware/Source/Device/Cmsemicon/BAT32A279/RTE/CLOCK_Select/RTE_CLOCK_Select_BAT32A279.c
View file @
9153bef1
...
...
@@ -11,15 +11,12 @@ uint32_t RTE_SystemCoreClock;
extern
uint32_t
SystemCoreClock
;
void
RTE_CLOCK_Select_Start
(
void
)
{
////uint32_t msCnt;
#ifdef USED_FX_FCLK
/* config clock */
CGC_HSEConfig
(
OSC_OSCILLATOR
,
OSC_UNDER_10M
);
CGC_Osc_Setting
(
OSC_OSCILLATOR
,
OSC_UNDER_10M
,
OSC_OSCILLATOR
,
OSC_NORMAL_POWER
);
CGC_PLL_Setting
(
PLL_SR_fMX
,
PLL_DIV_2
,
PLL_MUL_16
);
CGC_PLL_CFG_AS_FCLK
();
SystemCoreClockUpdate
();
RTE_SystemCoreClock
=
SystemCoreClock
;
delay_init
(
64000000
);
SystemCoreClock
=
64000000UL
;
#endif
...
...
Firmware/Source/Device/Cmsemicon/BAT32A279/RTE/RTC/RTE_RTC.c
View file @
9153bef1
...
...
@@ -151,7 +151,7 @@ void RTE_RTC_Init(RTC_Information_st_t g_stRTCInformation)
RTC_InitStructure
.
RTC_Date
.
RTC_WeekDay
=
g_stRTCInformation
.
u8RTCDayOfWeek
;
//????
RTC_InitStructure
.
RTC_Date
.
RTC_Month
=
g_stRTCInformation
.
u8RTCMonth
;
//5??
RTC_InitStructure
.
RTC_Date
.
RTC_Year
=
g_stRTCInformation
.
u8RTCYear
;
//2022?��
RTC_InitStructure
.
RTC_Period
=
One_Second
;
//RTC ????????1s?��?��???��????????
RTC_InitStructure
.
RTC_Period
=
Period_None
;
//RTC ????????1s?��?��???��????????
RTC_InitStructure
.
RTC_Alarm_Onoff
=
RTC_Alarm_Off
;
RTC_InitStructure
.
RTC_Alarm
.
Alarm_Minute
=
0
;
...
...
Firmware/Source/Device/Cmsemicon/BAT32A279/RTE/UART/RTE_UART.c
View file @
9153bef1
...
...
@@ -12,8 +12,8 @@ void RTE_UART_Sleep_Init(UART_Channel_en_t enUARTCh);
/*******************************************************/
typedef
struct
{
uint
8_t
u8
UARTCount
;
/*发送计数*/
uint
8_t
u8
UARTLEN
;
/*发送数据总长*/
uint
32_t
u32
UARTCount
;
/*发送计数*/
uint
32_t
u32
UARTLEN
;
/*发送数据总长*/
uint8_t
u8UARTTXBusyFlag
;
/*发送是否忙标志 0:idle 1:busy */
uint8_t
*
pu8UARTDataBuf
;
/*要发送数据的指针*/
}
UART_Ctr_st_t
;
...
...
@@ -33,8 +33,8 @@ static UART_Channel_Config_st_t stUARTCh2Cfg;
static
void
RTE_UART_Variate_Init
(
void
);
static
void
RTE_UART_Variate_Init
(
void
)
{
stUARTCtr0
.
u
8
UARTCount
=
0U
;
stUARTCtr0
.
u
8
UARTLEN
=
0U
;
stUARTCtr0
.
u
32
UARTCount
=
0U
;
stUARTCtr0
.
u
32
UARTLEN
=
0U
;
stUARTCtr0
.
u8UARTTXBusyFlag
=
0U
;
stUARTCtr0
.
pu8UARTDataBuf
=
0U
;
...
...
@@ -43,8 +43,8 @@ static void RTE_UART_Variate_Init(void)
stUARTCh0Cfg
.
pfnUARTConfirmCallBack
=
0U
;
stUARTCh0Cfg
.
pfnUARTReadMsgCallBack
=
0U
;
stUARTCtr1
.
u
8
UARTCount
=
0U
;
stUARTCtr1
.
u
8
UARTLEN
=
0U
;
stUARTCtr1
.
u
32
UARTCount
=
0U
;
stUARTCtr1
.
u
32
UARTLEN
=
0U
;
stUARTCtr1
.
u8UARTTXBusyFlag
=
0U
;
stUARTCtr1
.
pu8UARTDataBuf
=
0U
;
...
...
@@ -53,8 +53,8 @@ static void RTE_UART_Variate_Init(void)
stUARTCh1Cfg
.
pfnUARTConfirmCallBack
=
0U
;
stUARTCh1Cfg
.
pfnUARTReadMsgCallBack
=
0U
;
stUARTCtr2
.
u
8
UARTCount
=
0U
;
stUARTCtr2
.
u
8
UARTLEN
=
0U
;
stUARTCtr2
.
u
32
UARTCount
=
0U
;
stUARTCtr2
.
u
32
UARTLEN
=
0U
;
stUARTCtr2
.
u8UARTTXBusyFlag
=
0U
;
stUARTCtr2
.
pu8UARTDataBuf
=
0U
;
...
...
@@ -288,8 +288,8 @@ void UART_Ch0_Send_Multiple_Byte(uint8_t *Data, uint8_t Len)
{
if
(
UART_Ch0_Get_TX_Busy_Flag
(
)
==
0U
)
{
stUARTCtr0
.
u
8
UARTCount
=
1U
;
stUARTCtr0
.
u
8
UARTLEN
=
Len
;
stUARTCtr0
.
u
32
UARTCount
=
1U
;
stUARTCtr0
.
u
32
UARTLEN
=
Len
;
stUARTCtr0
.
u8UARTTXBusyFlag
=
1U
;
stUARTCtr0
.
pu8UARTDataBuf
=
Data
;
UART0_TX
=
stUARTCtr0
.
pu8UARTDataBuf
[
0U
];
...
...
@@ -299,8 +299,8 @@ void UART_Ch1_Send_Multiple_Byte(uint8_t *Data, uint8_t Len)
{
if
(
UART_Ch1_Get_TX_Busy_Flag
(
)
==
0U
)
{
stUARTCtr1
.
u
8
UARTCount
=
1U
;
stUARTCtr1
.
u
8
UARTLEN
=
Len
;
stUARTCtr1
.
u
32
UARTCount
=
1U
;
stUARTCtr1
.
u
32
UARTLEN
=
Len
;
stUARTCtr1
.
u8UARTTXBusyFlag
=
1U
;
stUARTCtr1
.
pu8UARTDataBuf
=
Data
;
UART1_TX
=
stUARTCtr1
.
pu8UARTDataBuf
[
0U
];
...
...
@@ -310,8 +310,8 @@ void UART_Ch2_Send_Multiple_Byte(uint8_t *Data, uint8_t Len)
{
if
(
UART_Ch2_Get_TX_Busy_Flag
(
)
==
0U
)
{
stUARTCtr2
.
u
8
UARTCount
=
1U
;
stUARTCtr2
.
u
8
UARTLEN
=
Len
;
stUARTCtr2
.
u
32
UARTCount
=
1U
;
stUARTCtr2
.
u
32
UARTLEN
=
Len
;
stUARTCtr2
.
u8UARTTXBusyFlag
=
1U
;
stUARTCtr2
.
pu8UARTDataBuf
=
Data
;
UART2_TX
=
stUARTCtr2
.
pu8UARTDataBuf
[
0U
];
...
...
@@ -419,9 +419,9 @@ void UART_CH3_RX_ISR(void)
void
UART_CH0_TX_ISR
(
void
)
{
INTC_ClearPendingIRQ
(
ST0_IRQn
);
if
(
stUARTCtr0
.
u
8UARTCount
<
stUARTCtr0
.
u8
UARTLEN
)
if
(
stUARTCtr0
.
u
32UARTCount
<
stUARTCtr0
.
u32
UARTLEN
)
{
UART0_TX
=
stUARTCtr0
.
pu8UARTDataBuf
[
stUARTCtr0
.
u
8
UARTCount
++
];
UART0_TX
=
stUARTCtr0
.
pu8UARTDataBuf
[
stUARTCtr0
.
u
32
UARTCount
++
];
}
else
{
...
...
@@ -435,9 +435,9 @@ void UART_CH0_TX_ISR(void)
void
UART_CH1_TX_ISR
(
void
)
{
INTC_ClearPendingIRQ
(
ST1_IRQn
);
if
(
stUARTCtr1
.
u
8UARTCount
<
stUARTCtr1
.
u8
UARTLEN
)
if
(
stUARTCtr1
.
u
32UARTCount
<
stUARTCtr1
.
u32
UARTLEN
)
{
UART1_TX
=
stUARTCtr1
.
pu8UARTDataBuf
[
stUARTCtr1
.
u
8
UARTCount
++
];
UART1_TX
=
stUARTCtr1
.
pu8UARTDataBuf
[
stUARTCtr1
.
u
32
UARTCount
++
];
}
else
{
...
...
@@ -451,9 +451,9 @@ void UART_CH1_TX_ISR(void)
void
UART_CH2_TX_ISR
(
void
)
{
INTC_ClearPendingIRQ
(
ST2_IRQn
);
if
(
stUARTCtr2
.
u
8UARTCount
<
stUARTCtr2
.
u8
UARTLEN
)
if
(
stUARTCtr2
.
u
32UARTCount
<
stUARTCtr2
.
u32
UARTLEN
)
{
UART2_TX
=
stUARTCtr2
.
pu8UARTDataBuf
[
stUARTCtr2
.
u
8
UARTCount
++
];
UART2_TX
=
stUARTCtr2
.
pu8UARTDataBuf
[
stUARTCtr2
.
u
32
UARTCount
++
];
}
else
{
...
...
Firmware/Source/System/Sys_Task_List.c
View file @
9153bef1
...
...
@@ -15,6 +15,8 @@ void Sys_2ms_Tasks(void)
Sys_Status_Update_Service
();
Analog_Signal_Conv_Service
();
AMT630H_Main
();
//Can_Write_Fun(&CAN_CH0_CanMsgTxOp, 2000u);无外发
CanMSg_XMS_Analysis
(
&
CAN_CH0_CanMsgOp
,
2u
);
}
void
Sys_5ms_Tasks
(
void
)
...
...
@@ -24,6 +26,10 @@ void Sys_5ms_Tasks(void)
void
Sys_10ms_Tasks
(
void
)
{
Line_In_Debounce_Service
(
10u
);
Key_Service
();
Key_Clear_Time
();
Key_TimeOut_Service
();
Fuel_R_Cal
(
10u
);
}
...
...
@@ -35,26 +41,14 @@ void Sys_20ms_Tasks(void)
void
Sys_50ms_Tasks
(
void
)
{
Telltales_Management
();
g_u8Cursor_Posittion
=
Menu_Get_Current_Cursor_Information
();
}
uint32_t
g_u32LEDFlag
=
0UL
;
//uint8_t ljsuartsend[2] = { 0x55, 0x66};
void
Sys_100ms_Tasks
(
void
)
{
if
(
g_u32LEDFlag
)
{
g_u32LEDFlag
=
0UL
;
//RTE_GPIO_Set_Level(RTE_GPIO_ANALOG_PORT0_PIN15, 0x01U);
}
else
{
g_u32LEDFlag
=
1UL
;
//RTE_GPIO_Set_Level(RTE_GPIO_ANALOG_PORT0_PIN15, 0x00U);
}
Fuel_Cal_Sevice
(
100u
);
RTE_GPIO_Set_Level
(
Blacklight_PWM
,
1
);
//UART_Ch2_Send_Multiple_Byte(ljsuartsend, 2);
}
static
uint16_t
task_2ms
=
0u
;
void
Sys_Exact_50us_Tasks
(
void
)
...
...
Firmware/utility/Can_BDF/haojin750TFT(1).DBF
0 → 100644
View file @
9153bef1
//******************************BUSMASTER Messages and signals Database ******************************//
[DATABASE_VERSION] 1.3
[PROTOCOL] CAN
[BUSMASTER_VERSION] [3.2.0]
[NUMBER_OF_MESSAGES] 7
[START_MSG] CH0_101,257,8,10,1,S
[START_SIGNALS] ECU_Engine_Speed,16,2,0,U,65535,0,0,0.000000,0.250000,rpm,
[START_SIGNALS] ECU_Vehicle_Speed,8,3,0,U,255,0,0,0.000000,1.000000,Km/h,
[START_SIGNALS] ECU_Throttle_Position,8,4,0,U,255,0,0,0.000000,0.392150,%,
[START_SIGNALS] ECU_Engine_Temperature,16,6,0,U,65535,0,0,-273.000000,0.100000,,
[START_SIGNALS] ECU_Engine_Speed_State,1,7,4,U,1,0,0,0.000000,1.000000,,
[START_SIGNALS] ECU_Vehicle_Speed_State,1,7,5,U,1,0,0,0.000000,1.000000,,
[START_SIGNALS] ECU_Throttle_Position_State,1,7,6,U,1,0,0,0.000000,1.000000,,
[START_SIGNALS] ECU_Engine_Temperature_State,1,7,7,U,1,0,0,0.000000,1.000000,,
[START_SIGNALS] ECU_101_Livecounter,4,7,0,U,15,0,0,0.000000,1.000000,,
[START_SIGNALS] ECU_101_Checksum,8,8,0,U,255,0,0,0.000000,1.000000,,
[END_MSG]
[START_MSG] CH0_111,273,8,12,1,S
[START_SIGNALS] ISG_Engine_InjIgn_Cutoff,1,1,0,U,1,0,0,0.000000,1.000000,,
[START_SIGNALS] ISG_Engine_Autostop,1,2,0,U,1,0,0,0.000000,1.000000,,
[START_SIGNALS] ISG_Engine_InjIgn_Cutoff_State,1,3,0,U,1,0,0,0.000000,1.000000,,
[START_SIGNALS] ISG_Engine_Autostop_State,1,4,0,U,1,0,0,0.000000,1.000000,,
[START_SIGNALS] ISG_Batt,1,5,0,U,1,0,0,0.000000,1.000000,,
[START_SIGNALS] ISG_Ready,1,5,1,U,1,0,0,0.000000,1.000000,,
[START_SIGNALS] ISG_Power,1,5,2,U,1,0,0,0.000000,1.000000,,
[START_SIGNALS] ISG_SideStand,1,5,3,U,1,0,0,0.000000,1.000000,,
[START_SIGNALS] ISG_Power_Enable,2,5,4,U,3,0,0,0.000000,1.000000,,
[START_SIGNALS] ISG_Tair_Enable,1,5,6,U,1,0,0,0.000000,1.000000,,
[START_SIGNALS] ISG_111_Livecounter,4,7,0,U,15,0,0,0.000000,1.000000,,
[START_SIGNALS] ISG_111_Checksum,8,8,0,U,255,0,0,0.000000,1.000000,,
[END_MSG]
[START_MSG] CH0_401,1025,8,5,1,S
[START_SIGNALS] ECU_Environment_Presure,16,2,0,U,65535,0,0,0.000000,0.039000,hpa,
[START_SIGNALS] ECU_Battery_Voltage,8,3,0,U,255,0,0,0.000000,0.100000,V,
[START_SIGNALS] ECU_Fuel_Consumption,16,5,0,U,65535,0,0,0.000000,0.001000,ml/s,
[START_SIGNALS] ECU_401_Livecounter,4,7,0,U,15,0,0,0.000000,1.000000,,
[START_SIGNALS] ECU_401_Checksum,8,8,0,U,255,0,0,0.000000,1.000000,,
[END_MSG]
[START_MSG] CH0_402,1026,8,8,1,S
[START_SIGNALS] ECU_DTCH1,8,1,0,U,255,0,0,0.000000,1.000000,,
[START_SIGNALS] ECU_DTCM1,8,2,0,U,255,0,0,0.000000,1.000000,,
[START_SIGNALS] ECU_DTCL1,8,3,0,U,255,0,0,0.000000,1.000000,,
[START_SIGNALS] ECU_DTC1Amnt,8,4,0,U,255,0,0,0.000000,1.000000,,
[START_SIGNALS] ECU_DTCH2,8,5,0,U,255,0,0,0.000000,1.000000,,
[START_SIGNALS] ECU_DTCM2,8,6,0,U,255,0,0,0.000000,1.000000,,
[START_SIGNALS] ECU_DTCL2,8,7,0,U,255,0,0,0.000000,1.000000,,
[START_SIGNALS] ECU_Warning_Lamp,8,8,0,U,255,0,0,0.000000,1.000000,,
[END_MSG]
[START_MSG] CH0_12B,299,8,1,1,S
[START_SIGNALS] Abs_warning_lamp,2,5,1,U,3,0,0,0.000000,1.000000,,
[END_MSG]
[START_MSG] CH0_450,1104,8,2,1,S
[START_SIGNALS] ABSOFF_Selection,1,1,0,U,1,0,0,0.000000,1.000000,,
[START_SIGNALS] Dashboard_TCSFunSwitch,4,2,0,U,15,0,0,0.000000,1.000000,,
[END_MSG]
[START_MSG] CH0_37B,891,8,2,1,S
[START_SIGNALS] TCS_Warning_Lamp,1,4,2,U,1,0,0,0.000000,1.000000,,
[START_SIGNALS] TCS_Work_Mode,4,4,4,U,15,0,0,0.000000,1.000000,,
[END_MSG]
\ No newline at end of file
Firmware/utility/Can_BDF/haojin750TFT(1).dbc
0 → 100644
View file @
9153bef1
VERSION ""
BS_:
BU_:
BO_ 257 CH0_101: 8 Vector__XXX
SG_ ECU_101_Checksum : 63|8@0+ (1,0) [0|255] "" Vector__XXX
SG_ ECU_101_Livecounter : 51|4@0+ (1,0) [0|15] "" Vector__XXX
SG_ ECU_Engine_Temperature_State : 55|1@0- (1,0) [0|1] "" Vector__XXX
SG_ ECU_Throttle_Position_State : 54|1@0- (1,0) [0|1] "" Vector__XXX
SG_ ECU_Vehicle_Speed_State : 53|1@0- (1,0) [0|1] "" Vector__XXX
SG_ ECU_Engine_Speed_State : 52|1@0- (1,0) [0|1] "" Vector__XXX
SG_ ECU_Engine_Temperature : 39|16@0+ (0.1,-273) [-273|6280.5] "" Vector__XXX
SG_ ECU_Throttle_Position : 31|8@0+ (0.39215,0) [0|99.9983] "%" Vector__XXX
SG_ ECU_Vehicle_Speed : 23|8@0+ (1,0) [0|255] "Km/h" Vector__XXX
SG_ ECU_Engine_Speed : 7|16@0+ (0.25,0) [0|16383.8] "rpm" Vector__XXX
BO_ 273 CH0_111: 8 Vector__XXX
SG_ ISG_111_Checksum : 63|8@0+ (1,0) [0|255] "" Vector__XXX
SG_ ISG_111_Livecounter : 51|4@0+ (1,0) [0|15] "" Vector__XXX
SG_ ISG_Tair_Enable : 38|1@0- (1,0) [0|1] "" Vector__XXX
SG_ ISG_Power_Enable : 37|2@0+ (1,0) [0|3] "" Vector__XXX
SG_ ISG_SideStand : 35|1@0- (1,0) [0|1] "" Vector__XXX
SG_ ISG_Power : 34|1@0- (1,0) [0|1] "" Vector__XXX
SG_ ISG_Ready : 33|1@0- (1,0) [0|1] "" Vector__XXX
SG_ ISG_Batt : 32|1@0- (1,0) [0|1] "" Vector__XXX
SG_ ISG_Engine_Autostop_State : 24|1@0- (1,0) [0|1] "" Vector__XXX
SG_ ISG_Engine_InjIgn_Cutoff_State : 16|1@0- (1,0) [0|1] "" Vector__XXX
SG_ ISG_Engine_Autostop : 8|1@0- (1,0) [0|1] "" Vector__XXX
SG_ ISG_Engine_InjIgn_Cutoff : 0|1@0- (1,0) [0|1] "" Vector__XXX
BO_ 1025 CH0_401: 8 Vector__XXX
SG_ ECU_401_Checksum : 63|8@0+ (1,0) [0|255] "" Vector__XXX
SG_ ECU_401_Livecounter : 51|4@0+ (1,0) [0|15] "" Vector__XXX
SG_ ECU_Fuel_Consumption : 31|16@0+ (0.001,0) [0|65.535] "ml/s" Vector__XXX
SG_ ECU_Battery_Voltage : 23|8@0+ (0.1,0) [0|25.5] "V" Vector__XXX
SG_ ECU_Environment_Presure : 7|16@0+ (0.039,0) [0|2555.87] "hpa" Vector__XXX
BO_ 1026 CH0_402: 8 Vector__XXX
SG_ ECU_Warning_Lamp : 63|8@0+ (1,0) [0|255] "" Vector__XXX
SG_ ECU_DTCL2 : 55|8@0+ (1,0) [0|255] "" Vector__XXX
SG_ ECU_DTCM2 : 47|8@0+ (1,0) [0|255] "" Vector__XXX
SG_ ECU_DTCH2 : 39|8@0+ (1,0) [0|255] "" Vector__XXX
SG_ ECU_DTC1Amnt : 31|8@0+ (1,0) [0|255] "" Vector__XXX
SG_ ECU_DTCL1 : 23|8@0+ (1,0) [0|255] "" Vector__XXX
SG_ ECU_DTCM1 : 15|8@0+ (1,0) [0|255] "" Vector__XXX
SG_ ECU_DTCH1 : 7|8@0+ (1,0) [0|255] "" Vector__XXX
BO_ 299 CH0_12B: 8 Vector__XXX
SG_ Abs_warning_lamp : 34|2@0+ (1,0) [0|3] "" Vector__XXX
BO_ 1104 CH0_450: 8 Vector__XXX
SG_ Dashboard_TCSFunSwitch : 11|4@0+ (1,0) [0|15] "" Vector__XXX
SG_ ABSOFF_Selection : 0|1@0- (1,0) [0|1] "" Vector__XXX
BO_ 891 CH0_37B: 8 Vector__XXX
SG_ TCS_Work_Mode : 31|4@0+ (1,0) [0|15] "" Vector__XXX
SG_ TCS_Warning_Lamp : 26|1@0- (1,0) [0|1] "" Vector__XXX
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment