NEQTO Docs
  • Languages icon日本語
    • English
  • ドキュメント
  • API
  • FAQ

›ソフトウェア仕様

Getting Started

  • NEQTO Hello World!
  • Tutorial Step 1. NEQTO Console設定
  • Tutorial Step 2. デバイス設定とサービスの開始 (NEQTO Bridge)
  • Tutorial Step 2. デバイス設定とサービスの開始 (STM32 Discovery)
  • Tutorial Step 2. デバイス設定とサービスの開始 (SPRESENSE)
  • Tutorial Step 3. スクリプトを使ったアプリケーション開発

NEQTO

  • NEQTO アカウント登録
  • サブアカウント
  • APIの利用
  • GCP用NEQTO CloudSync
  • NEQTO Engineファームウェアリスト
  • お問い合わせに関するガイドライン

NEQTO Console

  • はじめに
  • 基本情報
  • 管理者専用の操作
  • デバイス管理
  • Linuxデバイス管理
  • 一括登録
  • スクリプト
  • アクション & コンタクト
  • Consoleでデータを表示
  • NEQTO Apps

    • NEQTO Apps について
    • NEQTO Infinitypool
    • NEQTO Insights
    • NEQTO Custodia
    • NEQTO Flow
  • Machine Driver
  • 推奨ブラウザ
  • 請求情報

SPRESENSE

    ハードウェア仕様

    • 01. About Spresense

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. 初期インストール
    • 03. Spresense Wi-Fi 初期設定
    • 04. Spresense LTE-M 初期設定
    • 05. デバッグログ取得方法
    • 06. システムLED動作
    • 07. イベントメッセージ
    • 08. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. GPIO
    • 12. UART
    • 13. SPI
    • 14. I2C
    • 15. ADC
    • 16. GNSS
    • 17. Camera
    • 18. Utils
    • 19. nqSpresense
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi
    • 24. nqLte

STM32 Discovery

    ハードウェア仕様

    • 01. About STM32 Discovery Kit (B-L4S5I-IOT01A)

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. 初期インストール
    • 03. STM32 Discovery Wi-Fi 初期設定
    • 04. デバッグログ取得方法
    • 05. システムLED動作
    • 06. イベントメッセージ
    • 07. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. UserSW
    • 12. GPIO
    • 13. UART
    • 14. SPI
    • 15. I2C
    • 16. ADC
    • 18. Utils
    • 19. nqDiscovery
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi

NEQTO Bridge

    ハードウェア仕様

    • 01. NEQTO Bridge Module
    • 02. NEQTO Bridge Wi-Fi Module
    • 03. NEQTO Bridge LTE-1 Module
    • 04. NEQTO Bridge LTE-M/NB Module
    • 05. NEQTO Bridge IO Board
    • 06. NEQTO Bridge Digital IO Board
    • 07. NEQTO Bridge Connector Board

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. NEQTO Bridge Wi-Fi Module 初期設定
    • 03. NEQTO Bridge LTE Module 初期設定
    • 04. デバッグログ取得方法
    • 05. システムLED動作
    • 06. イベントメッセージ
    • 07. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. UserSW
    • 12. GPIO
    • 13. UART
    • 14. SPI
    • 15. I2C
    • 16. ADC
    • 17. BLE
    • 18. Utils
    • 19. nqBridge
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi
    • 24. nqLte
    • 25. nqLAN
    • 26. nqEx

Linux-based device

    ソフトウェア仕様

    • 01. システム要件
    • 02. インストール
    • 03. ソフトウェア構成
    • 04. 動作フロー
    • 05. デバッグログ取得方法
    • 06. イベントメッセージ
    • 07. ソフトウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. RTC
    • 10. UNIXSocket
    • 11. FileSystem
    • 12. SubProcess
    • 13. Utils
    • 14. nqLinux
    • 15. nqService
    • 16. nqMqtt
    • 17. nqFOTA
    • 18. nqLAN

