作者 ookk303

相机更改

# 编译链的配置
#1、编译链与设备类型的选择
set(DEVICE_NAME JZ_H1E)
set(DEVICE_NAME JZ_C1)
#上一行为禁止修改行
message("**************************JZSDK构建编译开始***************************\n")
... ...
... ... @@ -21,7 +21,7 @@ extern "C"
/* 常亮定义*/
/* Exported types ------------------------------------------------------------*/
typedef enum
typedef enum JZ_DEVICE_PORT_TYPE
{
DEVICE_PSDK = 0x1000, // psdk功能
UART_4G = 0x1001, // 4G功能
... ... @@ -43,13 +43,13 @@ typedef enum
NO_SPECIFIED = 0x1999, // 无制定设备
} JZ_DEVICE_PORT_TYPE;
typedef enum
typedef enum JZ_MODULE_CONTROL_WAY
{
JZ_MODULE_CONTROL_WAY_INDEPENDENT = 0x0000, // 独立控制
JZ_MODULE_CONTROL_WAY_TRANSPARENT = 0x0001, //透传控制
JZ_MODULE_CONTROL_WAY_INDEPENDENT = 0x1000, // 独立控制
JZ_MODULE_CONTROL_WAY_TRANSPARENT = 0x1001, //透传控制
}JZ_MODULE_CONTROL_WAY; // 模块控制方式
typedef enum
typedef enum JZ_DATA_TRANS_TYPE
{
JZ_DATA_TRANS_TYPE_REAL_TIME_MP2 = 0x1000, // 实时mp2数据传输中
JZ_DATA_TRANS_TYPE_AUDIO_FILE = 0x1001, // 音频文件传输中
... ...
... ... @@ -7,19 +7,19 @@
#define VERSION_CHOOSE_H
#include "./ConfigParams.h"
//1~10行 除了D可以修改版本选择 禁止动任何东西
#define DEVICE_VERSION JZ_H1E
#define DEVICE_VERSION JZ_C1
//禁止修改行 选择是串口程序 还是 psdk程序
#define APP_VERSION APP_UART
#define APP_VERSION APP_PSDK
//禁止修改行 板子型号
#define PLATFORM_VERSION PLATFORM_V3S
//禁止修改行 串口连接程序的软件版本号
#define MAJOR_VERSION 0x00
#define MINOR_VERSION 0x00
#define MODIFY_VERSION 0x02
#define DEBUG_VERSION 0x09
#define MAJOR_VERSION 0x01
#define MINOR_VERSION 0x03
#define MODIFY_VERSION 0x09
#define DEBUG_VERSION 0x07
//禁止修改行 滤波方式
#define FILTERING_TYPE HIGH_PASS_FILTERING
... ...
... ... @@ -18,6 +18,10 @@
#include "Gimbal/Gimbal_MotorFineTuning/MotorFineTuning.h"
#include "BaseConfig.h"
#include "Hal_Send/HalSend.h"
//云台使用的模式, 当前有透传模式和独立模式
static int g_Gimbal_Mode = JZ_FLAGCODE_OFF;
//数值角度记录
static int Gimbal_PitchAngle = 0; //俯仰角度 //控制云台上相机相对于水平面的上下移动。
... ... @@ -125,6 +129,12 @@ T_JZsdkReturnCode Gimbal_Set_PitchAngle(int angle)
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
//根据当前的云台模式来选择设置方案
switch (g_Gimbal_Mode)
{
//独立模式
case JZ_MODULE_CONTROL_WAY_INDEPENDENT:
{
if (angle < MIN_PITCH || angle > MAX_PITCH || (MIN_PITCH == MAX_PITCH))
{
printf("云台俯仰输入值范围出错:%d\n", angle);
... ... @@ -132,6 +142,26 @@ T_JZsdkReturnCode Gimbal_Set_PitchAngle(int angle)
}
Gimbal_PitchAngle = angle;
}
break;
//透传模式
case JZ_MODULE_CONTROL_WAY_TRANSPARENT:
{
Gimbal_PitchAngle = angle;
}
break;
case JZ_FLAGCODE_OFF:
JZSDK_LOG_ERROR("云台未开启");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
break;
default:
JZSDK_LOG_ERROR("云台模式错误");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
break;
}
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
... ... @@ -160,6 +190,12 @@ T_JZsdkReturnCode Gimbal_SetGimbalRange(int flag, int value)
{
JZSDK_LOG_INFO("设置云台范围最大最小值 flag:%d 0x%x", flag, value);
//根据云台模式来选择设置方案
switch (g_Gimbal_Mode)
{
//独立模式
case JZ_MODULE_CONTROL_WAY_INDEPENDENT:
{
switch (flag)
{
case 0:
... ... @@ -169,8 +205,28 @@ T_JZsdkReturnCode Gimbal_SetGimbalRange(int flag, int value)
default:
break;
}
}
break;
//透传模式
case JZ_MODULE_CONTROL_WAY_TRANSPARENT:
{
//透传模式暂时无法设置云台范围
}
break;
case JZ_FLAGCODE_OFF:
JZSDK_LOG_ERROR("云台未开启");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
break;
default:
JZSDK_LOG_ERROR("云台模式错误");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
break;
}
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
//查询云台微调值
... ... @@ -178,13 +234,37 @@ T_JZsdkReturnCode Gimbal_CheckStatus_GimbalFineTuning(int *FineTuningPitch, int
{
JZSDK_LOG_DEBUG("查询云台微调值");
//组合机需要去获取另外一个设备的值
#if DEVICE_VERSION == JZ_H1T
//1、刷新微调值
JZsdk_Uart_Send_CheckStatus_GimbalFineTuningPitch(UART_DEV_1, 0);
switch (g_Gimbal_Mode)
{
//独立模式
case JZ_MODULE_CONTROL_WAY_INDEPENDENT:
{
//独立模式无需另外操作
}
break;
//透传模式
case JZ_MODULE_CONTROL_WAY_TRANSPARENT:
{
//向透传目标索要刷新微调值
#if DEVICE_VERSION == JZ_H1T
HalSend_type1Send_CheckStatus_GimbalFineTuningPitch(UART_DEV_1, 0);
delayMs(10);
#endif
}
break;
case JZ_FLAGCODE_OFF:
JZSDK_LOG_ERROR("云台未开启");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
break;
default:
JZSDK_LOG_ERROR("云台模式错误");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
break;
}
if (FineTuningPitch != NULL)
{
... ... @@ -209,14 +289,35 @@ T_JZsdkReturnCode Gimbal_Obtain_GimbalFineTuning(int pitch, int yaw, int roll)
{
printf("收到云台pitch云台微调值\n");
//组合机需要记录另外一个设备的值
#if DEVICE_VERSION == JZ_H1T
switch (g_Gimbal_Mode)
{
//独立模式
case JZ_MODULE_CONTROL_WAY_INDEPENDENT:
{
//独立模式无该概念
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
break;
//透传模式
case JZ_MODULE_CONTROL_WAY_TRANSPARENT:
{
g_MotorFineTuningPitch = pitch;
#else
}
break;
case JZ_FLAGCODE_OFF:
JZSDK_LOG_ERROR("云台未开启");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
#endif
break;
default:
JZSDK_LOG_ERROR("云台模式错误");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
break;
}
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
... ... @@ -226,6 +327,11 @@ T_JZsdkReturnCode Gimbal_Set_PitchFineTuning(int pitch)
JZSDK_LOG_INFO("设置云台pitch云台微调值\n");
T_JZsdkReturnCode ret;
switch (g_Gimbal_Mode)
{
//独立模式
case JZ_MODULE_CONTROL_WAY_INDEPENDENT:
{
if (pitch == 0)
{
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
... ... @@ -246,14 +352,32 @@ T_JZsdkReturnCode Gimbal_Set_PitchFineTuning(int pitch)
g_MotorFineTuningPitch = temp_pitch;
//组合机是发到另外一个设备
#if DEVICE_VERSION == JZ_H1T
JZsdk_Uart_Send_SetGimbalFineTuningPitch(UART_DEV_1, g_MotorFineTuningPitch);
#else
//存储到文件
MotorFineTuning_WritePitch(g_MotorFineTuningPitch);
#endif
}
break;
//透传模式
case JZ_MODULE_CONTROL_WAY_TRANSPARENT:
{
g_MotorFineTuningPitch = pitch;
#if DEVICE_VERSION == JZ_H1T
HalSend_type1Send_Set_GimbalFineTuningPitch(UART_DEV_1, g_MotorFineTuningPitch);
#endif
}
break;
case JZ_FLAGCODE_OFF:
JZSDK_LOG_ERROR("云台未开启");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
break;
default:
JZSDK_LOG_ERROR("云台模式错误");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
break;
}
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
... ... @@ -297,16 +421,39 @@ T_JZsdkReturnCode Gimbal_Set_GimbalLinkageControl(int value)
{
JZSDK_LOG_INFO("设置云台联动\n");
switch (g_Gimbal_Mode)
{
//独立模式
case JZ_MODULE_CONTROL_WAY_INDEPENDENT:
{
g_Gimbal_Linkage = value;
}
break;
#if DEVICE_VERSION == JZ_H1T
JZsdk_Uart_Send_Set_GimbalLinkageControl(UART_DEV_1, 0, value);
#else
//暂时没做接口
#endif
//透传模式
case JZ_MODULE_CONTROL_WAY_TRANSPARENT:
{
//设置本地联动值
g_Gimbal_Linkage = value;
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
#if DEVICE_VERSION == JZ_H1T
HalSend_type1Send_Set_GimbalLinkageControl(UART_DEV_1, g_Gimbal_Linkage);
#endif
}
break;
case JZ_FLAGCODE_OFF:
JZSDK_LOG_ERROR("云台未开启");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
break;
default:
JZSDK_LOG_ERROR("云台模式错误");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
break;
}
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
//查询云台联动
... ... @@ -314,17 +461,37 @@ T_JZsdkReturnCode Gimbal_CheckStatus_GimbalLinkage(int *value)
{
JZSDK_LOG_INFO("查询云台联动值\n");
#if DEVICE_VERSION == JZ_H1T
//1、刷新云台联动值
JZsdk_Uart_Send_CheckStatus_GimbalLinkage(UART_DEV_1, 0);
switch (g_Gimbal_Mode)
{
case JZ_MODULE_CONTROL_WAY_INDEPENDENT:
{
//独立模式,直接返回本地值
*value = g_Gimbal_Linkage;
}
break;
case JZ_MODULE_CONTROL_WAY_TRANSPARENT:
{
//透传模式,查询一次云台联动值
#if DEVICE_VERSION == JZ_H1T
HalSend_type1Send_CheckStatus_GimbalLinkage(UART_DEV_1, 0);
delayMs(10);
//2、回复云台联动值
*value = g_Gimbal_Linkage;
#else
//暂时没做接口
#endif
#endif
}
case JZ_FLAGCODE_OFF:
JZSDK_LOG_ERROR("云台未开启");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
break;
default:
JZSDK_LOG_ERROR("云台模式错误");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
break;
}
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
... ... @@ -577,13 +744,16 @@ T_JZsdkReturnCode Gimbal_Flush_Pitch()
/**************************
*
*
* 云台独立控制模式初始化
* 云台透传控制模式初始化
*
*
* **************************/
static T_JZsdkReturnCode Gimbal_Init_Gimbal_Init_TransparentControl()
{
//
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
/**************************
... ... @@ -600,6 +770,8 @@ static T_JZsdkReturnCode Gimbal_Init_IndependentControl()
//云台微调初始化
MotorFineTuning_Init(&g_MotorFineTuningPitch, &g_MotorFineTuningYaw, &g_MotorFineTuningRoll);
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
/***************************
... ...
... ... @@ -1021,16 +1021,19 @@ T_JZsdkReturnCode Proc_IRC_param(int flagcode, enum JZsdk_Widget_Control paramfl
{
*value = g_IRC_Param->SPC_auto_time_tpye;
}
break;
case JZSDK_WIDGET_TPC_MODE:
{
*value = g_IRC_Param->TPC_mode;
}
break;
case JZSDK_WIDGET_BAD_PIXEL_CORRECT_MODE:
{
*value = g_IRC_Param->AutoGrayPixel_flag;
}
break;
default:
{
... ... @@ -1073,6 +1076,7 @@ T_JZsdkReturnCode Proc_IRC_param(int flagcode, enum JZsdk_Widget_Control paramfl
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
}
break;
case JZSDK_WIDGET_BAD_PIXEL_CORRECT_MODE:
{
... ... @@ -1082,6 +1086,7 @@ T_JZsdkReturnCode Proc_IRC_param(int flagcode, enum JZsdk_Widget_Control paramfl
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
}
break;
default:
{
... ...
# cmake 最低版本要求 第三行名字不能动
cmake_minimum_required(VERSION 2.8)
project(JZ_H10T)
project(JZ_C1)
set(CMAKE_C_FLAGS "-pthread -std=gnu99 -lm -ldl -lstdc++")
#"-pthread":指定在编译时链接POSIX线程库,以支持多线程程序。
... ...