398 lines
7.9 KiB
C
398 lines
7.9 KiB
C
|
/*************************************************************************
|
||
|
File name : struct.h
|
||
|
Module : config_manager
|
||
|
Author :
|
||
|
Copyright :
|
||
|
Version : 0.1
|
||
|
Created on : 2022-3-21
|
||
|
Creator : amir.liang
|
||
|
Description :
|
||
|
Data struct definitions required by Config.
|
||
|
***************************************************************************/
|
||
|
#ifndef __MW_CONFIG_STRUCT_H__
|
||
|
#define __MW_CONFIG_STRUCT_H__
|
||
|
#include <stdint.h>
|
||
|
#define MW_CFG_UUID_LEN (64)
|
||
|
#define MW_CFG_SERIAL_LEN (32)
|
||
|
#define MW_CFG_SYSMODE_LEN (32)
|
||
|
#define MW_CFG_OFFSET_LEN (180)
|
||
|
#define MW_CFG_AE_METER_WEIGHT_CNT (96)
|
||
|
#define MW_CFG_IP_LEN (16)
|
||
|
#define MW_CFG_SSID_LEN (32)
|
||
|
#define MW_CFG_PWD_LEN (64)
|
||
|
#define MW_CFG_CON_PREFIX_LEN (32)
|
||
|
#define MW_CFG_MAX_ID_NUM (10)
|
||
|
#define MW_CFG_ID_LEN (64)
|
||
|
#define MW_CFG_CCODE_LEN (4)
|
||
|
#define MW_CFG_MAX_CHN_NUM (64)
|
||
|
#define MW_CFG_BTRC_VER_LEN (32)
|
||
|
#define MW_CFG_SENSOR_ID_LEN (16)
|
||
|
#define MW_CFG_ENCODE_STREAM_NUM (2)
|
||
|
#define MW_CFG_AGING_STRING_LEN (512)
|
||
|
/*
|
||
|
* Base Group
|
||
|
*/
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t factory_mode;
|
||
|
}Mw_CfgBase_FactoryMode_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint64_t active_time;
|
||
|
}Mw_CfgBase_ActiveTime_t;
|
||
|
|
||
|
typedef struct Mw_Aging_Record_Cfg_Info_s
|
||
|
{
|
||
|
uint16_t width;
|
||
|
uint16_t height;
|
||
|
uint8_t fps;
|
||
|
uint8_t encodec;
|
||
|
uint16_t bit_rate;
|
||
|
} Mw_Aging_Record_Cfg_Info_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint8_t aging_flag;
|
||
|
uint8_t aging_result_flag;
|
||
|
uint16_t aging_nums;
|
||
|
uint32_t aging_period;
|
||
|
uint64_t aging_start_time;
|
||
|
uint64_t aging_stop_time;
|
||
|
Mw_Aging_Record_Cfg_Info_t aging_config1;
|
||
|
Mw_Aging_Record_Cfg_Info_t aging_config2;
|
||
|
Mw_Aging_Record_Cfg_Info_t aging_config3;
|
||
|
uint8_t error_info[MW_CFG_AGING_STRING_LEN];
|
||
|
} Mw_CfgBase_FactoryAgingInfo_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint8_t uuid[MW_CFG_UUID_LEN];
|
||
|
}Mw_CfgBase_ProductUUID_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint8_t sn[MW_CFG_UUID_LEN];
|
||
|
}Mw_CfgBase_ProductSerial_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint8_t audio_license[64];
|
||
|
uint8_t recognition_license[128];
|
||
|
}Mw_CfgBase_License_t;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t offset_x;
|
||
|
uint32_t offset_y;
|
||
|
uint32_t offset_z;
|
||
|
|
||
|
} Mw_CfgBase_GsensorCalib_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
Mw_CfgBase_FactoryMode_t factory_mode;
|
||
|
Mw_CfgBase_ActiveTime_t active_time;
|
||
|
Mw_CfgBase_FactoryAgingInfo_t factory_aging_info;
|
||
|
Mw_CfgBase_ProductUUID_t product_uuid;
|
||
|
Mw_CfgBase_ProductSerial_t product_sn;
|
||
|
Mw_CfgBase_License_t license_info;
|
||
|
Mw_CfgBase_GsensorCalib_t gsensor_calib;
|
||
|
uint8_t rsv[64];
|
||
|
}Mw_CfgBaseGroup_t;
|
||
|
|
||
|
/*
|
||
|
* System Group
|
||
|
*/
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t enable;
|
||
|
char ap_ssid[32];
|
||
|
char ap_password[16];
|
||
|
}Mw_CfgSystem_Wifi_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t enable;
|
||
|
}Mw_CfgSystem_Bluetooth_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t enable;
|
||
|
}Mw_CfgSystem_Usb_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t type;
|
||
|
}Mw_CfgSystem_Sensor_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t percent;
|
||
|
}Mw_CfgSystem_Battery_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t enable;
|
||
|
}Mw_CfgSystem_Led_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t enable;
|
||
|
}Mw_CfgSystem_Button_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
Mw_CfgSystem_Wifi_t wifi_info;
|
||
|
Mw_CfgSystem_Bluetooth_t bt_info;
|
||
|
Mw_CfgSystem_Usb_t usb_info;
|
||
|
Mw_CfgSystem_Sensor_t sensor_info;
|
||
|
Mw_CfgSystem_Battery_t battery_info;
|
||
|
Mw_CfgSystem_Led_t led_info;
|
||
|
Mw_CfgSystem_Button_t button_info;
|
||
|
|
||
|
uint8_t rsv[128];
|
||
|
}Mw_CfgSystemGroup_t;
|
||
|
|
||
|
/*
|
||
|
* Common Group
|
||
|
*/
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t cam_mode;
|
||
|
uint32_t sub_mode;
|
||
|
}Mw_CfgCommon_CamMode_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
Mw_CfgCommon_CamMode_t mode;
|
||
|
uint8_t rsv[64];
|
||
|
}Mw_CfgCommonGroup_t;
|
||
|
|
||
|
/*
|
||
|
* Video Group
|
||
|
*/
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t rec_stream; /* see Mw_Cfg_VideoRecord_stream_e */
|
||
|
}Mw_CfgVideo_Record_stream_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t resolution; /* see Mw_Cfg_VideoResolution_e */
|
||
|
uint32_t fps; /* see Mw_Cfg_VideoFps_e */
|
||
|
}Mw_CfgVideo_RecordSpec_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t value[MW_CFG_ENCODE_STREAM_NUM]; //Mbps
|
||
|
}Mw_CfgVideo_Bitrate_t;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t main_type; /* see Mw_Cfg_VideoCodecType_e */
|
||
|
uint32_t sub_type;
|
||
|
}Mw_CfgVideo_Codec_t;
|
||
|
|
||
|
|
||
|
typedef struct //birate encode mode: CRB/VRB/SMART_VRB
|
||
|
{
|
||
|
uint8_t value[MW_CFG_ENCODE_STREAM_NUM]; /* see Mw_Cfg_VideoBrateCtrlType_e */
|
||
|
}Mw_CfgVideo_BrateCtrl_t;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
Mw_CfgVideo_Record_stream_t stream;
|
||
|
Mw_CfgVideo_RecordSpec_t spec;
|
||
|
Mw_CfgVideo_Bitrate_t bitrate;
|
||
|
Mw_CfgVideo_BrateCtrl_t bratectrl;
|
||
|
Mw_CfgVideo_Codec_t codec;
|
||
|
uint8_t rsv[128];
|
||
|
} Mw_CfgVideoGroup_t;
|
||
|
|
||
|
/*
|
||
|
* Photo Group
|
||
|
*/
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t val;
|
||
|
}Mw_CfgPhoto_Resolution_t;
|
||
|
|
||
|
typedef struct {
|
||
|
uint16_t capnum;
|
||
|
uint16_t aebnum; /* should be 0 or the same the CapNum. maximum SVC_STL_MAX_AEB_NUM */
|
||
|
uint16_t strmmsk; /* yuv stream mask for CapType = SVC_CAP_TYPE_YUV, or vin mask for CapType = SVC_CAP_TYPE_RAW */
|
||
|
uint8_t pictype; /* 0 - normal picture. 1 - video thumbnail. 2 - dump YUV. */
|
||
|
uint8_t syncencstart;
|
||
|
uint8_t caponly;
|
||
|
uint8_t captype; /* SVC_CAP_TYPE_YUV - yuv capture, SVC_CAP_TYPE_RAW - raw capture */
|
||
|
uint8_t stopliveview;
|
||
|
uint16_t timelapsemsk;
|
||
|
uint8_t Rsvd[16];
|
||
|
} Mw_CfgPhoto_Capcfg_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
Mw_CfgPhoto_Resolution_t resolution;
|
||
|
Mw_CfgPhoto_Capcfg_t capcfg;
|
||
|
uint8_t rsv[128];
|
||
|
}Mw_CfgPhotoGroup_t;
|
||
|
|
||
|
/*
|
||
|
* Audio Group
|
||
|
*/
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t bits_per_sample;
|
||
|
uint32_t aac_bitrate;
|
||
|
uint32_t volume;
|
||
|
uint32_t enable_DMIC;
|
||
|
}Mw_CfgAudio_Encode_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
Mw_CfgAudio_Encode_t encode;
|
||
|
uint8_t rsv[128];
|
||
|
}Mw_CfgAudioGroup_t;
|
||
|
|
||
|
/*
|
||
|
* Image Group
|
||
|
*/
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t val;
|
||
|
}Mw_CfgImage_Brightness_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t val;
|
||
|
}Mw_CfgImage_Contrast_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t val;
|
||
|
}Mw_CfgImage_Sharpness_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t exposure_mode;
|
||
|
int32_t shutter; //M mode, 1/8000s->-8000000; 120->120000
|
||
|
uint32_t iso; //M mode
|
||
|
float shutter_limit; //A mode
|
||
|
uint32_t iso_limit; //S mode
|
||
|
float ev_bias; //P mode
|
||
|
uint32_t wb_mode;
|
||
|
uint32_t wb_temp; //M mode
|
||
|
}Mw_CfgImage_AAA_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t value;
|
||
|
}Mw_CfgImage_AntiFlicker_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
Mw_CfgImage_Brightness_t brightness;
|
||
|
Mw_CfgImage_Contrast_t contrast;
|
||
|
Mw_CfgImage_Sharpness_t sharpness;
|
||
|
Mw_CfgImage_AAA_t aaa;
|
||
|
Mw_CfgImage_AntiFlicker_t anti_flicker;
|
||
|
uint8_t rsv[128];
|
||
|
}Mw_CfgImageGroup_t;
|
||
|
|
||
|
/*
|
||
|
* Other Group
|
||
|
*/
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t time;
|
||
|
uint32_t brightness;
|
||
|
}Mw_CfgOther_Lcd_t;
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t enable;
|
||
|
}Mw_CfgOther_Qcap_t;
|
||
|
typedef struct
|
||
|
{
|
||
|
Mw_CfgOther_Lcd_t lcd_info;
|
||
|
Mw_CfgOther_Qcap_t quick_cap;
|
||
|
uint8_t rsv[128];
|
||
|
}Mw_CfgOtherGroup_t;
|
||
|
|
||
|
/*
|
||
|
* App Group
|
||
|
*/
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t val;
|
||
|
}Mw_CfgApp_Gui_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
Mw_CfgApp_Gui_t gui;
|
||
|
uint8_t rsv[128];
|
||
|
}Mw_CfgAppGroup_t;
|
||
|
|
||
|
/*
|
||
|
* ALL
|
||
|
*/
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t magic;
|
||
|
uint16_t version;
|
||
|
uint16_t total_size;
|
||
|
uint32_t age; //use the max(main.age, back.age) part
|
||
|
uint32_t checksum;
|
||
|
}Mw_CfgHeader_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
Mw_CfgHeader_t header;
|
||
|
Mw_CfgBaseGroup_t base_info;
|
||
|
Mw_CfgSystemGroup_t system_info;
|
||
|
|
||
|
}Mw_CfgSysPart_t;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
Mw_CfgHeader_t header;
|
||
|
|
||
|
Mw_CfgCommonGroup_t common_info;
|
||
|
Mw_CfgVideoGroup_t video_info;
|
||
|
Mw_CfgPhotoGroup_t photo_info;
|
||
|
Mw_CfgAudioGroup_t audio_info;
|
||
|
Mw_CfgImageGroup_t image_info;
|
||
|
Mw_CfgOtherGroup_t other_info;
|
||
|
Mw_CfgAppGroup_t app_info;
|
||
|
|
||
|
|
||
|
uint8_t rsv[256];
|
||
|
}Mw_CfgUserPart_t;
|
||
|
|
||
|
/*
|
||
|
* Profile related
|
||
|
*/
|
||
|
typedef struct
|
||
|
{
|
||
|
char val[64];
|
||
|
} Mw_CfgProfileName_t;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t valid;
|
||
|
Mw_CfgProfileName_t name;
|
||
|
|
||
|
Mw_CfgCommonGroup_t common_info;
|
||
|
Mw_CfgVideoGroup_t video_info;
|
||
|
Mw_CfgPhotoGroup_t photo_info;
|
||
|
Mw_CfgAudioGroup_t audio_info;
|
||
|
Mw_CfgImageGroup_t image_info;
|
||
|
uint8_t rsv[256];
|
||
|
}Mw_CfgProfileSetting_t;
|
||
|
|
||
|
#endif
|