mirror of
https://github.com/meshtastic/firmware.git
synced 2025-02-02 18:59:56 +00:00
notify phoneAPI about new packages to process
This commit is contained in:
parent
fce52e16e3
commit
3a6e3464e6
@ -33,6 +33,7 @@ void PhoneAPI::handleStartConfig()
|
||||
if (!isConnected()) {
|
||||
onConnectionChanged(true);
|
||||
observe(&service.fromNumChanged);
|
||||
observe(&xModem.packetReady);
|
||||
}
|
||||
|
||||
// even if we were already connected - restart our state machine
|
||||
@ -50,6 +51,7 @@ void PhoneAPI::close()
|
||||
state = STATE_SEND_NOTHING;
|
||||
|
||||
unobserve(&service.fromNumChanged);
|
||||
unobserve(&xModem.packetReady);
|
||||
releasePhonePacket(); // Don't leak phone packets on shutdown
|
||||
releaseQueueStatusPhonePacket();
|
||||
|
||||
|
@ -66,6 +66,7 @@ int XModemAdapter::check(const pb_byte_t *buf, int sz, unsigned short tcrc)
|
||||
void XModemAdapter::sendControl(XModem_Control c) {
|
||||
memset(xmodemStore, 0, XModem_size);
|
||||
xmodemStore->control = c;
|
||||
packetReady.notifyObservers(packetno);
|
||||
}
|
||||
|
||||
XModem *XModemAdapter::getForPhone()
|
||||
@ -106,6 +107,7 @@ void XModemAdapter::handlePacket(XModem xmodemPacket)
|
||||
xmodemStore->seq = packetno;
|
||||
xmodemStore->buffer.size = file.read(xmodemStore->buffer.bytes, sizeof(XModem_buffer_t::bytes));
|
||||
xmodemStore->crc16 = crc16_ccitt(xmodemStore->buffer.bytes, xmodemStore->buffer.size);
|
||||
packetReady.notifyObservers(packetno);
|
||||
break;
|
||||
}
|
||||
sendControl(XModem_Control_NAK);
|
||||
@ -167,6 +169,7 @@ void XModemAdapter::handlePacket(XModem xmodemPacket)
|
||||
isEOT = true;
|
||||
// send EOT on next Ack
|
||||
}
|
||||
packetReady.notifyObservers(packetno);
|
||||
} else {
|
||||
// just received something weird.
|
||||
sendControl(XModem_Control_CAN);
|
||||
@ -191,6 +194,7 @@ void XModemAdapter::handlePacket(XModem xmodemPacket)
|
||||
isEOT = true;
|
||||
// send EOT on next Ack
|
||||
}
|
||||
packetReady.notifyObservers(packetno);
|
||||
} else {
|
||||
// just received something weird.
|
||||
sendControl(XModem_Control_CAN);
|
||||
|
@ -41,6 +41,9 @@
|
||||
class XModemAdapter
|
||||
{
|
||||
public:
|
||||
// Called when we put a fragment in the outgoing memory
|
||||
Observable<uint32_t> packetReady;
|
||||
|
||||
XModemAdapter();
|
||||
|
||||
void handlePacket(XModem xmodemPacket);
|
||||
|
Loading…
Reference in New Issue
Block a user