JZsdk_FrameComparsion_6Aframe.c
1.8 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
#include <stdio.h>
#include "../JZsdk_Code/JZsdk_Code.h"
//一级功能码是私有协议
static int Comparison_6AFRAME_FirstLevelCode_0x69(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//设置当前为云台零值
case 0x51:
return JZ_INSCODE_6AFRAME_SET_GIMBAL_ORIGIN;
break;
//设置云台当前为最大最小值
case 0x52:
return JZ_INSCODE_6AFRAME_SET_GIMBAL_MAXMIN_RANGE;
break;
//设置灯光当前亮度为最大最小值
case 0x53:
return JZ_INSCODE_6AFRAME_SET_LUMEN_MAXMIN_RANGE;
break;
//设置产品序列号
case 0x54:
return JZ_INSCODE_6AFRAME_SET_SERIALNUMBER;
break;
//舵机自检
case 0x55:
return JZ_INSCODE_6AFRAME_SERVO_SELFCHECK;
break;
//开启关闭云台联动
case 0x56:
return JZ_INSCODE_6AFRAME_GIMBAL_LINKAGE_CONTROL;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
/******************************************************************
回复帧对比
成功返回帧类型 无对比数据返回 JZ_ERROR_SYSTEM_FRAME_ERROR
******************************************************************/
int JZsdk_6AFrameComparsion(char *getdata, int len)
{
//1、判断帧头帧尾
if (
( (getdata[0]!= 0x6A) && (getdata[1] != 0x6A) && (getdata[2]!=0x77) )
|| ( (getdata[len -2]!= 0x00) && (getdata[ len -1] != 0x23) )
)
{
printf("接受到的帧,没有帧头或者帧尾,退出JZsdk_6AFrameComparsion函数\n");
return JZ_ERROR_SYSTEM_FRAME_ERROR;
}
//一级功能码
switch (getdata[7])
{
case 0x69:
return Comparison_6AFRAME_FirstLevelCode_0x69(getdata);
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}