-
Notifications
You must be signed in to change notification settings - Fork 513
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Electron] Modem serial pausing before going into sleep with SLEEP_NETWORK_STANDBY #1160
Conversation
…t RTS line before sleeping to ask modem to pause transmission
…ature/electron/modem-sleep-rts
#if PLATFORM_ID==PLATFORM_ELECTRON_PRODUCTION | ||
if (!network_sleep_flag(param)) { | ||
// Pause the modem Serial | ||
electronMDM.pause(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be called via a wrapper function in cellular_hal
#if PLATFORM_ID==PLATFORM_ELECTRON_PRODUCTION | ||
if (!network_sleep_flag(param)) { | ||
// Pause the modem Serial | ||
electronMDM.resume(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should also be called via a wrapper function in cellular_hal
Since this does change the current behavior, we should add some Docs that explain what happens with received data now when the modem remains powered up while the system sleeps. The system has the ability to receive a message that was buffered by the modem during STM32 sleep. If too much data is received (how much?), what happens? (excessive data is lost or does it overwrite in circular fashion?). |
…r_hal moving to system-part3
Updated |
With introduction of proper flow control handling via RTS line in PR #1140, modem should be unconditionally paused (by deasserting RTS line) before going into sleep with
SLEEP_NETWORK_STANDBY
. This should allow Electron not to lose any URCs from the modem while it is sleeping.This PR includes a cucumber-based acceptance test which demonstrates how a sleepy Electron can receive a publish posted while it was sleeping:
$ cd user/tests/accept
$ bundler install
$ PLATFORM=electron ./run electron_modem_pause
Includes PR #1097
Doneness:
Enhancements