WarnLight.c
3.7 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
#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)
{
JZSDK_LOG_DEBUG("WarnLight_Set_StatusAndMode: status = %d, mode = %d", status, 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);
HalSend_type1Send_Set_WarningLight_Status(g_WarnLightInfo.Device, FrameSequence, status, 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;
}