neqto.js Libraries

  • About neqto.js Libraries
  • UART

    • GM65 Barcode Reader
    • SRF Ultrasonic Range Finder - Serial Mode

    I2C

    • HTS221 v2 Temperature and Humidity Sensor
    • LIS2DW12 v2 Accelerometer
    • SRF Ultrasonic Range Finder - I2C Mode
    • [Archive] HTS221 Temperature and Humidity Sensor
    • [Archive] LIS2DW12 Accelerometer

    Utils

    • RTC Alarm Synchronized Scheduler

    Integration

    • AWS S3 v2
    • AWS IoT Core v2
    • Azure IoT v2
    • GCP IoT Core
    • [Archive] AWS S3
    • [Archive] AWS IoT Core

neqto.js Snippets

  • About neqto.js Snippets
  • DataDog
  • Dropbox
  • Google Sheets
  • InfluxDB
  • Oracle Cloud Object Storage
  • Salesforce
  • SAP Cloud Platform Internet of Things
  • Splunk
  • Niagara

Release Notes

  • NEQTO Console アップデート
  • NEQTO Firmware (Bridge Wi-Fi/LTE Module) リリース
  • NEQTO Firmware (STM32 Discovery Wi-Fi) リリース
  • NEQTO Firmware (Spresense Wi-Fi/LTE-M) リリース
  • NEQTO Engine Linux版 リリース

01. 動作フロー

STM32 Discoveryの動作フロー概要を説明します。
以降、"STM32 Discovery Kit"を"デバイス"と称します。

図中の太枠は、動作モード説明の開始点を示します。


デバイスには、大きく分けて以下のモードがあります。

  • スクリプト実行モード
    デバイスの基本動作で、動作スクリプトを実行するモードです。

  • セーフモード
    動作スクリプト実行中に、throwやSyntax errorなどにおいて例外が発生した場合、動作スクリプトの修正を待つモードです。

  • ファームウェア更新モード
    デバイスのファームウェア更新、及びNEQTO Machine Driverを使用してユーザーデバイスのファームウェア更新を行うモードです。

以下に各モードの動作フローを説明します。



スクリプト実行モード

通常起動動作

動作スクリプト実行モードは、デバイスの基本動作です。
デバイスは、起動後に初期化を行います。
初期化後、ネットワークに接続します。
ネットワーク接続後、NEQTO Consoleにアクセスし認証を行います。
認証が完了すると、動作スクリプトをダウンロードし実行します。



ネットワーク未接続時の起動動作

デバイス起動時にネットワーク接続できなかった場合、ネットワーク接続をリトライします。
この状態では、動作スクリプトは実行されないのでご注意ください。
ネットワーク設定や電波環境などを見直し、デバイスを再起動してください。



ノード未登録時の起動動作

NEQTO Console 上ノード未登録の状態で、デバイスを起動した場合、認証で失敗します。
この状態では、動作スクリプトは実行されないのでご注意ください。
ノード登録を確認し、デバイスを再起動してください。



スクリプトの再ロードの動作

スクリプトの再ロードは、一度動作スクリプトを終了し、更新された動作スクリプトをダウンロードして実行する動作となります。

基本的に、メインルーチンが全て完了した状態かつ、タイマやnqMQTTオブジェクト等、コールバック待ちを行うリソースが全て解放されている状態の場合、再ロードが行われます。

一方、リソースの解放を待たずに、再ロードする方法が2つあります。

  1. NEQTO Consoleからのトリガーコマンド(プッシュ通知)契機

    NEQTO Console上からトリガーコマンドを使用して、"スクリプトを再ロード"を起動します。
    デバイスはNEQTO Consoleから"スクリプトを再ロード"の指示を受信すると、強制的に動作スクリプトを終了し、スクリプトの再ロード動作を行います。
    動作スクリプトを更新する場合や、遠隔から意図的にスクリプトを再起動させたい場合等に使用します。

  2. 既定のハッシュタグを含んだthrow文契機

    下記、throw文を実行すると、動作スクリプト内から自発的に再ロードを起動させることができます。
    定期的にスクリプトの更新がないか確認を行う場合や意図的にスクリプトを再起動させたい場合等に使用します。

    throw '#nqEXIT';
    throw new Error('#nqEXIT');
     



Expressモード有効時の起動動作

通常起動動作では、スクリプトが起動するまでに、ネットワーク接続、認証及びスクリプトのダウンロードが必須となります。Expressモードはこれらの必須条件をバイパスし、スクリプトを起動することを可能とする機能です。

