F&F (OT=141)micros() _time==70
] [INFO] FAILED RESENDING 1 TIMES. RETRYING...] [INFO] FAILED RESENDING 2 TIMES. RETRYING...] [INFO] FAILED RESENDING 3 TIMES. RETRYING...DEBUG: [SLAVE CS 15] [INFO] FAILED RESENDING 4 TIMES. TRANSFER ABORTED.F&F (OT=141)micros() _time==19348
F&F (OT=142)micros() _time==3651
F&F (OT=143)micros() _time==5683
F&F (OT=144)micros() _time==427
F&F (OT=144)micros() _time==678
if ( _slave_access ) {
[COLOR="#FF0000"][B]ATOMIC_BLOCK( ATOMIC_RESTORESTATE ) {[/B][/COLOR]
uint16_t data[6 + length], checksum = 0, data_pos = 0;
data[data_pos] = 0xAA55; checksum ^= data[data_pos]; data_pos++; // HEADER
data[data_pos] = sizeof(data) / 2; checksum ^= data[data_pos]; data_pos++; // DATA SIZE
data[data_pos] = 0x0000; checksum ^= data[data_pos]; data_pos++; // SUB SWITCH STATEMENT
data[data_pos] = length; checksum ^= data[data_pos]; data_pos++;
data[data_pos] = packetID; checksum ^= data[data_pos]; data_pos++;
for ( uint16_t i = 0; i < length; i++ ) { data[data_pos] = buffer[i]; checksum ^= data[data_pos]; data_pos++; }
data[data_pos] = checksum;
std::vector<uint16_t> _vector(data, data + data[1]);
teensy_stm_queue.push_back(_vector);
if ( teensy_stm_queue.size() > 14 ) teensy_stm_queue.pop_front();
return packetID;
[COLOR="#FF0000"][B]}[/B][/COLOR]
}
if ( _slave_access ) {
uint16_t data[6 + length], checksum = 0, data_pos = 0;
data[data_pos] = 0xAA55; checksum ^= data[data_pos]; data_pos++; // HEADER
data[data_pos] = sizeof(data) / 2; checksum ^= data[data_pos]; data_pos++; // DATA SIZE
data[data_pos] = 0x0000; checksum ^= data[data_pos]; data_pos++; // SUB SWITCH STATEMENT
data[data_pos] = length; checksum ^= data[data_pos]; data_pos++;
data[data_pos] = packetID; checksum ^= data[data_pos]; data_pos++;
for ( uint16_t i = 0; i < length; i++ ) { data[data_pos] = buffer[i]; checksum ^= data[data_pos]; data_pos++; }
data[data_pos] = checksum;
std::vector<uint16_t> _vector(data, data + data[1]);
[COLOR="#FF0000"][B]ATOMIC_BLOCK( ATOMIC_RESTORESTATE ) {[/B][/COLOR]
teensy_stm_queue.push_back(_vector);
if ( teensy_stm_queue.size() > 14 ) teensy_stm_queue.pop_front();
[COLOR="#FF0000"][B]}[/B][/COLOR]
return packetID;
}
64900.00,64901.00,64902.00,64903.00,64904.00,64905.00,64906.00,64907.00,64908.00,64909.00,64910.00,64911.00,0
64912.00,64913.00,64914.00,64915.00,64916.00,64917.00,64918.00,64919.00,64920.00,64921.00,64922.00,64923.00,0
64924.00,64925.00,64926.00,64927.00,64928.00,64929.00,64930.00,64931.00,64932.00,64933.00,64934.00,64935.00,0
64936.00,64937.00,64938.00,64939.00,64940.00,64941.00,64942.00,64943.00,64944.00,64945.00,64946.00,64947.00,0
returned value micros() _time==57
returned value micros() _time==57
returned value micros() _time==58
PacketID: 28775
Length: 20
4B 73 FC 39 21 99 E5 DB 2B 5A 4A 31 13 5C 7B 6A 56 33 4C C5
returned value micros() _time==58
returned value micros() _time==57
Bad LASTVAL TEST INCREMENT <<<<<<<<<<<<<<<<<<<< DIFF OF> -12.00
38048.00,38049.00,38050.00,38051.00,38052.00,38053.00,38054.00,38055.00,38056.00,38057.00,38058.00,38059.00,254373,20
38060.00, #, #, #, #, #, #, #, #, #, #, #,254374,20
38072.00, #, #, #, #, #, #, #, #, #, #, #,254375,20
38084.00, #, #, #, #, #, #, #, #, #, #, #,254376,20
38096.00, #, #, #, #, #, #, #, #, #, #, #,254377,20
38108.00, #, #, #, #, #, #, #, #, #, #, #,254378,20
Bad Length: 8191
27176.00, #, #, #, #, #, #, #, #, #, #, #,253485,2
Bad Length: 8191
Bad LASTVAL TEST INCREMENT <<<<<<<<<<<<<<<<<<<< DIFF OF> -12.00
27200.00,27201.00,27202.00,27203.00,27204.00,27205.00,27206.00,27207.00,27208.00,27209.00,27210.00,27211.00,253486,3
27212.00, #, #, #, #, #, #, #, #, #, #, #,253487,3
the code is setup to block capture packets immmediately until done or line deasserts, so its safe.
for the pin interrupt, is the slave to master working with it?
if ( debugSerial != nullptr ) {
Serial.print("Dbg: [Slv CS "); Serial.print(chip_select);
Serial.print("] [*] RESEND FAIL #="); Serial.print(resend_count);
Serial.print(". XFER ABORT!"); delay(1000);
}
break;
}
if ( debugSerial != nullptr ) {
Serial.print("] [*] RESEND #="); Serial.print(resend_count);
Serial.print(". RETRY..."); delay(1000);
}