Can bus help

Hi Gents
please help to solve
i'm trying to send some frames from sd card. Serial printing of data is correct before send , but on can bus port readed data field is empty (clear) id and rest is fine
any ideas ??
its some memory collision while reading sd at --buffer = printFile.readStringUntil('\n');

void setup()
//*********************** SD **********************


void sendData()
if (!sd.begin(chipSelect, SPI_SIXTEENTH_SPEED)) {
if (!"Run.txt", O_READ))
{ sd.errorHalt("opening test.txt for read failed");
mydisp.println("card failure ");
while (printFile.available()) {
buffer = printFile.readStringUntil('\n');

CAN_FRAME outgoing; = strtol(buffer.substring(0,8).c_str(), NULL, 16);
outgoing.extended = true;
outgoing.priority = 4; //0-15 lower is higher priority[7] = strtol(buffer.substring(9,11).c_str(), NULL, 16);[6] = strtol(buffer.substring(12,14).c_str(), NULL, 16);[5] = strtol(buffer.substring(15,17).c_str(), NULL, 16);[4] = strtol(buffer.substring(18,20).c_str(), NULL, 16);[3] = strtol(buffer.substring(21,23).c_str(), NULL, 16);[2] = strtol(buffer.substring(24,26).c_str(), NULL, 16);[1] = strtol(buffer.substring(27,29).c_str(), NULL, 16);[0] = strtol(buffer.substring(30,32).c_str(), NULL, 16);

Serial.print(,HEX);Serial.print(" "); Serial.print(,HEX);Serial.println(,HEX);
delay (1000);


//goto openfile;

void loop()
delay (1000);

Make sure to set rtr to 0 when you are sending frames. If RTR were to get set you'd be sending a remote data request and wouldn't have data bytes. Perhaps I should have added a constructor that sets the various parameters to sane values. As it sits CAN_FRAME is a struct with no constructor so no attempt is made to set anything to a realistic value. Thus, always set id, length, priority, data bytes, rtr, and extended or they might default to something dumb.