VmiCmd命令字定义
模块数据输入、数据输出、参数设置等功能均需要指定命令字作为接口的入参。命令字是一个枚举值为uint32_t类型的枚举类型。每个32位的命令字枚举值由三部分按顺序拼接而成, 分别为VmiDataType模块数据类型uint8_t枚举值、VmiCmdType命令字类型uint8_t枚举值、模块具体命令字(VmiVideoCmdId 、VmiAudioCmdId等)uint16_t枚举值。具体定义如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | 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), }; |
父主题: 基础数据类型