WarnLight.c
4.5 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
155
156
157
158
159
160
161
#include "JZsdkLib.h"
#include "version_choose.h"
#include "Hal_Send/HalSend.h"
#include "WarnLight/WarnLight.h"
static T_JzWarnLightInfo g_WarnLightInfo;
T_JZsdkReturnCode WarnLight_Init(T_JzWarnLightInfo RegInfo)
{
//初始化参数
memset(&g_WarnLightInfo, 0, sizeof(T_JzWarnLightInfo));
memcpy(&g_WarnLightInfo, &RegInfo, sizeof(T_JzWarnLightInfo));
//打印参数
JZSDK_LOG_INFO("WarnLightControlMode:%d",g_WarnLightInfo.ControlMode);
JZSDK_LOG_INFO("WarnLight Init Success");
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
T_JZsdkReturnCode WarnLight_Set_StatusAndMode(int status, int mode)
{
T_JZsdkOsalHandler *osalHandle = JZsdk_Platform_GetOsalHandler();
if (osalHandle == NULL)
{
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
U8_t FrameSequence = g_WarnLightInfo.FrameSequence;
osalHandle->GetFrameSequenceQueueNum(&FrameSequence);
//模式版本
if(g_WarnLightInfo.mode_version == 0)
{
JZSDK_LOG_INFO("WarnLight_Set_StatusAndMode: status = %d, mode = %d", status, mode - 1);
HalSend_type1Send_Set_WarningLight_Status(g_WarnLightInfo.Device, FrameSequence, status, mode - 1);
}
else if(g_WarnLightInfo.mode_version == 1)
{
if (status == 0)
{
mode = 0;
}
JZSDK_LOG_INFO("WarnLight_Set_StatusAndMode: status = %d, mode = %d", status, mode);
HalSend_type1Send_Set_WarningLight_Status_2(g_WarnLightInfo.Device, FrameSequence, mode);
}
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(g_WarnLightInfo.Device);
}
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);
T_JZsdkOsalHandler *osalHandle = JZsdk_Platform_GetOsalHandler();
if (osalHandle == NULL)
{
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
U8_t FrameSequence = g_WarnLightInfo.FrameSequence;
osalHandle->GetFrameSequenceQueueNum(&FrameSequence);
//发送警灯颜色
HalSend_type1Send_Set_WarningLight_Color(g_WarnLightInfo.Device, FrameSequence, Color1, Color2);
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(g_WarnLightInfo.Device);
}
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;
}
T_JZsdkReturnCode WarnLight_SendStatus(T_JzWarnLightAttribute LightAttribute, int UartPort)
{
if (g_WarnLightInfo.mode_version == 0)
{
HalSend_type1Send_WarningLight_Status(UartPort, LightAttribute.status, LightAttribute.mode);
}
// else
// {
// HalSend_type1Send_WarningLight_Status_2(UartPort, LightAttribute.mode);
// }
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}