Skip to content

Commit 0d27485

Browse files
authored
Merge pull request #10 from yoziru/use-fixed-size-buffers-for-messages
use fixed-size buffers for whitelist and action messages
2 parents 3f232d8 + 524f1d1 commit 0d27485

File tree

3 files changed

+19
-21
lines changed

3 files changed

+19
-21
lines changed

examples/simple/main.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ int main()
5656
LOG_DEBUG("Private key length: %d\n", private_key_length);
5757
LOG_DEBUG("Private key: %s", bytes_to_hex_string(private_key_buffer, private_key_length).c_str());
5858

59-
unsigned char whitelist_message_buffer[client.MAX_BLE_MESSAGE_SIZE];
59+
unsigned char whitelist_message_buffer[VCSEC_ToVCSECMessage_size];
6060
size_t whitelist_message_length;
6161
// support for wake command added to CHARGING_MANAGER_ROLE in 2024.20.x (not sure?)
6262
// https://github.com/teslamotors/vehicle-command/issues/232#issuecomment-2181503570
@@ -121,7 +121,7 @@ int main()
121121

122122
// build wake command
123123
LOG_INFO("Building wake command");
124-
unsigned char action_message_buffer[client.MAX_BLE_MESSAGE_SIZE];
124+
unsigned char action_message_buffer[UniversalMessage_RoutableMessage_size];
125125
size_t action_message_buffer_length = 0;
126126
return_code = client.buildVCSECActionMessage(VCSEC_RKEAction_E_RKE_ACTION_WAKE_VEHICLE, action_message_buffer, &action_message_buffer_length);
127127
if (return_code != 0)
@@ -134,7 +134,7 @@ int main()
134134

135135
// build information request status
136136
LOG_INFO("Building information request status");
137-
pb_byte_t info_request_status_buffer[client.MAX_BLE_MESSAGE_SIZE];
137+
pb_byte_t info_request_status_buffer[UniversalMessage_RoutableMessage_size];
138138
size_t info_request_status_length = 0;
139139
return_code = client.buildVCSECInformationRequestMessage(VCSEC_InformationRequestType_INFORMATION_REQUEST_TYPE_GET_STATUS, info_request_status_buffer, &info_request_status_length);
140140
if (return_code != 0)
@@ -197,7 +197,7 @@ int main()
197197
client.setConnectionID(connection_id);
198198

199199
LOG_INFO("Building charging amps message");
200-
pb_byte_t charging_amps_message_buffer[client.MAX_BLE_MESSAGE_SIZE];
200+
pb_byte_t charging_amps_message_buffer[UniversalMessage_RoutableMessage_size];
201201
size_t charging_amps_message_length;
202202
return_code = client.buildChargingAmpsMessage(12, charging_amps_message_buffer, &charging_amps_message_length);
203203
if (return_code != 0)
@@ -209,7 +209,7 @@ int main()
209209
LOG_INFO("ChargingAmpsMessage hex: %s", bytes_to_hex_string(charging_amps_message_buffer, charging_amps_message_length).c_str());
210210

211211
LOG_INFO("Set charging limit message");
212-
pb_byte_t charging_limit_message_buffer[client.MAX_BLE_MESSAGE_SIZE];
212+
pb_byte_t charging_limit_message_buffer[UniversalMessage_RoutableMessage_size];
213213
size_t charging_limit_message_length;
214214
return_code = client.buildChargingSetLimitMessage(95, charging_limit_message_buffer, &charging_limit_message_length);
215215
if (return_code != 0)
@@ -221,7 +221,7 @@ int main()
221221
LOG_INFO("ChargingSetLimitMessage hex: %s", bytes_to_hex_string(charging_limit_message_buffer, charging_limit_message_length).c_str());
222222

223223
LOG_INFO("Turn on HVAC limit message");
224-
pb_byte_t hvac_on_message_buffer[client.MAX_BLE_MESSAGE_SIZE];
224+
pb_byte_t hvac_on_message_buffer[UniversalMessage_RoutableMessage_size];
225225
size_t hvac_on_message_length;
226226
return_code = client.buildHVACMessage(true, hvac_on_message_buffer, &hvac_on_message_length);
227227
if (return_code != 0)

