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), };
父主题: 基础数据类型