JZsdk_FrameComparsion_6Bframe.c 1.3 KB
#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;
    }
}