include/client.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@ namespace TeslaBLE
5151
mbedtls_ctr_drbg_free(drbg_context_.get());
5252
}
5353

54-
static const int MAX_BLE_MESSAGE_SIZE = 1024;
55-
5654
int createPrivateKey();
5755

5856
void setVIN(const char *vin);

src/client.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ namespace TeslaBLE
256256
payload.sub_message.WhitelistOperation = whitelist;
257257

258258
// printf("Encoding whitelist message\n");
259-
pb_byte_t payload_buffer[80];
259+
pb_byte_t payload_buffer[VCSEC_UnsignedMessage_size];
260260
size_t payload_length;
261261
int return_code = pb_encode_fields(payload_buffer, &payload_length, VCSEC_UnsignedMessage_fields, &payload);
262262
if (return_code != 0)
@@ -278,7 +278,7 @@ namespace TeslaBLE
278278
vcsec_message.signedMessage = signed_message;
279279

280280
// printf("Encoding VCSEC to VCSEC message\n");
281-
pb_byte_t vcsec_encode_buffer[86];
281+
pb_byte_t vcsec_encode_buffer[VCSEC_ToVCSECMessage_size];
282282
size_t vcsec_encode_buffer_size;
283283
return_code = pb_encode_fields(vcsec_encode_buffer, &vcsec_encode_buffer_size, VCSEC_ToVCSECMessage_fields, &vcsec_message);
284284
if (return_code != 0)
@@ -569,7 +569,7 @@ namespace TeslaBLE
569569
memcpy(universal_message.uuid.bytes, uuid, sizeof(uuid));
570570
universal_message.uuid.size = sizeof(uuid);
571571