デバイスは起動直後、ネットワーク接続から開始しますが、無線環境等の要因でネットワーク疎通までに時間を要する場合があることが想定されます。しかしながら、スクリプトをできるだけ早く動作させる必要がある場合にExpressモードが有効です。

Expressモードを有効とした場合、ネットワーク接続待ちタイムアウト処理が有効となります。
タイムアウト前にネットワークが疎通できた場合は、通常起動動作が継続され、認証、スクリプトのダウンロード、スクリプトの起動となります。
タイムアウトが発生した場合は、認証、スクリプトのダウンロードがバイパスされ、デバイス内に保存されている前回ダウンロード済みのスクリプトが起動します。尚、ネットワーク接続待ちタイムアウト後も、ネットワーク接続処理は継続されており、ネットワーク疎通した時点から通信機能を要する機能が使用可能となります。

Expressモード設定

ExpressモードはNEQTO Console上から有効/無効を切り替えます。こちらを参照してください。

ネットワーク接続待ちタイムアウト値

タイムアウト値はnqService.setExpressConf()メソッドで設定変更が可能です。デフォルト値は30秒となります。0を指定した場合は、実質、ネットワーク接続待ちを行わないため、即座に前回ダウンロード済みのスクリプトを起動することができます。

システム時刻について

デバイスのシステム時刻は通常、ネットワーク接続後、認証シーケンス中に同期しますが、Expressモードによってバイパスされた場合、基本的に現在時刻が設定されていない状態で、スクリプトが起動することになります。時刻同期が行われるまでの間、システム時刻は初期値2000/1/1 00:00:00から開始された時刻となります。時刻同期についてはこちらを参照してください。尚、rtc.getInitTimeCorrVal()メソッドを使用して、時刻同期前に取得したタイムスタンプを時刻同期後に現在時刻へ変換することができます。



スタンバイモードの動作

動作スクリプト上から下記メソッドを使用して、デバイスをスタンバイモードに遷移させることができます。
スタンバイモードは、電源オフに近い状態でデバイスが待機状態となり、待機電力を最も削減できます。
レジューム条件が発生すると、通常起動動作から再び開始されます。(通常レジューム)

1. sleep.setStandby() <推奨>

ネットワーク通信の正常切断を待ってから通信モジュールをシャットダウンし、スタンバイモードに遷移します。

2. sleep.setStandbySync()

ネットワーク通信を強制切断し、通信モジュールをシャットダウンして、スタンバイモードに即時遷移します。 スタンバイモード遷移時間に制約ない場合は、sleep.setStandby()メソッドの使用を推奨します。(Version 02.00.00+)

ネットワーク通信を維持した状態で、スタンバイモードに即時遷移します。ネットワーク通信が維持されているため、sleep.setStandby()メソッドを使用した場合と比較して、スタンバイ時の消費電力が増加します。他に機能的な違いがないため、sleep.setStandby()メソッドを使用することを推奨します。(旧バージョン)


スタンバイモードのオフラインレジューム動作

上記、スタンバイモードメソッドには「オフラインレジューム」オプションがあります。
レジューム条件が発生すると、デバイスは再起動し、ネットワーク接続をスキップして、保持されている動作スクリプトをすぐに実行します。
オフラインレジュームでは、通信機能を要する機能を使用することができません。

尚、ユーザースイッチが押下された時のみ、強制的に通常レジュームとなります。(※1)

Version 02.00.00以降、throw '#nqEXIT'等で自発的にスクリプトを終了した場合、オフラインレジュームを維持した状態で、スクリプトが再起動します。スクリプトで例外が発生した場合は、自発的にデバイスがリセットされ、通常レジュームで再起動します。

スタンバイモードのレジューム条件

  • ウェイクアップトリガ設定を有効にしたポートでエッジ変化を検出した時
  • ユーザースイッチが押下された時 (※1)
  • RTCアラームが発生した時



ストップモードの動作

動作スクリプト上から下記メソッドを使用して、デバイスをストップモードに遷移させることができます。
ストップモードは、スクリプトの実行が一時停止された状態でデバイスがスリープ状態になります。
レジューム条件が発生すると、スクリプト実行が再開されます。又、必要に応じてネットワークの再接続が自動的に開始されます。

