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

›neqto.js

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の利用
  • NEQTO Engineファームウェアリスト
  • お問い合わせに関するガイドライン
  • NEQTO 製品を安全に安心してご使用いただくために
  • 脆弱性開示ポリシー

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. SubTask
    • 14. Queue
    • 15. Utils
    • 16. nqLinux
    • 17. nqService
    • 18. nqMqtt
    • 19. nqFOTA
    • 20. 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
    • [Archive] 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
  • Splunk
  • Niagara
  • [Archive] SAP Cloud Platform Internet of Things

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版 リリース
  • neqto.js Libraries リリース

14. Queue

queueオブジェクトは、データキュー機能を提供する組み込みオブジェクトです。

機能概要:

  • FIFOキュー機能を提供します。
  • キューに格納する要素として任意文字列および任意数値をサポートします。

制限事項:

  • 同時使用可能なキューインスタンス数は8です。
  • 本機能はNEQTO Engine for Linux専用の拡張オプションです。
    キューサイズ設定、インスタンス数に応じて、システムメモリ(RAM)を消費します。



queue Global Object

Methods()/PropertiesSummaryVersionNote
queue.create()キューインスタンスを生成します。00.02.00+



queue.create(size)

キューインスタンスを生成します。

NameTypeM/OSummary                                       Note
sizenumbermandatoryキューサイズ[KB]を指定します。
設定範囲: 1~512
範囲外の場合は、最も近い有効値に丸められます。
return{FIFO}-{FIFO} : 生成された{FIFO}異常が発生した時は、例外となります。

キューに格納可能な要素数について

キューに割り当てられたバッファには、要素データが隙間なく格納されます。そのため、要素サイズが可変長の場合、キューに格納可能な要素数は増減します。したがって、想定される要素の最大サイズと最低限格納が必要な要素数からキューサイズを決定します。

1要素が消費する最大データサイズは「最大任意文字列サイズ + 12バイト」となります。
必要となるキューサイズは「1要素で消費する最大データサイズ × 最低限格納が必要な要素数」となります。



{FIFO}

Methods()/PropertiesSummaryVersionNote
.push()FIFOキューに要素を追加します。
.pop()FIFOキューから要素を取り出します。
.getCount()FIFOキューに格納されている要素数を取得します。
.reset()FIFOキューを初期化します。
.release()FIFOキューを解放します。



Details

.push(str[,num])

FIFOキューに要素を追加します。

NameTypeM/OSummary                                   Note
strstring, undefinedmandatory任意文字列
undefinedを指定した場合、空文字の扱いとなります。
numnumberoptional任意数値
デフォルト値は0となります。
returnboolean-true : 成功
false : 失敗
異常が発生した時は、例外となります。

.pop()

FIFOキューから要素を取り出します。

NameTypeM/OSummaryNote
return{Element}, null-{Element}: 最も古い要素が返却されます。
null: 要素なし

{Element}

NameTypeSummaryNote
.strstring任意文字列
.numnumber任意数値

.getCount()

FIFOキューに格納されている要素数を取得します。

NameTypeM/OSummaryNote
returnnumber-要素格納数

.reset()

FIFOキューを初期化します。

NameTypeM/OSummaryNote
returnundefined--

.release()

FIFOキューを解放します。

NameTypeM/OSummaryNote
returnundefined--



オブジェクトの使用例

Sample 1

基本的なFIFOキューのサンプルです。

var fifo = queue.create(4); //4KB

for(var i=0; i<10; i++) {
    var str = 'TestData' + i;
    var ret = fifo.push(str);
    if(ret == false) { //overflow
        print(`IN${i}: Full`);
    } else {
        print(`IN${i}: cnt=${fifo.getCount()}`);
    }
}

var cnt = 0;

while(1) {
    var obj = fifo.pop();
    if(obj) {
        print(`OUT${cnt++}: str=${obj['str']}, cnt=${fifo.getCount()}`);
    } else {
        print('Empty');
        break;
    }
}

fifo.release();

Sample 2

FIFOキューを活用して、数値演算処理するサンプルです。

var fifo = queue.create(12); //12KB

for(var i=0; i<1000; i++) {
    var ret = fifo.push(undefined, i);
    if(!ret){ //overflow
        print(`IN${i}: Full`);
    } else {
        print(`IN${i}: cnt=${fifo.getCount()}`);
    }
}

var cnt = 0;
var total = 0;

while(1) {
    var obj = fifo.pop();
    if(obj) {
        print(`OUT${cnt++}: num=${obj['num']}, cnt=${fifo.getCount()}`);
        total += obj['num'];
    } else {
        print('Empty');
        break;
    }
}

print(`Sum of 0 to 999: ${total}`);

fifo.release();

Sample 3

FIFOキューを活用して、シーケンス分岐処理を構成するサンプルです。

var fifo = queue.create(1); //1KB

var seqName = [ //seq
    "init",     //0
    "push",     //1
    "check",    //2
    "exit"      //3
];
var seqTbl = [
    //seq, arg
    [ 0, "" ],
    [ 1, "abcdefg" ],
    [ 2, "" ],
    [ 3, "" ]
];

for(var i=0; i<seqTbl.length; i++) {
    var ret = fifo.push(seqTbl[i][1], seqTbl[i][0]);
    if(!ret) { //overflow
        print(`IN${i}: Full`);
    } else {
        print(`IN${i}: cnt=${fifo.getCount()}`);
    }
}

var act = true;
var tmp = '';

while(act) {
    obj = fifo.pop();
    if(obj) {
        var seq = obj['num'];
        var arg = obj['str'];
        print('seq:', seqName[seq], arg);
        switch(seq) {
            case 0: //init
                tmp = '';
                break;
            case 1: //push
                tmp = tmp + arg;
                break;
            case 2: //check
                print(tmp, tmp.length);
                break;
            case 3: //exit
                act = false;
                break;
            default:
                print('Unknown');
                break;
        }
    }
}

fifo.release();



Updated: 2025-01-29
← 前次 →
  • queue Global Object
    • queue.create(size)
  • {FIFO}
  • Details
    • .push(str[,num])
    • .pop()
    • {Element}
    • .getCount()
    • .reset()
    • .release()
  • オブジェクトの使用例
    • Sample 1
    • Sample 2
    • Sample 3
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.
© 2025 JIG-SAW INC.