572-
size_t universal_encode_buffer_size = this->MAX_BLE_MESSAGE_SIZE - 2;
572+
size_t universal_encode_buffer_size = UniversalMessage_RoutableMessage_size;
573573
pb_byte_t universal_encode_buffer[universal_encode_buffer_size];
574574
int return_code = pb_encode_fields(universal_encode_buffer, &universal_encode_buffer_size, UniversalMessage_RoutableMessage_fields, &universal_message);
575575
if (return_code != 0)
@@ -596,7 +596,7 @@ namespace TeslaBLE
596596
size_t *output_length,
597597
bool encryptPayload)
598598
{
599-
pb_byte_t payload_buffer[100];
599+
pb_byte_t payload_buffer[VCSEC_UnsignedMessage_size];
600600
size_t payload_length;
601601
// printf("message: %p\n", message);
602602
// printf("message.which_sub_message: %d\n", message->which_sub_message);
@@ -623,7 +623,7 @@ namespace TeslaBLE
623623
payload.which_sub_message = VCSEC_UnsignedMessage_InformationRequest_tag;
624624
payload.sub_message.InformationRequest = informationRequest;
625625

626-
size_t universal_encode_buffer_size = this->MAX_BLE_MESSAGE_SIZE - 2;
626+
size_t universal_encode_buffer_size = UniversalMessage_RoutableMessage_size;
627627
pb_byte_t universal_encode_buffer[universal_encode_buffer_size];
628628
int status = this->buildUnsignedMessagePayload(&payload, universal_encode_buffer, &universal_encode_buffer_size, false);
629629
if (status != 0)
@@ -640,7 +640,7 @@ namespace TeslaBLE
640640
pb_byte_t *output_buffer,
641641
size_t *output_length)
642642
{
643-
pb_byte_t payload_buffer[100];
643+
pb_byte_t payload_buffer[UniversalMessage_RoutableMessage_size];
644644
size_t payload_length = 0;
645645
int return_code = pb_encode_fields(payload_buffer, &payload_length, CarServer_Action_fields, action);
646646
if (return_code != 0)
@@ -673,7 +673,7 @@ namespace TeslaBLE
673673
action.which_action_msg = CarServer_Action_vehicleAction_tag;
674674
action.action_msg.vehicleAction = *vehicle_action;
675675

676-
size_t universal_encode_buffer_size = this->MAX_BLE_MESSAGE_SIZE - 2;
676+
size_t universal_encode_buffer_size = UniversalMessage_RoutableMessage_size;
677677
pb_byte_t universal_encode_buffer[universal_encode_buffer_size];
678678
int status = this->buildCarServerActionPayload(&action, universal_encode_buffer, &universal_encode_buffer_size);
679679
if (status != 0)
@@ -700,7 +700,7 @@ namespace TeslaBLE
700700
vehicle_action.vehicle_action_msg.setChargingAmpsAction = set_charging_amps_action;
701701
action.action_msg.vehicleAction = vehicle_action;
702702

703-
size_t universal_encode_buffer_size = this->MAX_BLE_MESSAGE_SIZE - 2;
703+
size_t universal_encode_buffer_size = UniversalMessage_RoutableMessage_size;
704704
pb_byte_t universal_encode_buffer[universal_encode_buffer_size];
705705
int status = this->buildCarServerActionPayload(&action, universal_encode_buffer, &universal_encode_buffer_size);
706706
if (status != 0)
@@ -727,7 +727,7 @@ namespace TeslaBLE
727727
vehicle_action.vehicle_action_msg.chargingSetLimitAction = charging_set_limit_action;
728728
action.action_msg.vehicleAction = vehicle_action;
729729

730-
size_t universal_encode_buffer_size = this->MAX_BLE_MESSAGE_SIZE - 2;
730+
size_t universal_encode_buffer_size = UniversalMessage_RoutableMessage_size;
731731
pb_byte_t universal_encode_buffer[universal_encode_buffer_size];
732732
int status = this->buildCarServerActionPayload(&action, universal_encode_buffer, &universal_encode_buffer_size);
733733
if (status != 0)
@@ -762,7 +762,7 @@ namespace TeslaBLE
762762
vehicle_action.vehicle_action_msg.chargingStartStopAction = vehicle_action_msg;
763763
action.action_msg.vehicleAction = vehicle_action;
764764

765-
size_t universal_encode_buffer_size = this->MAX_BLE_MESSAGE_SIZE - 2;
765+
size_t universal_encode_buffer_size = UniversalMessage_RoutableMessage_size;
766766
pb_byte_t universal_encode_buffer[universal_encode_buffer_size];
767767
int status = this->buildCarServerActionPayload(&action, universal_encode_buffer, &universal_encode_buffer_size);
768768
if (status != 0)
@@ -789,7 +789,7 @@ namespace TeslaBLE
789789
vehicle_action.vehicle_action_msg.hvacAutoAction = vehicle_action_msg;
790790
action.action_msg.vehicleAction = vehicle_action;
791791

792-
size_t universal_encode_buffer_size = this->MAX_BLE_MESSAGE_SIZE - 2;
792+
size_t universal_encode_buffer_size = UniversalMessage_RoutableMessage_size;
793793
pb_byte_t universal_encode_buffer[universal_encode_buffer_size];
794794
int status = this->buildCarServerActionPayload(&action, universal_encode_buffer, &universal_encode_buffer_size);
795795
if (status != 0)
@@ -809,7 +809,7 @@ namespace TeslaBLE
809809
unsigned_message.which_sub_message = VCSEC_UnsignedMessage_RKEAction_tag;
810810
unsigned_message.sub_message.RKEAction = action;
811811

812-
size_t universal_encode_buffer_size = this->MAX_BLE_MESSAGE_SIZE - 2;
812+
size_t universal_encode_buffer_size = UniversalMessage_RoutableMessage_size;
813813
pb_byte_t universal_encode_buffer[universal_encode_buffer_size];
814814
int status = this->buildUnsignedMessagePayload(&unsigned_message, universal_encode_buffer, &universal_encode_buffer_size, true);
815815
if (status != 0)
@@ -841,7 +841,7 @@ namespace TeslaBLE
841841
unsigned_message.which_sub_message = VCSEC_UnsignedMessage_InformationRequest_tag;
842842
unsigned_message.sub_message.InformationRequest = information_request;
843843

844-
size_t universal_encode_buffer_size = this->MAX_BLE_MESSAGE_SIZE - 2;
844+
size_t universal_encode_buffer_size = UniversalMessage_RoutableMessage_size;
845845
pb_byte_t universal_encode_buffer[universal_encode_buffer_size];
846846
int status = this->buildUnsignedMessagePayload(&unsigned_message, universal_encode_buffer, &universal_encode_buffer_size, false);
847847
if (status != 0)

0 commit comments

Comments
 (0)