1. sleep.setStop()

ネットワーク通信をシャットダウンしてから、ストップモードに遷移します。
待機電力を削減することができます。
但し、レジューム時にネットワークの再接続が必要となるため、通信機能が使用できるまで時間を要します。

sleep.setStop()メソッドのネットワークシャットダウン設定を無効とした場合は、下記のsleep.setStopSync()同様に、ネットワーク通信が維持された状態で、ストップモードに遷移します。(Version 02.00.00+)

2. sleep.setStopSync() (※2)

ネットワーク通信を維持した状態で、ストップモードに即時遷移します。
ネットワーク通信が維持されているため、待機時の消費電力は増加しますが、レジューム後、すぐに通信機能を使用できます。

ストップモードのレジューム条件

  • IOポート入力割り込み設定されたポートでエッジ変化を検出した時
  • ユーザースイッチポートでエッジ変化を検出した時
  • RTCアラームが発生した時



セーフモード

セーフモード動作

動作スクリプト実行中に、throwやSyntax errorなどにおいて例外が発生した場合、動作スクリプトの修正を待ちます。この状態をセーフモードと呼びます。
動作スクリプトを確認、修正し、NEQTO Console上からトリガーコマンドを使用して、"スクリプトを再ロード"を起動します。
デバイスは、NEQTO Console から"スクリプトを再ロード"の指示を受信すると、更新された動作スクリプトをダウンロードし実行します。
また、デバイスはセーフモード中に自ら動作スクリプトの更新確認を行います。
確認を行う間隔は、
1分、2分、4分、8分、16分、30分...と延びていき、それ以降は30分間隔です。



ファームウェア更新モード

NEQTO Machine Driverを使用したユーザーデバイスのファームウェア更新動作

デバイスはNEQTO Console からMachine Driver更新指示を受信すると、Machine Driverスクリプトをダウンロードし実行します。
Machine Driverスクリプトが、ファームウェアイメージファイルのダウンロードやユーザーデバイスのファームウェア更新を行います。
Machine Driverスクリプト処理が終了すると、動作スクリプト実行に戻ります。



デバイスファームウェア更新動作

デバイスはNEQTO Console からファームウェア更新指示を受信すると、ファームウェアをダウンロードし、ファームウェア更新を行います。
ファームウェア更新が完了すると、自動的に再起動が行われ、通常動作に戻ります。
尚、既にデバイスのファームウェアが更新済みであった場合、ファームウェア更新処理はスキップされます。

注意: ファームウェア更新中は、デバイスの電源を切らないでください。



システム時刻同期について

デバイスはNEQTO Consoleから時刻情報を取得し、自動的に時刻同期します。
時刻同期が行われるタイミングは下記となります。

フェーズ時刻更新タイミング
NEQTO Console間認証時デバイス起動時等、認証シーケンスが実行された時
動作スクリプト実行中定期的に1日1回
nqServiceオブジェクトの時刻補正メソッドを実行した時任意タイミング



Updated: 2022-06-03
← 前次 →
  • スクリプト実行モード
    • 通常起動動作
    • ネットワーク未接続時の起動動作
    • ノード未登録時の起動動作
    • スクリプトの再ロードの動作
    • Expressモード有効時の起動動作
    • スタンバイモードの動作
    • ストップモードの動作
  • セーフモード
    • セーフモード動作
  • ファームウェア更新モード
    • NEQTO Machine Driverを使用したユーザーデバイスのファームウェア更新動作
    • デバイスファームウェア更新動作
  • システム時刻同期について
NEQTO とはニュースサービスFAQプライバシーポリシー}
NEQTO Console
はじめに基本情報管理者専用の操作デバイス管理NEQTO Apps
NEQTO Bridge
NEQTO Bridge ピン配置NEQTO Bridge Wi-Fi ModuleNEQTO Bridge LTE-1 Moduleデバッグログ取得方法イベントメッセージ
APIのドキュメント
APIの利用グローバル APIリージョン APIAPIサービス利用規約
Jigsaw, Inc.
© 2023 JIG-SAW INC.