WarnLight.c
4.1 KB
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
152
153
154
#include "JZsdkLib.h"
#include "version_choose.h"
#include "Hal_Send/HalSend.h"
#include "WarnLight/WarnLight.h"
typedef struct T_JzWarnLightInfo{
T_JzWarnLightAttribute Attribute;
JZ_MODULE_CONTROL_WAY ControlMode; //控制模式
}T_JzWarnLightInfo;
static T_JzWarnLightInfo g_WarnLightInfo;
T_JZsdkReturnCode WarnLight_Init(enum JZ_MODULE_CONTROL_WAY Mode)
{
//初始化参数
static T_JzWarnLightAttribute Attribute = {
.Color1 = E_JZ_WARNLIGHT_COLOR_RED,
.Color2 = E_JZ_WARNLIGHT_COLOR_BLUE,
.mode = E_JZ_WARNLIGHT_MODE_ALTERATING_FAST_FALSHING,
.status = JZ_FLAGCODE_OFF,
};
memcpy(&g_WarnLightInfo.Attribute, &Attribute, sizeof(T_JzWarnLightAttribute));
g_WarnLightInfo.ControlMode = Mode;
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
T_JZsdkReturnCode WarnLight_Set_StatusAndMode(int status, int mode)
{
JZSDK_LOG_DEBUG("WarnLight_Set_StatusAndMode: status = %d, mode = %d", status, mode);
#if DEVICE_VERSION == JZ_H1T
HalSend_type1Send_Set_WarningLight_Status(UART_DEV_1, 0x00, status, mode);
#elif DEVICE_VERSION == TF_A1 || \
DEVICE_VERSION == JZ_U3S || \
DEVICE_VERSION == JZ_U3D || \
DEVICE_VERSION == JZ_U30
HalSend_type1Send_Set_WarningLight_Status(UART_DEV_2, 0x00, status, mode);
#elif DEVICE_VERSION == JZ_T40
HalSend_type1Send_Set_WarningLight_Status(UART_DEV_2, 0x20, status, mode);
#endif
g_WarnLightInfo.Attribute.mode = mode;
g_WarnLightInfo.Attribute.status = status;
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
//收到警灯状态
T_JZsdkReturnCode WarnLight_Obatin_StatusAndMode(int status, int mode)
{
JZSDK_LOG_DEBUG("%x警灯状态改变 状态%d 模式%d",DEVICE_VERSION, status ,mode);
g_WarnLightInfo.Attribute.mode = mode;
g_WarnLightInfo.Attribute.status = status;
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
/*********
*
* 刷新警灯状态
*
**********/
T_JZsdkReturnCode WarnLight_Flush_StatusAndMode()
{
//如果是中继设备,则进行一次灯光属性查询
if(g_WarnLightInfo.ControlMode == JZ_MODULE_CONTROL_WAY_TRANSPARENT)
{
//查询灯光属性
HalSend_type1Send_CheckStatus_WarningLightStatus(UART_DEV_1);
}
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
//设置警灯颜色
T_JZsdkReturnCode WarnLight_Set_Color(int Color1, int Color2)
{
JZSDK_LOG_DEBUG("设置0x%x:警灯颜色 Color1:0x%x, color:0x%x",DEVICE_VERSION, Color1, Color2);
#if DEVICE_VERSION == JZ_H1T
HalSend_type1Send_Set_WarningLight_Color(UART_DEV_1, 0x00, Color1, Color2);
#elif DEVICE_VERSION == TF_A1 || \
DEVICE_VERSION == JZ_U3S || \
DEVICE_VERSION == JZ_U3D || \
DEVICE_VERSION == JZ_U30
HalSend_type1Send_Set_WarningLight_Color(UART_DEV_2, 0x00, Color1, Color2);
#elif DEVICE_VERSION == JZ_T40
HalSend_type1Send_Set_WarningLight_Color(UART_DEV_2, 0x20, Color1, Color2);
#endif
g_WarnLightInfo.Attribute.Color1 = Color1;
g_WarnLightInfo.Attribute.Color2 = Color2;
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
//收到警灯颜色
T_JZsdkReturnCode WarnLight_Obatin_Color(int Color1, int Color2)
{
JZSDK_LOG_DEBUG("收到0x%x:警灯颜色 Color1:0x%x, color:0x%x",DEVICE_VERSION, Color1, Color2);
g_WarnLightInfo.Attribute.Color1 = Color1;
g_WarnLightInfo.Attribute.Color2 = Color2;
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
//刷新警灯颜色
T_JZsdkReturnCode WarnLight_Flush_Color()
{
//如果是中继设备,则进行一次灯光属性查询
if(g_WarnLightInfo.ControlMode == JZ_MODULE_CONTROL_WAY_TRANSPARENT)
{
//查询灯光属性
HalSend_type1Send_CheckStatus_WarningLightColor(UART_DEV_1);
}
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
//获取警灯属性
T_JZsdkReturnCode WarnLight_Get_Attribute(T_JzWarnLightAttribute *Attribute)
{
if(Attribute == NULL)
{
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
memcpy(Attribute, &g_WarnLightInfo.Attribute, sizeof(T_JzWarnLightAttribute));
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}