VmiCmd命令字定义
模块数据输入、数据输出、参数设置等功能均需要指定命令字,命令字由VmiDataType模块数据类型、VmiCmdType命令字类型、模块具体命令字(VmiVideoCmdId 、VmiAudioCmdId等)三部分拼接而成,具体定义如下:
enum VmiCmdType : uint8_t {
CMD_SET_PARAM = 0, // 设置参数类型命令
CMD_GET_PARAM, // 获取参数类型命令
CMD_TRANS_DATA, // 传输数据类型命令
};
enum VmiVideoCmdId : uint16_t {
SET_ENCODER_PARAM = 0, // 客户端设置编码参数到服务端
RETURN_VIDEO_DATA, // 服务端返回视频数据到客户端
GET_ENCODER_PARAM, // 获取视频模块的编码参数
};
enum VmiAudioCmdId : uint16_t {
SET_AUDIOPLAY_PARAM = 0, // 客户端设置音频播放参数到服务端
RETURN_AUDIO_PLAY_DATA, // 服务端发送音频播放数据到客户端
SET_CLIENT_VOLUME, // 服务端发送扬声器大小到客户端
GET_AUDIOPLAY_PARAM, // 客户端从服务端获取音频播放参数
};
enum VmiMicCmdId : uint16_t {
SEND_MIC_DATA = 0, // 客户端发送麦克风数据到服务端
RETURN_OPEN_CLIENT_MIC, // 服务端通知客户端麦克风启动
RETURN_CLOSE_CLIENT_MIC, // 服务端客户端麦克风关闭
};
enum VmiTouchCmdId : uint16_t {
SEND_TOUCH_EVENT = 0, // 客户端发送触控数据到服务端
SEND_KEY_EVENT, // 客户端发送按键数据到服务端
};
enum VmiSensorCmdId : uint16_t {
SEND_SENSOR_DATA = 0, // 客户端发送传感器数据到服务端
RETURN_REGISTER_CLIENT_SENSOR, // 服务端通知客户端注册传感器侦听
RETURN_UNREGISTER_CLIENT_SENSOR, // 服务端通知客户端取消传感器侦听
RETURN_UPDATE_CLIENT_SENSOR_RATE, // 服务端通知客户端更新传感器采集率
};
enum VmiGpsCmdId : uint16_t {
SEND_LOCATION_DATA = 0, // 客户端发送gps location到服务端
SEND_NMEA_DATA, // 客户端发送nmea到服务端
RETURN_START_GPS, // 服务端通知客户端启动GPS数据发送
RETURN_STOP_GPS, // 服务端通知客户端停止GPS数据发送
};
#define MAKE_CMD(dataType, cmdType, cmdId) ((dataType) << 24 | (cmdType) << 16 | (cmdId))
enum VmiCmd : uint32_t {
// 视频模块的cmd定义
VIDEO_SET_ENCODER_PARAM = MAKE_CMD(DATA_VIDEO, CMD_SET_PARAM, SET_ENCODER_PARAM), // 参数数据格式参见:EncodeParams
VIDEO_RETURN_VIDEO_DATA = MAKE_CMD(DATA_VIDEO, CMD_TRANS_DATA, RETURN_VIDEO_DATA), // 传输数据格式参见:VideoData
VIDEO_GET_ENCODER_PARAM = MAKE_CMD(DATA_VIDEO, CMD_GET_PARAM, GET_ENCODER_PARAM), // 参数数据格式参见:EncodeParams
// 音频模块的cmd定义
AUDIO_SET_AUDIOPLAY_PARAM = MAKE_CMD(DATA_AUDIO, CMD_SET_PARAM, SET_AUDIOPLAY_PARAM), // 参数数据格式参见:AudioPlayParams
AUDIO_GET_AUDIOPLAY_PARAM = MAKE_CMD(DATA_AUDIO, CMD_GET_PARAM, GET_AUDIOPLAY_PARAM),
AUDIO_RETURN_AUDIO_PLAY_DATA = MAKE_CMD(DATA_AUDIO, CMD_TRANS_DATA, RETURN_AUDIO_PLAY_DATA), // 传输数据格式参见:AudioData
AUDIO_SET_CLIENT_VOLUME = MAKE_CMD(DATA_AUDIO, CMD_SET_PARAM, SET_CLIENT_VOLUME),
// 麦克风模块的cmd定义
MIC_SEND_MIC_DATA = MAKE_CMD(DATA_MIC, CMD_TRANS_DATA, SEND_MIC_DATA),
MIC_RETURN_OPEN_CLIENT_MIC = MAKE_CMD(DATA_MIC, CMD_TRANS_DATA, RETURN_OPEN_CLIENT_MIC),
MIC_RETURN_CLOSE_CLIENT_MIC = MAKE_CMD(DATA_MIC, CMD_TRANS_DATA, RETURN_CLOSE_CLIENT_MIC),
// 触控模块的cmd定义
TOUCH_SEND_TOUCH_EVENT = MAKE_CMD(DATA_TOUCH, CMD_TRANS_DATA, SEND_TOUCH_EVENT), // 传输数据格式参见:VmiTouchInputData
TOUCH_SEND_KEY_EVENT = MAKE_CMD(DATA_TOUCH, CMD_TRANS_DATA, SEND_KEY_EVENT), // 传输数据格式参见:VmiKeyInputData
// 传感器模块的cmd定义
SENSOR_SEND_SENSOR_DATA = MAKE_CMD(DATA_SENSOR, CMD_TRANS_DATA, SEND_SENSOR_DATA), // 传输数据格式参见:SensorData
SENSOR_RETURN_REGISTER_CLIENT_SENSOR = MAKE_CMD(DATA_SENSOR, CMD_TRANS_DATA, RETURN_REGISTER_CLIENT_SENSOR),
SENSOR_RETURN_UNREGISTER_CLIENT_SENSOR = MAKE_CMD(DATA_SENSOR, CMD_TRANS_DATA, RETURN_UNREGISTER_CLIENT_SENSOR),
SENSOR_RETURN_UPDATE_CLIENT_SENSOR_RATE = MAKE_CMD(DATA_SENSOR, CMD_TRANS_DATA, RETURN_UPDATE_CLIENT_SENSOR_RATE),
// GPS模块的cmd定义
GPS_SEND_LOCATION_DATA = MAKE_CMD(DATA_GPS, CMD_TRANS_DATA, SEND_LOCATION_DATA), // 传输数据格式参见:VmiGPSLocationData
GPS_SEND_NMEA_DATA = MAKE_CMD(DATA_GPS, CMD_TRANS_DATA, SEND_NMEA_DATA), // 传输数据格式参见:VmiGPSLocationData
GPS_RETURN_START_GPS = MAKE_CMD(DATA_GPS, CMD_TRANS_DATA, RETURN_START_GPS),
GPS_RETURN_STOP_GPS = MAKE_CMD(DATA_GPS, CMD_TRANS_DATA, RETURN_STOP_GPS),
};
父主题: 基础数据类型