JZsdk_FrameComparsion_6Bframe.c
1.3 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
#include <stdio.h>
#include "../JZsdk_Code/JZsdk_Code.h"
//一级功能码是私有协议
static int Comparison_6BFRAME_FirstLevelCode_0x6F(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//从设备名返回
case 0x50:
return JZ_INSCODE_6BFRAME_CHECKSTATUS_SECONDARY_DEVICE_NAME;
break;
//查询云台联动返回
case 0x51:
return JZ_INSCODE_6BFRAME_CHECKSTATUS_GIMBAL_LINKAGE;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
/******************************************************************
回复帧对比
成功返回帧类型 无对比数据返回 JZ_ERROR_SYSTEM_FRAME_ERROR
******************************************************************/
int JZsdk_6BFrameComparsion(char *getdata, int len)
{
//1、判断帧头帧尾
if (
( (getdata[0]!= 0x6B) && (getdata[1] != 0x6B) && (getdata[2]!=0x77) )
|| ( (getdata[len -2]!= 0x00) && (getdata[ len -1] != 0x23) )
)
{
printf("接受到的帧,没有帧头或者帧尾,退出JZsdk_6BFrameComparsion函数\n");
return JZ_ERROR_SYSTEM_FRAME_ERROR;
}
//一级功能码
switch (getdata[7])
{
case 0x6F:
return Comparison_6BFRAME_FirstLevelCode_0x6F(getdata);
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}