mirror of
https://github.com/esphome/esphome.git
synced 2025-08-05 09:57:47 +00:00
fixes
This commit is contained in:
parent
b3bb059e42
commit
ae945c9a96
@ -100,14 +100,22 @@ const FieldMetaV3 DeviceInfoResponse::FIELDS_V3[20] = {
|
|||||||
{16, 40, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, suggested_area)}},
|
{16, 40, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, suggested_area)}},
|
||||||
{18, 40, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, bluetooth_mac_address)}},
|
{18, 40, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, bluetooth_mac_address)}},
|
||||||
{19, 32, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, api_encryption_supported)}},
|
{19, 32, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, api_encryption_supported)}},
|
||||||
{22, 42, {.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(DeviceInfoResponse, area)), .message_type_id = 9}}};
|
{22,
|
||||||
|
42,
|
||||||
|
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(DeviceInfoResponse, area) & 0xFF),
|
||||||
|
.message_type_id =
|
||||||
|
static_cast<uint8_t>(9 | (((PROTO_FIELD_OFFSET(DeviceInfoResponse, area) >> 8) & 0x0F) << 4))}}};
|
||||||
const RepeatedFieldMetaV3 DeviceInfoResponse::REPEATED_FIELDS_V3[2] = {
|
const RepeatedFieldMetaV3 DeviceInfoResponse::REPEATED_FIELDS_V3[2] = {
|
||||||
{20,
|
{20,
|
||||||
42,
|
42,
|
||||||
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(DeviceInfoResponse, devices)), .message_type_id = 0}},
|
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(DeviceInfoResponse, devices) & 0xFF),
|
||||||
|
.message_type_id =
|
||||||
|
static_cast<uint8_t>(0 | (((PROTO_FIELD_OFFSET(DeviceInfoResponse, devices) >> 8) & 0x0F) << 4))}},
|
||||||
{21,
|
{21,
|
||||||
42,
|
42,
|
||||||
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(DeviceInfoResponse, areas)), .message_type_id = 1}}};
|
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(DeviceInfoResponse, areas) & 0xFF),
|
||||||
|
.message_type_id =
|
||||||
|
static_cast<uint8_t>(1 | (((PROTO_FIELD_OFFSET(DeviceInfoResponse, areas) >> 8) & 0x0F) << 4))}}};
|
||||||
#ifdef USE_BINARY_SENSOR
|
#ifdef USE_BINARY_SENSOR
|
||||||
const FieldMetaV3 ListEntitiesBinarySensorResponse::FIELDS_V3[10] = {
|
const FieldMetaV3 ListEntitiesBinarySensorResponse::FIELDS_V3[10] = {
|
||||||
{1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, object_id)}},
|
{1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, object_id)}},
|
||||||
@ -342,16 +350,19 @@ const FieldMetaV3 HomeassistantServiceResponse::FIELDS_V3[2] = {
|
|||||||
const RepeatedFieldMetaV3 HomeassistantServiceResponse::REPEATED_FIELDS_V3[3] = {
|
const RepeatedFieldMetaV3 HomeassistantServiceResponse::REPEATED_FIELDS_V3[3] = {
|
||||||
{2,
|
{2,
|
||||||
10,
|
10,
|
||||||
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(HomeassistantServiceResponse, data)),
|
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(HomeassistantServiceResponse, data) & 0xFF),
|
||||||
.message_type_id = 2}},
|
.message_type_id =
|
||||||
|
static_cast<uint8_t>(2 | (((PROTO_FIELD_OFFSET(HomeassistantServiceResponse, data) >> 8) & 0x0F) << 4))}},
|
||||||
{3,
|
{3,
|
||||||
10,
|
10,
|
||||||
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(HomeassistantServiceResponse, data_template)),
|
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(HomeassistantServiceResponse, data_template) & 0xFF),
|
||||||
.message_type_id = 2}},
|
.message_type_id = static_cast<uint8_t>(
|
||||||
|
2 | (((PROTO_FIELD_OFFSET(HomeassistantServiceResponse, data_template) >> 8) & 0x0F) << 4))}},
|
||||||
{4,
|
{4,
|
||||||
10,
|
10,
|
||||||
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(HomeassistantServiceResponse, variables)),
|
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(HomeassistantServiceResponse, variables) & 0xFF),
|
||||||
.message_type_id = 2}}};
|
.message_type_id = static_cast<uint8_t>(
|
||||||
|
2 | (((PROTO_FIELD_OFFSET(HomeassistantServiceResponse, variables) >> 8) & 0x0F) << 4))}}};
|
||||||
const FieldMetaV3 SubscribeHomeAssistantStateResponse::FIELDS_V3[3] = {
|
const FieldMetaV3 SubscribeHomeAssistantStateResponse::FIELDS_V3[3] = {
|
||||||
{1, 8, {.offset = PROTO_FIELD_OFFSET(SubscribeHomeAssistantStateResponse, entity_id)}},
|
{1, 8, {.offset = PROTO_FIELD_OFFSET(SubscribeHomeAssistantStateResponse, entity_id)}},
|
||||||
{2, 8, {.offset = PROTO_FIELD_OFFSET(SubscribeHomeAssistantStateResponse, attribute)}},
|
{2, 8, {.offset = PROTO_FIELD_OFFSET(SubscribeHomeAssistantStateResponse, attribute)}},
|
||||||
@ -371,8 +382,9 @@ const FieldMetaV3 ListEntitiesServicesResponse::FIELDS_V3[2] = {
|
|||||||
const RepeatedFieldMetaV3 ListEntitiesServicesResponse::REPEATED_FIELDS_V3[1] = {
|
const RepeatedFieldMetaV3 ListEntitiesServicesResponse::REPEATED_FIELDS_V3[1] = {
|
||||||
{3,
|
{3,
|
||||||
10,
|
10,
|
||||||
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(ListEntitiesServicesResponse, args)),
|
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(ListEntitiesServicesResponse, args) & 0xFF),
|
||||||
.message_type_id = 3}}};
|
.message_type_id =
|
||||||
|
static_cast<uint8_t>(3 | (((PROTO_FIELD_OFFSET(ListEntitiesServicesResponse, args) >> 8) & 0x0F) << 4))}}};
|
||||||
const FieldMetaV3 ExecuteServiceArgument::FIELDS_V3[5] = {
|
const FieldMetaV3 ExecuteServiceArgument::FIELDS_V3[5] = {
|
||||||
{1, 0, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, bool_)}},
|
{1, 0, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, bool_)}},
|
||||||
{2, 1, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, legacy_int)}},
|
{2, 1, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, legacy_int)}},
|
||||||
@ -389,7 +401,9 @@ const FieldMetaV3 ExecuteServiceRequest::FIELDS_V3[1] = {
|
|||||||
const RepeatedFieldMetaV3 ExecuteServiceRequest::REPEATED_FIELDS_V3[1] = {
|
const RepeatedFieldMetaV3 ExecuteServiceRequest::REPEATED_FIELDS_V3[1] = {
|
||||||
{2,
|
{2,
|
||||||
10,
|
10,
|
||||||
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(ExecuteServiceRequest, args)), .message_type_id = 4}}};
|
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(ExecuteServiceRequest, args) & 0xFF),
|
||||||
|
.message_type_id =
|
||||||
|
static_cast<uint8_t>(4 | (((PROTO_FIELD_OFFSET(ExecuteServiceRequest, args) >> 8) & 0x0F) << 4))}}};
|
||||||
#ifdef USE_CAMERA
|
#ifdef USE_CAMERA
|
||||||
const FieldMetaV3 ListEntitiesCameraResponse::FIELDS_V3[8] = {
|
const FieldMetaV3 ListEntitiesCameraResponse::FIELDS_V3[8] = {
|
||||||
{1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, object_id)}},
|
{1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, object_id)}},
|
||||||
@ -612,8 +626,9 @@ const FieldMetaV3 ListEntitiesMediaPlayerResponse::FIELDS_V3[9] = {
|
|||||||
const RepeatedFieldMetaV3 ListEntitiesMediaPlayerResponse::REPEATED_FIELDS_V3[1] = {
|
const RepeatedFieldMetaV3 ListEntitiesMediaPlayerResponse::REPEATED_FIELDS_V3[1] = {
|
||||||
{9,
|
{9,
|
||||||
10,
|
10,
|
||||||
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, supported_formats)),
|
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, supported_formats) & 0xFF),
|
||||||
.message_type_id = 5}}};
|
.message_type_id = static_cast<uint8_t>(
|
||||||
|
5 | (((PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, supported_formats) >> 8) & 0x0F) << 4))}}};
|
||||||
const FieldMetaV3 MediaPlayerStateResponse::FIELDS_V3[5] = {
|
const FieldMetaV3 MediaPlayerStateResponse::FIELDS_V3[5] = {
|
||||||
{1, 12, {.offset = PROTO_FIELD_OFFSET(MediaPlayerStateResponse, key)}},
|
{1, 12, {.offset = PROTO_FIELD_OFFSET(MediaPlayerStateResponse, key)}},
|
||||||
{2, 7, {.offset = PROTO_FIELD_OFFSET(MediaPlayerStateResponse, state)}},
|
{2, 7, {.offset = PROTO_FIELD_OFFSET(MediaPlayerStateResponse, state)}},
|
||||||
@ -648,12 +663,15 @@ const RepeatedFieldMetaV3 BluetoothLEAdvertisementResponse::REPEATED_FIELDS_V3[3
|
|||||||
{4, 8, {.offset = PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, service_uuids)}},
|
{4, 8, {.offset = PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, service_uuids)}},
|
||||||
{5,
|
{5,
|
||||||
10,
|
10,
|
||||||
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, service_data)),
|
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, service_data) & 0xFF),
|
||||||
.message_type_id = 6}},
|
.message_type_id = static_cast<uint8_t>(
|
||||||
|
6 | (((PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, service_data) >> 8) & 0x0F) << 4))}},
|
||||||
{6,
|
{6,
|
||||||
10,
|
10,
|
||||||
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, manufacturer_data)),
|
{.offset_low =
|
||||||
.message_type_id = 6}}};
|
static_cast<uint8_t>(PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, manufacturer_data) & 0xFF),
|
||||||
|
.message_type_id = static_cast<uint8_t>(
|
||||||
|
6 | (((PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, manufacturer_data) >> 8) & 0x0F) << 4))}}};
|
||||||
const FieldMetaV3 BluetoothLERawAdvertisement::FIELDS_V3[4] = {
|
const FieldMetaV3 BluetoothLERawAdvertisement::FIELDS_V3[4] = {
|
||||||
{1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothLERawAdvertisement, address)}},
|
{1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothLERawAdvertisement, address)}},
|
||||||
{2, 5, {.offset = PROTO_FIELD_OFFSET(BluetoothLERawAdvertisement, rssi)}},
|
{2, 5, {.offset = PROTO_FIELD_OFFSET(BluetoothLERawAdvertisement, rssi)}},
|
||||||
@ -662,8 +680,10 @@ const FieldMetaV3 BluetoothLERawAdvertisement::FIELDS_V3[4] = {
|
|||||||
const RepeatedFieldMetaV3 BluetoothLERawAdvertisementsResponse::REPEATED_FIELDS_V3[1] = {
|
const RepeatedFieldMetaV3 BluetoothLERawAdvertisementsResponse::REPEATED_FIELDS_V3[1] = {
|
||||||
{1,
|
{1,
|
||||||
10,
|
10,
|
||||||
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(BluetoothLERawAdvertisementsResponse, advertisements)),
|
{.offset_low =
|
||||||
.message_type_id = 7}}};
|
static_cast<uint8_t>(PROTO_FIELD_OFFSET(BluetoothLERawAdvertisementsResponse, advertisements) & 0xFF),
|
||||||
|
.message_type_id = static_cast<uint8_t>(
|
||||||
|
7 | (((PROTO_FIELD_OFFSET(BluetoothLERawAdvertisementsResponse, advertisements) >> 8) & 0x0F) << 4))}}};
|
||||||
const FieldMetaV3 BluetoothDeviceRequest::FIELDS_V3[4] = {
|
const FieldMetaV3 BluetoothDeviceRequest::FIELDS_V3[4] = {
|
||||||
{1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceRequest, address)}},
|
{1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceRequest, address)}},
|
||||||
{2, 7, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceRequest, request_type)}},
|
{2, 7, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceRequest, request_type)}},
|
||||||
@ -687,23 +707,26 @@ const RepeatedFieldMetaV3 BluetoothGATTCharacteristic::REPEATED_FIELDS_V3[2] = {
|
|||||||
{1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTCharacteristic, uuid)}},
|
{1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTCharacteristic, uuid)}},
|
||||||
{4,
|
{4,
|
||||||
10,
|
10,
|
||||||
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(BluetoothGATTCharacteristic, descriptors)),
|
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(BluetoothGATTCharacteristic, descriptors) & 0xFF),
|
||||||
.message_type_id = 8}}};
|
.message_type_id = static_cast<uint8_t>(
|
||||||
|
8 | (((PROTO_FIELD_OFFSET(BluetoothGATTCharacteristic, descriptors) >> 8) & 0x0F) << 4))}}};
|
||||||
const FieldMetaV3 BluetoothGATTService::FIELDS_V3[1] = {
|
const FieldMetaV3 BluetoothGATTService::FIELDS_V3[1] = {
|
||||||
{2, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTService, handle)}}};
|
{2, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTService, handle)}}};
|
||||||
const RepeatedFieldMetaV3 BluetoothGATTService::REPEATED_FIELDS_V3[2] = {
|
const RepeatedFieldMetaV3 BluetoothGATTService::REPEATED_FIELDS_V3[2] = {
|
||||||
{1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTService, uuid)}},
|
{1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTService, uuid)}},
|
||||||
{3,
|
{3,
|
||||||
10,
|
10,
|
||||||
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(BluetoothGATTService, characteristics)),
|
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(BluetoothGATTService, characteristics) & 0xFF),
|
||||||
.message_type_id = 9}}};
|
.message_type_id =
|
||||||
|
static_cast<uint8_t>(9 | (((PROTO_FIELD_OFFSET(BluetoothGATTService, characteristics) >> 8) & 0x0F) << 4))}}};
|
||||||
const FieldMetaV3 BluetoothGATTGetServicesResponse::FIELDS_V3[1] = {
|
const FieldMetaV3 BluetoothGATTGetServicesResponse::FIELDS_V3[1] = {
|
||||||
{1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTGetServicesResponse, address)}}};
|
{1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTGetServicesResponse, address)}}};
|
||||||
const RepeatedFieldMetaV3 BluetoothGATTGetServicesResponse::REPEATED_FIELDS_V3[1] = {
|
const RepeatedFieldMetaV3 BluetoothGATTGetServicesResponse::REPEATED_FIELDS_V3[1] = {
|
||||||
{2,
|
{2,
|
||||||
10,
|
10,
|
||||||
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(BluetoothGATTGetServicesResponse, services)),
|
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(BluetoothGATTGetServicesResponse, services) & 0xFF),
|
||||||
.message_type_id = 10}}};
|
.message_type_id = static_cast<uint8_t>(
|
||||||
|
10 | (((PROTO_FIELD_OFFSET(BluetoothGATTGetServicesResponse, services) >> 8) & 0x0F) << 4))}}};
|
||||||
const FieldMetaV3 BluetoothGATTGetServicesDoneResponse::FIELDS_V3[1] = {
|
const FieldMetaV3 BluetoothGATTGetServicesDoneResponse::FIELDS_V3[1] = {
|
||||||
{1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTGetServicesDoneResponse, address)}}};
|
{1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTGetServicesDoneResponse, address)}}};
|
||||||
const FieldMetaV3 BluetoothGATTReadRequest::FIELDS_V3[2] = {
|
const FieldMetaV3 BluetoothGATTReadRequest::FIELDS_V3[2] = {
|
||||||
@ -780,8 +803,9 @@ const FieldMetaV3 VoiceAssistantRequest::FIELDS_V3[5] = {
|
|||||||
{3, 2, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantRequest, flags)}},
|
{3, 2, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantRequest, flags)}},
|
||||||
{4,
|
{4,
|
||||||
10,
|
10,
|
||||||
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(VoiceAssistantRequest, audio_settings)),
|
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(VoiceAssistantRequest, audio_settings) & 0xFF),
|
||||||
.message_type_id = 105}},
|
.message_type_id = static_cast<uint8_t>(
|
||||||
|
105 | (((PROTO_FIELD_OFFSET(VoiceAssistantRequest, audio_settings) >> 8) & 0x0F) << 4))}},
|
||||||
{5, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantRequest, wake_word_phrase)}}};
|
{5, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantRequest, wake_word_phrase)}}};
|
||||||
const FieldMetaV3 VoiceAssistantResponse::FIELDS_V3[2] = {
|
const FieldMetaV3 VoiceAssistantResponse::FIELDS_V3[2] = {
|
||||||
{1, 2, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantResponse, port)}},
|
{1, 2, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantResponse, port)}},
|
||||||
@ -794,8 +818,9 @@ const FieldMetaV3 VoiceAssistantEventResponse::FIELDS_V3[1] = {
|
|||||||
const RepeatedFieldMetaV3 VoiceAssistantEventResponse::REPEATED_FIELDS_V3[1] = {
|
const RepeatedFieldMetaV3 VoiceAssistantEventResponse::REPEATED_FIELDS_V3[1] = {
|
||||||
{2,
|
{2,
|
||||||
10,
|
10,
|
||||||
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(VoiceAssistantEventResponse, data)),
|
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(VoiceAssistantEventResponse, data) & 0xFF),
|
||||||
.message_type_id = 11}}};
|
.message_type_id =
|
||||||
|
static_cast<uint8_t>(11 | (((PROTO_FIELD_OFFSET(VoiceAssistantEventResponse, data) >> 8) & 0x0F) << 4))}}};
|
||||||
const FieldMetaV3 VoiceAssistantAudio::FIELDS_V3[2] = {
|
const FieldMetaV3 VoiceAssistantAudio::FIELDS_V3[2] = {
|
||||||
{1, 9, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAudio, data)}},
|
{1, 9, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAudio, data)}},
|
||||||
{2, 0, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAudio, end)}}};
|
{2, 0, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAudio, end)}}};
|
||||||
@ -823,8 +848,10 @@ const FieldMetaV3 VoiceAssistantConfigurationResponse::FIELDS_V3[1] = {
|
|||||||
const RepeatedFieldMetaV3 VoiceAssistantConfigurationResponse::REPEATED_FIELDS_V3[2] = {
|
const RepeatedFieldMetaV3 VoiceAssistantConfigurationResponse::REPEATED_FIELDS_V3[2] = {
|
||||||
{1,
|
{1,
|
||||||
10,
|
10,
|
||||||
{.offset_low = static_cast<uint8_t>(PROTO_FIELD_OFFSET(VoiceAssistantConfigurationResponse, available_wake_words)),
|
{.offset_low =
|
||||||
.message_type_id = 12}},
|
static_cast<uint8_t>(PROTO_FIELD_OFFSET(VoiceAssistantConfigurationResponse, available_wake_words) & 0xFF),
|
||||||
|
.message_type_id = static_cast<uint8_t>(
|
||||||
|
12 | (((PROTO_FIELD_OFFSET(VoiceAssistantConfigurationResponse, available_wake_words) >> 8) & 0x0F) << 4))}},
|
||||||
{2, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantConfigurationResponse, active_wake_words)}}};
|
{2, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantConfigurationResponse, active_wake_words)}}};
|
||||||
const RepeatedFieldMetaV3 VoiceAssistantSetConfiguration::REPEATED_FIELDS_V3[1] = {
|
const RepeatedFieldMetaV3 VoiceAssistantSetConfiguration::REPEATED_FIELDS_V3[1] = {
|
||||||
{1, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantSetConfiguration, active_wake_words)}}};
|
{1, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantSetConfiguration, active_wake_words)}}};
|
||||||
|
@ -284,9 +284,10 @@ void ProtoMessage::decode(const uint8_t *buffer, size_t length) {
|
|||||||
case ProtoFieldType::TYPE_MESSAGE: {
|
case ProtoFieldType::TYPE_MESSAGE: {
|
||||||
// Use repeated message handler registry
|
// Use repeated message handler registry
|
||||||
uint8_t handler_id = repeated_fields[j].get_message_type_id();
|
uint8_t handler_id = repeated_fields[j].get_message_type_id();
|
||||||
ESP_LOGD(TAG, "Repeated TYPE_MESSAGE field %d, handler_id=%d, REPEATED_MESSAGE_HANDLER_COUNT=%zu",
|
ESP_LOGD(TAG, "Repeated TYPE_MESSAGE field %d, handler_id=%d, REPEATED_MESSAGE_HANDLER_COUNT=%zu",
|
||||||
field_id, handler_id, REPEATED_MESSAGE_HANDLER_COUNT);
|
field_id, handler_id, REPEATED_MESSAGE_HANDLER_COUNT);
|
||||||
if (handler_id < REPEATED_MESSAGE_HANDLER_COUNT && REPEATED_MESSAGE_HANDLERS[handler_id].decode != nullptr) {
|
if (handler_id < REPEATED_MESSAGE_HANDLER_COUNT &&
|
||||||
|
REPEATED_MESSAGE_HANDLERS[handler_id].decode != nullptr) {
|
||||||
decoded = REPEATED_MESSAGE_HANDLERS[handler_id].decode(field_addr, value);
|
decoded = REPEATED_MESSAGE_HANDLERS[handler_id].decode(field_addr, value);
|
||||||
ESP_LOGD(TAG, "Decoded repeated message field %d: %s", field_id, decoded ? "success" : "failed");
|
ESP_LOGD(TAG, "Decoded repeated message field %d: %s", field_id, decoded ? "success" : "failed");
|
||||||
} else {
|
} else {
|
||||||
@ -583,8 +584,9 @@ void ProtoMessage::encode(ProtoWriteBuffer buffer) const {
|
|||||||
}
|
}
|
||||||
case ProtoFieldType::TYPE_MESSAGE: {
|
case ProtoFieldType::TYPE_MESSAGE: {
|
||||||
// Use message handler registry
|
// Use message handler registry
|
||||||
if (fields[i].get_message_type_id() < MESSAGE_HANDLER_COUNT) {
|
uint8_t handler_id = fields[i].get_message_type_id();
|
||||||
MESSAGE_HANDLERS[fields[i].get_message_type_id()].encode(buffer, field_addr, fields[i].field_num);
|
if (handler_id < MESSAGE_HANDLER_COUNT && MESSAGE_HANDLERS[handler_id].encode != nullptr) {
|
||||||
|
MESSAGE_HANDLERS[handler_id].encode(buffer, field_addr, fields[i].field_num);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -821,9 +823,9 @@ void ProtoMessage::calculate_size(uint32_t &total_size) const {
|
|||||||
}
|
}
|
||||||
case ProtoFieldType::TYPE_MESSAGE: {
|
case ProtoFieldType::TYPE_MESSAGE: {
|
||||||
// Use message handler registry
|
// Use message handler registry
|
||||||
if (fields[i].get_message_type_id() < MESSAGE_HANDLER_COUNT) {
|
uint8_t handler_id = fields[i].get_message_type_id();
|
||||||
MESSAGE_HANDLERS[fields[i].get_message_type_id()].size(total_size, field_addr,
|
if (handler_id < MESSAGE_HANDLER_COUNT && MESSAGE_HANDLERS[handler_id].size != nullptr) {
|
||||||
fields[i].get_precalced_size(), false);
|
MESSAGE_HANDLERS[handler_id].size(total_size, field_addr, fields[i].get_precalced_size(), false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -834,8 +836,8 @@ void ProtoMessage::calculate_size(uint32_t &total_size) const {
|
|||||||
const RepeatedFieldMetaV3 *repeated_fields = get_repeated_field_metadata_v3();
|
const RepeatedFieldMetaV3 *repeated_fields = get_repeated_field_metadata_v3();
|
||||||
size_t repeated_count = get_repeated_field_count_v3();
|
size_t repeated_count = get_repeated_field_count_v3();
|
||||||
|
|
||||||
for (size_t i = 0; i < repeated_count; i++) {
|
if (repeated_fields != nullptr) {
|
||||||
if (repeated_fields != nullptr) {
|
for (size_t i = 0; i < repeated_count; i++) {
|
||||||
const void *field_addr = base + repeated_fields[i].get_offset();
|
const void *field_addr = base + repeated_fields[i].get_offset();
|
||||||
|
|
||||||
switch (repeated_fields[i].get_type()) {
|
switch (repeated_fields[i].get_type()) {
|
||||||
|
@ -298,11 +298,13 @@ struct FieldMetaV3 {
|
|||||||
uint8_t get_precalced_size() const { return ((type_and_size >> 5) & 0x03) + 1; }
|
uint8_t get_precalced_size() const { return ((type_and_size >> 5) & 0x03) + 1; }
|
||||||
uint16_t get_offset() const {
|
uint16_t get_offset() const {
|
||||||
if (get_type() == ProtoFieldType::TYPE_MESSAGE) {
|
if (get_type() == ProtoFieldType::TYPE_MESSAGE) {
|
||||||
return offset_low; // Limited to 255 for messages
|
// Reconstruct full offset from packed fields
|
||||||
|
// Bits 0-7 from offset_low, bits 8-11 from upper nibble of message_type_id
|
||||||
|
return static_cast<uint16_t>(offset_low) | (static_cast<uint16_t>(message_type_id & 0xF0) << 4);
|
||||||
}
|
}
|
||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
uint8_t get_message_type_id() const { return message_type_id; }
|
uint8_t get_message_type_id() const { return message_type_id & 0x0F; }
|
||||||
};
|
};
|
||||||
|
|
||||||
// V2 structures removed - we only use V3 now
|
// V2 structures removed - we only use V3 now
|
||||||
@ -484,11 +486,13 @@ struct RepeatedFieldMetaV3 {
|
|||||||
uint8_t get_precalced_size() const { return ((type_and_size >> 5) & 0x03) + 1; }
|
uint8_t get_precalced_size() const { return ((type_and_size >> 5) & 0x03) + 1; }
|
||||||
uint16_t get_offset() const {
|
uint16_t get_offset() const {
|
||||||
if (get_type() == ProtoFieldType::TYPE_MESSAGE) {
|
if (get_type() == ProtoFieldType::TYPE_MESSAGE) {
|
||||||
return offset_low; // Limited to 255 for messages
|
// Reconstruct full offset from packed fields
|
||||||
|
// Bits 0-7 from offset_low, bits 8-11 from upper nibble of message_type_id
|
||||||
|
return static_cast<uint16_t>(offset_low) | (static_cast<uint16_t>(message_type_id & 0xF0) << 4);
|
||||||
}
|
}
|
||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
uint8_t get_message_type_id() const { return message_type_id; }
|
uint8_t get_message_type_id() const { return message_type_id & 0x0F; }
|
||||||
};
|
};
|
||||||
|
|
||||||
// V2 structures removed - we only use V3 now
|
// V2 structures removed - we only use V3 now
|
||||||
|
@ -1344,11 +1344,11 @@ def build_message_type(
|
|||||||
type_and_size = (type_num & 0x1F) | ((field_tag_size - 1) << 5)
|
type_and_size = (type_num & 0x1F) | ((field_tag_size - 1) << 5)
|
||||||
|
|
||||||
if field.type == descriptor.FieldDescriptorProto.TYPE_MESSAGE:
|
if field.type == descriptor.FieldDescriptorProto.TYPE_MESSAGE:
|
||||||
# For messages, use offset_low and message_type_id
|
# For messages, use offset_low and message_type_id with offset extension
|
||||||
message_type_id = get_repeated_message_type_id(ti._ti.type_name)
|
message_type_id = get_repeated_message_type_id(ti._ti.type_name)
|
||||||
offset = f"PROTO_FIELD_OFFSET({desc.name}, {ti.field_name})"
|
offset = f"PROTO_FIELD_OFFSET({desc.name}, {ti.field_name})"
|
||||||
repeated_fields_v3.append(
|
repeated_fields_v3.append(
|
||||||
f"{{{field.number}, {type_and_size}, {{.offset_low = static_cast<uint8_t>({offset}), .message_type_id = {message_type_id}}}}}"
|
f"{{{field.number}, {type_and_size}, {{.offset_low = static_cast<uint8_t>({offset} & 0xFF), .message_type_id = static_cast<uint8_t>({message_type_id} | ((({offset} >> 8) & 0x0F) << 4))}}}}"
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
# Non-message types use full offset
|
# Non-message types use full offset
|
||||||
@ -1369,9 +1369,13 @@ def build_message_type(
|
|||||||
# For messages, use offset_low and message_type_id
|
# For messages, use offset_low and message_type_id
|
||||||
message_type_id = get_message_type_id(ti.type_name)
|
message_type_id = get_message_type_id(ti.type_name)
|
||||||
offset = f"PROTO_FIELD_OFFSET({desc.name}, {ti.field_name})"
|
offset = f"PROTO_FIELD_OFFSET({desc.name}, {ti.field_name})"
|
||||||
# Check if offset fits in 8 bits
|
|
||||||
|
# Since we have so few message types, we can use the upper bits of
|
||||||
|
# message_type_id to extend the offset range
|
||||||
|
# Bits 0-3: actual message type ID (supports 16 types)
|
||||||
|
# Bits 4-7: bits 8-11 of offset (extends offset to 12 bits = 4096)
|
||||||
regular_fields_v3.append(
|
regular_fields_v3.append(
|
||||||
f"{{{field.number}, {type_and_size}, {{.offset_low = static_cast<uint8_t>({offset}), .message_type_id = {message_type_id}}}}}"
|
f"{{{field.number}, {type_and_size}, {{.offset_low = static_cast<uint8_t>({offset} & 0xFF), .message_type_id = static_cast<uint8_t>({message_type_id} | ((({offset} >> 8) & 0x0F) << 4))}}}}"
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
# Non-message types use full offset
|
# Non-message types use full offset
|
||||||
@ -1391,8 +1395,9 @@ def build_message_type(
|
|||||||
type_and_size = (10 & 0x1F) | ((field_tag_size - 1) << 5)
|
type_and_size = (10 & 0x1F) | ((field_tag_size - 1) << 5)
|
||||||
message_type_id = get_message_type_id(ti.type_name)
|
message_type_id = get_message_type_id(ti.type_name)
|
||||||
offset = f"PROTO_FIELD_OFFSET({desc.name}, {ti.field_name})"
|
offset = f"PROTO_FIELD_OFFSET({desc.name}, {ti.field_name})"
|
||||||
|
# Same encoding as above for large offsets
|
||||||
regular_fields_v3.append(
|
regular_fields_v3.append(
|
||||||
f"{{{field.number}, {type_and_size}, {{.offset_low = static_cast<uint8_t>({offset}), .message_type_id = {message_type_id}}}}}"
|
f"{{{field.number}, {type_and_size}, {{.offset_low = static_cast<uint8_t>({offset} & 0xFF), .message_type_id = static_cast<uint8_t>({message_type_id} | ((({offset} >> 8) & 0x0F) << 4))}}}}"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Store metadata info for later generation outside the class
|
# Store metadata info for later generation outside the class
|
||||||
|
Loading…
x
Reference in New Issue
Block a user