blob: c0ac161eed2b6fb7c064e714978ff3fa88a97a50 [file] [log] [blame]
/*
* Copyright 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <vector>
// AVRCP packets pulled from wireshark
namespace {
// AVRCP Get Capabilities Request packet
std::vector<uint8_t> get_capabilities_request = {
0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00, 0x00, 0x01, 0x03};
// AVRCP Get Capabilities Request packet with Company ID
std::vector<uint8_t> get_capabilities_request_company_id = {
0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00, 0x00, 0x01, 0x02};
// AVRCP Get Capabilities Request packet with Unknown
std::vector<uint8_t> get_capabilities_request_unknown = {
0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00, 0x00, 0x01, 0x7f};
// AVRCP Get Capabilities Response to Company ID request
std::vector<uint8_t> get_capabilities_response_company_id = {
0x0c, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00, 0x00,
0x08, 0x02, 0x02, 0x00, 0x19, 0x58, 0x00, 0x23, 0x45};
// AVRCP Get Capabilities Response to Events Supported request
std::vector<uint8_t> get_capabilities_response_events_supported = {
0x0c, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00,
0x00, 0x05, 0x03, 0x03, 0x01, 0x02, 0x05};
// AVRCP Get Element Attributes request for current playing song and attribute
// Title
std::vector<uint8_t> get_element_attributes_request_partial = {
0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x20, 0x00, 0x00, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01};
// AVRCP Get Element Attributes request for current playing song and attributes
// Title, Artist, Album, Media Number, Playing Time, Total Number of Media, and
// Genre
std::vector<uint8_t> get_element_attributes_request_full = {
0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x20, 0x00, 0x00, 0x25, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00,
0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06};
// AVRCP Get Element Attributes request for current playing song and attributes
// Title, Artist, Album, Media Number, Playing Time, Total Number of Media,
// Genre, and Cover Art
std::vector<uint8_t> get_element_attributes_request_full_cover_art = {
0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x20, 0x00, 0x00, 0x29, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00,
0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00,
0x00, 0x00, 0x08};
// AVRCP Get Element Attributes response with attribute values as follows
// Title: "Test Song"
// Artist: "Test Artist"
// Album: "Test Album"
// Track Number: "1"
// Number of Tracks: "2"
// Genre: "Test Genre"
// Duration: "1000"
std::vector<uint8_t> get_elements_attributes_response_full = {
0x0c, 0x48, 0x00, 0x00, 0x19, 0x58, 0x20, 0x00, 0x00, 0x67, 0x07, 0x00,
0x00, 0x00, 0x01, 0x00, 0x6a, 0x00, 0x09, 0x54, 0x65, 0x73, 0x74, 0x20,
0x53, 0x6f, 0x6e, 0x67, 0x00, 0x00, 0x00, 0x02, 0x00, 0x6a, 0x00, 0x0b,
0x54, 0x65, 0x73, 0x74, 0x20, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x00,
0x00, 0x00, 0x03, 0x00, 0x6a, 0x00, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x20,
0x41, 0x6c, 0x62, 0x75, 0x6d, 0x00, 0x00, 0x00, 0x04, 0x00, 0x6a, 0x00,
0x01, 0x31, 0x00, 0x00, 0x00, 0x05, 0x00, 0x6a, 0x00, 0x01, 0x32, 0x00,
0x00, 0x00, 0x06, 0x00, 0x6a, 0x00, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x20,
0x47, 0x65, 0x6e, 0x72, 0x65, 0x00, 0x00, 0x00, 0x07, 0x00, 0x6a, 0x00,
0x04, 0x31, 0x30, 0x30, 0x30};
// AVRCP Get Play Status Request
std::vector<uint8_t> get_play_status_request = {0x01, 0x48, 0x00, 0x00, 0x19,
0x58, 0x30, 0x00, 0x00, 0x00};
// AVRCP Get Play Status Response
std::vector<uint8_t> get_play_status_response = {
0x0c, 0x48, 0x00, 0x00, 0x19, 0x58, 0x30, 0x00, 0x00, 0x09,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00};
// AVRCP Pass Through Command Play Pushed Request
std::vector<uint8_t> pass_through_command_play_pushed = {0x00, 0x48, 0x7c, 0x44,
0x00};
// AVRCP Pass Through Command Play Pushed Response
std::vector<uint8_t> pass_through_command_play_released = {0x09, 0x48, 0x7c,
0xc4, 0x00};
// AVRCP Register Playback Status Notification
std::vector<uint8_t> register_play_status_notification = {
0x03, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00,
0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x05};
// AVRCP Register Volume Changed Notification
std::vector<uint8_t> register_volume_changed_notification = {
0x03, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00,
0x00, 0x05, 0x0d, 0x00, 0x00, 0x00, 0x00};
// AVRCP Register Notification without any parameter
std::vector<uint8_t> register_notification_invalid = {0x03, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31,
0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00};
// AVRCP Interim Playback Status Notification
std::vector<uint8_t> interim_play_status_notification = {
0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x02, 0x01, 0x00};
// AVRCP Interim Track Changed Notification
std::vector<uint8_t> interim_track_changed_notification = {
0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x09,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
// AVRCP Changed Playback Position Notification
std::vector<uint8_t> changed_play_pos_notification = {
0x0d, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00,
0x00, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00};
// AVRCP Interim Now Playing Changed Notification
std::vector<uint8_t> interim_now_playing_notification = {
0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x01, 0x09};
// AVRCP Interim Available Players Changed Notification
std::vector<uint8_t> interim_available_players_notification = {
0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x01, 0x0a};
// AVRCP Interim Addressed Player Changed Notification with active
// player ID 1
std::vector<uint8_t> interim_addressed_player_notification = {
0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00,
0x00, 0x05, 0x0b, 0x00, 0x01, 0x00, 0x00};
// AVRCP Interim UIDs Changed Notification
std::vector<uint8_t> interim_uids_notificaiton = {0x0f, 0x48, 0x00, 0x00, 0x19,
0x58, 0x31, 0x00, 0x00, 0x03,
0x0c, 0x00, 0x00};
// AVRCP Interim Volume Changed Notification with volume at 55% (0x47)
std::vector<uint8_t> interim_volume_changed_notification = {
0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x02, 0x0d, 0x47};
// AVRCP Rejected Volume Changed Notification with volume at 0%
std::vector<uint8_t> rejected_volume_changed_notification = {
0x0a, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x02, 0x0d, 0x00};
// AVRCP Changed Volume Changed Notification with volume at 55% (0x47)
std::vector<uint8_t> changed_volume_changed_notification = {
0x0d, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x02, 0x0d, 0x47};
// AVRCP Reject List Player Application Settings Response
std::vector<uint8_t> reject_player_app_settings_response = {
0x0a, 0x48, 0x00, 0x00, 0x19, 0x58, 0x11, 0x00, 0x00, 0x01, 0x00};
// AVRCP Browse General Reject packet for invalid PDU ID
std::vector<uint8_t> general_reject_invalid_command_packet = {0xa0, 0x00, 0x01,
0x00};
// AVRCP Browse Get Folder Items Request packet for media players with
// the following data:
// scope = 0x00 (Media Player List)
// start_item = 0x00
// end_item = 0x03
// attributes_requested: all
std::vector<uint8_t> get_folder_items_request = {0x71, 0x00, 0x0a, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x03, 0x00};
// AVRCP Browse Get Folder Items Request packet for media players with
// the following data:
// scope = 0x01 (VFS)
// start_item = 0x00
// end_item = 0x09
// attributes_requested: none
std::vector<uint8_t> get_folder_items_request_no_attrs = {
0x71, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x09, 0xff};
// AVRCP Browse Get Folder Items Request packet for media players with
// the following data:
// scope = 0x01 (VFS)
// start_item = 0x00
// end_item = 0x09
// attributes_requested: Title
std::vector<uint8_t> get_folder_items_request_title = {
0x71, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x00, 0x1};
// AVRCP Browse Get Folder Items Request packet for vfs with
// the following data:
// scope = 0x01 (VFS)
// start_item = 0x00
// end_item = 0x05
// attributes_requested: TITLE
std::vector<uint8_t> get_folder_items_request_vfs = {
0x71, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x01};
// AVRCP Browse Get Folder Items Request packet for now playing with
// the following data:
// scope = 0x03 (Now Playing)
// start_item = 0x00
// end_item = 0x05
// attributes_requested: All Items
std::vector<uint8_t> get_folder_items_request_now_playing = {0x71, 0x00, 0x0a, 0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x05, 0x00};
// AVRCP Browse Get Folder Items Response packet with range out of bounds error
std::vector<uint8_t> get_folder_items_error_response = {0x71, 0x00, 0x01, 0x0b};
// AVRCP Browse Get Folder Items Response packet for media players
// Contains one media player with the following fields:
// id = 0x0001
// name = "com.google.android.music"
// browsing_supported = true
std::vector<uint8_t> get_folder_items_media_player_response = {
0x71, 0x00, 0x3c, 0x04, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x34,
0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0xb7, 0x01, 0x0c, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x6a, 0x00, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x64, 0x72, 0x6f,
0x69, 0x64, 0x2e, 0x6d, 0x75, 0x73, 0x69, 0x63};
// AVRCP Browse Get Folder Items Response packet with one folder
// with the following fields:
// uid = 0x0000000000000001
// type = 0x00 (Mixed);
// name = "Test Folder"
// is_playable = true
std::vector<uint8_t> get_folder_items_folder_response = {
0x71, 0x00, 0x21, 0x04, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x19, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x6a, 0x00,
0x0b, 0x54, 0x65, 0x73, 0x74, 0x20, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72};
// AVRCP Browse Get Folder Items Response packet with one song
// with the following fields:
// uid = 0x0000000000000002
// name = "Test Title"
// attribute[TITLE] = "Test Title"
std::vector<uint8_t> get_folder_items_song_response = {
0x71, 0x00, 0x32, 0x04, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x2a,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x6a,
0x00, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x20, 0x54, 0x69, 0x74, 0x6c,
0x65, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x6a, 0x00, 0x0a, 0x54,
0x65, 0x73, 0x74, 0x20, 0x54, 0x69, 0x74, 0x6c, 0x65};
// AVRCP Browse Change Path Request down to folder with UID 0x0000000000000002
std::vector<uint8_t> change_path_request = {0x72, 0x00, 0x0b, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02};
// AVRCP Browse Change Path Request up
std::vector<uint8_t> change_path_up_request = {0x72, 0x00, 0x0b, 0x00, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF};
// AVRCP Browse Change Path Response with two items in current folder
std::vector<uint8_t> change_path_response = {0x72, 0x00, 0x05, 0x04,
0x00, 0x00, 0x00, 0x02};
// AVRCP Browse Change Path Response with an error of invalid direction
std::vector<uint8_t> change_path_error_response = {0x72, 0x00, 0x01, 0x07};
// AVRCP Get Item Attributes request with all attributes requested
// with the following fields:
// scope = 0x03 (Now Playing List)
// uid_counter = 0x0000
// uid = 0x0000000000000001
std::vector<uint8_t> get_item_attributes_request_all_attributes = {
0x73, 0x00, 0x28, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07};
// AVRCP Get Item Attributes request with all attributes requested
// with the following fields:
// scope = 0x03 (Now Playing List)
// uid_counter = 0x0000
// uid = 0x0000000000000001
// attributes = Title, Artist, Album, Media Number, Playing Time,
// Total Number of Media, Genre, and Cover Art
std::vector<uint8_t> get_item_attributes_request_all_attributes_with_cover_art = {
0x73, 0x00, 0x2C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00,
0x00, 0x00, 0x08};
// AVRCP Get Item Attributes request with all attributes requested
// with the following fields:
// scope = 0x03 (Now Playing List)
// uid_counter = 0x0001
// uid = 0x0000000000000001
std::vector<uint8_t> get_item_attributes_request_all_attributes_invalid = {
0x73, 0x00, 0x28, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07};
// AVRCP Get Item Attributes Response with the following attributes:
// title = "Test Song"
// artist = "Test Artist"
// album = "Test Album"
std::vector<uint8_t> get_item_attributes_song_response = {
0x73, 0x00, 0x38, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x6a, 0x00,
0x09, 0x54, 0x65, 0x73, 0x74, 0x20, 0x53, 0x6f, 0x6e, 0x67, 0x00, 0x00,
0x00, 0x02, 0x00, 0x6a, 0x00, 0x0b, 0x54, 0x65, 0x73, 0x74, 0x20, 0x41,
0x72, 0x74, 0x69, 0x73, 0x74, 0x00, 0x00, 0x00, 0x03, 0x00, 0x6a, 0x00,
0x0a, 0x54, 0x65, 0x73, 0x74, 0x20, 0x41, 0x6c, 0x62, 0x75, 0x6d};
// AVRCP Set Addressed Player Request with player_id = 0
std::vector<uint8_t> set_addressed_player_request = {
0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x60, 0x00, 0x00, 0x02, 0x00, 0x00};
// AVRCP Set Addressed Player Request with player_id = 1
std::vector<uint8_t> set_addressed_player_id_1_request = {
0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x60, 0x00, 0x00, 0x02, 0x00, 0x01};
// AVRCP Set Addressed Player Response with status success
std::vector<uint8_t> set_addressed_player_response = {
0x09, 0x48, 0x00, 0x00, 0x19, 0x58, 0x60, 0x00, 0x00, 0x01, 0x04};
// AVRCP Set Browsed Player Request with player_id = 2
std::vector<uint8_t> set_browsed_player_request = {0x70, 0x00, 0x02, 0x00,
0x02};
// AVRCP Set Browsed Player Request with player_id = 0
std::vector<uint8_t> set_browsed_player_id_0_request = {0x70, 0x00, 0x02, 0x00,
0x00};
// AVRCP Set Browsed Player Response with num items = 4 and depth = 0
std::vector<uint8_t> set_browsed_player_response = {
0x70, 0x00, 0x0a, 0x04, 0x00, 0x00, 0x00,
0x00, 0x00, 0x04, 0x00, 0x6a, 0x00};
// AVRCP Get Total Number of Items Request with Scope = Media Player List
std::vector<uint8_t> get_total_number_of_items_request_media_players = {
0x75, 0x00, 0x01, 0x00};
// AVRCP Get Total Number of Items Request with Scope = VFS
std::vector<uint8_t> get_total_number_of_items_request_vfs = {0x75, 0x00, 0x01,
0x01};
// AVRCP Get Total Number of Items Request with Scope = Now Playing List
std::vector<uint8_t> get_total_number_of_items_request_now_playing = {
0x75, 0x00, 0x01, 0x03};
// AVRCP Get Total number of Items Response with 5 items in folder
std::vector<uint8_t> get_total_number_of_items_response = {
0x75, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05};
// AVRCP Play Item Request with scope = Now Playing and
// UID = 0x0000000000000003
std::vector<uint8_t> play_item_request = {
0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x74, 0x00, 0x00, 0x0b, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00};
// AVRCP Play Item Response
std::vector<uint8_t> play_item_response = {0x09, 0x48, 0x00, 0x00, 0x19, 0x58,
0x74, 0x00, 0x00, 0x01, 0x04};
// AVRCP Set Absolute Volume Request with volume at 56% (0x48)
std::vector<uint8_t> set_absolute_volume_request = {
0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x50, 0x00, 0x00, 0x01, 0x48};
// AVRCP Set Absolute Volume Response with voume at 52% (0x43)
std::vector<uint8_t> set_absolute_volume_response = {
0x09, 0x48, 0x00, 0x00, 0x19, 0x58, 0x50, 0x00, 0x00, 0x01, 0x43};
// Invalid Packets
// Short Vendor Packet
std::vector<uint8_t> short_vendor_packet = {0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00, 0x00, 0x01};
// Short Get Capabilities Request Packet
std::vector<uint8_t> short_get_capabilities_request = {0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00, 0x00, 0x00};
// Short Get Element Attributes Request Packet
std::vector<uint8_t> short_get_element_attributes_request = {0x01, 0x48, 0x00, 0x00, 0x19,
0x58, 0x20, 0x00, 0x00, 0x00};
// Short Play Item Request Packet
std::vector<uint8_t> short_play_item_request = {0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x74, 0x00, 0x00, 0x00};
// Short Set Addressed Player Request Packet
std::vector<uint8_t> short_set_addressed_player_request = {0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x60, 0x00, 0x00, 0x00};
// Short Browse Packet
std::vector<uint8_t> short_browse_packet = {0x71, 0x00, 0x0a};
// Short Get Folder Items Request Packet
std::vector<uint8_t> short_get_folder_items_request = {0x71, 0x00, 0x00};
// Short Get Total Number of Items Request Packet
std::vector<uint8_t> short_get_total_number_of_items_request = {0x75, 0x00, 0x00};
// Short Change Path Request Packet
std::vector<uint8_t> short_change_path_request = {0x72, 0x00, 0x00};
// Short Get Item Attributes Request Packet
std::vector<uint8_t> short_get_item_attributes_request = {0x73, 0x00, 0x00};
} // namespace