1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#include "AlarmGeneralFilie.h"
/*报警提示信息状态数据表1*/
uint8_t Alarm_Status[100]; /*[0]数据不使用,其它数组序号对应报警编号
[i] bit0:=1 对应的报警已发生,=0对应的报警已取消 (与报警请求表和队列同步)
[i] bit1:=1 表示已完成nS的文字报警显示(2S或4S) (完成第一次报警显示)
[i] bit2:=1 表示报警在循环显示队列中
[i] bit3:=0 表示当前报警是第1次显示, =1 表示当前报警是非第1次显示
[i] bit4:=1 表示对应编号的声音报警已经完成
[i] bit5:=1 表示对应编号的声音报警触发过
[i] bit6:
[i] bit7:=1表示在行车电脑界面显示过(新加)*/
uint8_t g_PowerSt;
const uint8_t OSUnMapTbl[256] =
{
0u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x00 to 0x0F */
4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x10 to 0x1F */
5u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x20 to 0x2F */
4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x30 to 0x3F */
6u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x40 to 0x4F */
4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x50 to 0x5F */
5u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x60 to 0x6F */
4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x70 to 0x7F */
7u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x80 to 0x8F */
4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x90 to 0x9F */
5u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0xA0 to 0xAF */
4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0xB0 to 0xBF */
6u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0xC0 to 0xCF */
4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0xD0 to 0xDF */
5u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0xE0 to 0xEF */
4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u /* 0xF0 to 0xFF */
};
const uint8_t OSMapTbl[8] =
{
0x01u,
0x02u,
0x04u,
0x08u,
0x10u,
0x20u,
0x40u,
0x80u,
};
/**@brief 设置查找表中所在分组中的位置
* @param[in] *p8 需要设置的查找表
* @param[in] m_index 元素位置
* @return
*/
void General_Set_MapBit(uint8_t p8[], uint8_t m_index)
{
p8[m_index >> 3u] |= OSMapTbl[m_index & 7u];
}
/**@brief 清除查找表中所在分组中的位置
* @param[in] *p8 需要清除的查找表
* @param[in] m_index 元素位置
* @return
*/
void General_Clr_MapBit(uint8_t p8[], uint8_t m_index)
{
p8[m_index >> 3u] &= (uint8_t)(~OSMapTbl[m_index & 7u]);
}
/**@brief 设置报警状态数组指定位
* @param[in] -m_Idx -报警编号
* @param[in] -m_bit -指定bit
* @return None
*/
void General_AlarmSt_Set(uint8_t m_Idx, uint8_t m_bit)
{
Set_Bit(Alarm_Status[m_Idx], m_bit);
}
/**@brief 清除报警状态数组指定位
* @param[in] -m_Idx -报警编号
* @param[in] -m_bit -指定bit
* @return None
*/
void General_AlarmSt_Clr(uint8_t m_Idx, uint8_t m_bit)
{
Clr_Bit(Alarm_Status[m_Idx], m_bit);
}
/**@brief 获取报警状态数组指定位是否置1
* @param[in] -m_Idx -报警编号
* @param[in] -m_bit -指定bit
* @return 1 置位 0 未置位
*/
uint8_t General_AlarmSt_True(uint8_t m_Idx, uint8_t m_bit)
{
uint8_t m_Result;
if (Bit_Is_Set(Alarm_Status[m_Idx], m_bit))
{
m_Result = 1u;
}
else
{
m_Result = 0u;
}
return m_Result;
}
/**@brief 获取报警状态数组指定位是否清0
* @param[in] -m_Idx -报警编号
* @param[in] -m_bit -指定bit
* @return 1 清零 0 未清零
*/
uint8_t General_AlarmSt_False(uint8_t m_Idx, uint8_t m_bit)
{
uint8_t m_Result;
if (Bit_Is_Clr(Alarm_Status[m_Idx], m_bit))
{
m_Result = 1u;
}
else
{
m_Result = 0u;
}
return m_Result;
}
uint8_t General_AlarmSt_Value(uint8_t m_Idx)
{
uint8_t m_Result;
m_Result = Alarm_Status[m_Idx];
return m_Result;
}
void General_Set_PowerSt(uint8_t PowerSt)
{
g_PowerSt = PowerSt;
}
/*
0---IG OFF
1---IG ON
*/
uint8_t General_Get_PowerSt(void)
{
uint8_t m_PowerSt;
m_PowerSt = g_PowerSt;
return m_PowerSt;
}