Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

36 рядки
938 B

  1. #include "Config.h"
  2. #include "Debug.h"
  3. #include "Network.h"
  4. #include "Hardware.h"
  5. #include "MainUnit.h"
  6. #define LOGGER_NAME "Network"
  7. namespace network {
  8. SIM808RegistrationStatus waitForRegistered(uint32_t timeout) {
  9. SIM808RegistrationStatus currentStatus;
  10. do {
  11. currentStatus = hardware::sim808::device.getNetworkRegistrationStatus();
  12. if (isAvailable(currentStatus.stat)) break;
  13. VERBOSE_FORMAT("waitForRegistered", "%d", currentStatus.stat);
  14. mainunit::deepSleep(NETWORK_DEFAULT_INTERMEDIATE_TIMEOUT_MS / 1000);
  15. timeout -= NETWORK_DEFAULT_INTERMEDIATE_TIMEOUT_MS;
  16. } while (timeout > 1);
  17. return currentStatus;
  18. }
  19. bool isAvailable(SIM808_NETWORK_REGISTRATION_STATE state) {
  20. return state == SIM808_NETWORK_REGISTRATION_STATE::REGISTERED ||
  21. state == SIM808_NETWORK_REGISTRATION_STATE::ROAMING;
  22. }
  23. bool enableGprs() {
  24. return hardware::sim808::device.enableGprs(config::main::get().network.apn);
  25. }
  26. }