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 リリース

08. Storage

storageオブジェクトは、ユーザー専用不揮発メモリ領域へのデータ読み書き機能を提供する組み込みオブジェクトです。

機能概要:

  • テキストデータの読み書き機能を提供します。
  • バイナリデータの読み書き機能を提供します。

制限事項:

  • テキストデータ保存用領域(MemBlock)で使用できるデータサイズは最大4088KBとなります。
  • バイナリデータ保存用領域(RawMemBlock)で使用できるデータサイズは4KBx16ブロックとなります。



storage Global Object

Methods()/PropertiesSummaryVersionNote
storage.open(){MemBlock}のインスタンスを生成します。
storage.rawOpen(){RawMemBlock}のインスタンスを生成します。



Details

storage.open([blockNo])

ストレージをオープンし、{MemBlock}のインスタンスを生成します。

NameTypeM/OSummaryNote
blockNonumberoptional{MemBlock}識別子
指定された番号に対応するインスタンスを生成します。
設定範囲: 0
デフォルト値は0となります。
0のみが使用可能です。
return{MemBlock}-{MemBlock} : 生成された{MemBlock}異常が発生した時は、例外となります。

storage.rawOpen([blockNo])

ストレージをオープンし、{RawMemBlock}のインスタンスを生成します。

NameTypeM/OSummaryNote
blockNonumberoptional{RawMemBlock}識別子
指定された番号に対応するインスタンスを生成します。
設定範囲: 0~15
デフォルト値は0となります。
return{RawMemBlock}-{RawMemBlock} : 生成された{RawMemBlock}異常が発生した時は、例外となります。



{MemBlock}

本オブジェクトは、storage.open()により内部で生成され、返却されます。
不揮発性メモリブロックへのテキストベースFIFOアクセス機能を提供します。
以後、.close()が実行されるまで、メモリへのアクセスが許可されます。

Methods()/PropertiesSummaryVersionNote
.getReadableSize()指定されたメモリブロック内の読み出し可能なサイズを取得します。
.getBlockSize()指定されたメモリブロックのサイズを取得します。
.write()メモリブロックへデータを書き込みます。
.writeFrame()メモリブロックへフレーム識別子で管理される専用フレーム形式でデータを書き込みます。
.read()メモリブロックからデータを読み出します。
.readFrame()メモリブロックから指定されたフレーム識別子に該当するデータを読み出します。
.searchFrame()指定されたフレーム識別子に該当するデータをメモリブロックの先頭フレームから検索します。
.recoverFrame()指定されたフレーム識別子に該当するデータがメモリブロックの先頭フレームとなるように回復を行います。
.searchAllFrame()指定されたフレーム識別子に該当するデータをメモリブロックの先頭フレームからすべて検索します。
.remove()メモリブロック内の読み取り可能なデータの先頭からデータを消去します。
.removeFrame()読み出し済の先頭フレームを消去します。
.reset()指定されたメモリブロックをリセットします。
.erase()指定されたメモリブロックを完全に消去します。
.close()指定されたメモリブロックをクローズします。



Details

.getReadableSize()

指定されたメモリブロック内の読み出し可能なサイズを取得します。

NameTypeM/OSummaryNote
returnnumber-読み出し可能サイズ[byte]

.getBlockSize()

指定されたメモリブロックのサイズを取得します。
書き込み可能な最大サイズを意味します。

NameTypeM/OSummaryNote
returnnumber-メモリブロック容量[byte]

.write(data[,size[,pad]])

メモリブロックへデータを書き込みます。

NameTypeM/OSummary                                      Note
datastringmandatory書き込みデータ
sizenumberoptional書き込みデータサイズ指定されたサイズが書き込みデータ長を超えた場合、パディングが行われます。
padstringoptionalパディング文字(1byte)を指定します。
デフォルト値はバッククォート( ` )となります。
returnnumber-書き込まれたサイズ[byte]書き込みに失敗した場合は0が返却されます。その場合、 .getReadableSize()と .getBlockSize()を使って、残りの書き込み可能なサイズを確認してください。

.writeFrame(header,data)

メモリブロックへフレーム識別子で管理される専用フレーム形式でデータを書き込みます。

.writeFrame()を使用した専用フレーム形式のデータ書き込みと.write()を使用したデータ書き込みを同じメモリブロックに混在させることはできません。 したがって、.writeFrame()を使用する場合は、.write()を使用しないでください。

NameTypeM/OSummary                                      Note
headerstringmandatoryフレーム識別子
フレームを識別する任意の名前(1~7文字)を指定します。
datastringmandatory書き込みデータ
returnnumber-書き込まれたフレームサイズ[byte]フレームサイズは、書き込まれたデータ長と24バイトのフレームオーバーヘッド長の合計となります。
書き込みに失敗した場合は0が返却されます。その場合、 .getReadableSize()と .getBlockSize()を使って、残りの書き込み可能なサイズを確認してください。

.read(size,offset)

メモリブロックからデータを読み出します。

NameTypeM/OSummary                                      Note
sizenumbermandatory読み出しデータサイズ[byte]
offsetnumbermandatory読み出し開始オフセット[byte]
returnstring, null-読み出しデータ読み出しデータは、オフセットで指定された開始位置から、指定されたデータサイズまたはデータが存在する範囲まで読み込まれます。
データが存在しない場合はnullが返却されます。

.readFrame(header,flag)

メモリブロックから指定されたフレーム識別子に該当するデータを読み出します。

NameTypeM/OSummary                                      Note
headerstringmandatoryフレーム識別子
対象データのフレーム識別子を指定します。
flagnumbermandatory読み出しフラグ
0: 先頭フレームデータの読み出しのみ
1(≠0): 先頭フレームデータの読み出しとフレームの自動消去
returnstring, null, undefined-読み出しデータデータが存在しない場合はnullが返却されます。フレーム破損又はその他の異常が検出された場合はundefinedが返却されます。

.searchFrame(header,index)

指定されたフレーム識別子に該当するデータをメモリブロックの先頭フレームから検索します。

NameTypeM/OSummary                                      Note
headerstringmandatoryフレーム識別子
対象データのフレーム識別子を指定します。
indexnumberoptionalサーチフレームのインデックス
設定範囲: 0~(N-1)
デフォルト値は0となります。
N: .searchAllFrame()によって得られる検出されたフレーム総数
returnstring, null, undefined-検出された読み出しデータデータが存在しない場合はnullが返却されます。フレーム破損又はその他の異常が検出された場合はundefinedが返却されます。

.recoverFrame(header)

指定されたフレーム識別子に該当するデータがメモリブロックの先頭フレームとなるように回復を行います。
フレーム破損を検出した際に使用してください。(.readFrame()又は.searchFrame()でundefinedが返却された時)
回復が不要な場合に行うと、有効なフレームが削除されることがあるため、回復が必要な場合のみ使用してください。

NameTypeM/OSummary                                      Note
headerstringmandatoryフレーム識別子
対象データのフレーム識別子を指定します。
returnnumber, undefined-number : 回復のために消去されたデータサイズ[byte]
undefined : 回復不能
回復不能となった際は、resetを実行してください。

.searchAllFrame(header,retType)

指定されたフレーム識別子に該当するデータをメモリブロックの先頭フレームからすべて検索します。

NameTypeM/OSummary                                      Note
headerstringmandatoryフレーム識別子
対象データのフレーム識別子を指定します。
retTypenumberoptional戻り値で返却する値を指定します。
デフォルト値は0となります。
0: 検出されたすべてのフレーム内のデータの総サイズ[byte]
1: 検出されたフレーム総数
returnnumber, undefined-指定された値フレーム破損又はその他の異常が検出された場合、undefinedが返却されます。

.remove(size)

メモリブロック内の読み取り可能なデータの先頭からデータを消去します。

NameTypeM/OSummaryNote
sizenumbermandatory削除するデータサイズ[byte]
returnundefined--

.removeFrame()

読み出し済の先頭フレームを消去します。
フレーム識別子を指定して消去することはできません。
読み込まれた最初のフレームとは、.readFrame()を使用して読み取られたフレームデータを意味します。.searchFrame()を使用して読み取られたフレームデータは対象となりません。

NameTypeM/OSummaryNote
returnundefined--

.reset()

指定されたメモリブロックをリセットします。
読み出しデータが存在しない状態に戻ります。

NameTypeM/OSummaryNote
returnundefined--

.erase()

指定されたメモリブロックを完全に消去します。
消去完了までに数十秒時間がかかります。

NameTypeM/OSummaryNote
returnundefined--

.close()

指定されたメモリブロックをクローズします。

NameTypeM/OSummaryNote
returnundefined--



{RawMemBlock}

本オブジェクトは、storage.rawOpen()により内部で生成され、返却されます。
不揮発性メモリブロックへの低レベルなアクセスインタフェースを提供します。
以後、.close()が実行されるまで、メモリへのアクセスが許可されます。

Methods()/PropertiesSummaryVersionNote
.getBlockSize()指定されたメモリブロックのサイズを取得します。
.write()メモリブロックへデータを書き込みます。
.append()メモリブロックへデータを追記します。
.writeFrame()メモリブロックへフレーム識別子で管理される専用フレーム形式でデータを書き込みます。
.appendFrame()メモリブロックへフレーム識別子で管理される専用フレーム形式でデータを追記します。
.read()メモリブロックからデータを読み出します。
.readBin()メモリブロックからデータをバイナリで読み出します。
.searchFrame()指定されたフレーム識別子に該当するデータをメモリブロックの先頭フレームから検索します。
.searchBinFrame()指定されたフレーム識別子に該当するデータをメモリブロックの先頭フレームから検索し、バイナリで読み出します。
.erase()指定されたメモリブロックを完全に消去します。
.close()指定されたメモリブロックをクローズします。



Details

.getBlockSize()

指定されたメモリブロックのサイズを取得します。

NameTypeM/OSummaryNote
returnnumber-メモリブロック容量[byte]

.write(data,offset)

メモリブロックへデータを書き込みます。
メモリブロックのデータは、書き込み前に一度完全に消去されます。

NameTypeM/OSummary                                      Note
datastring, ArrayBuffermandatory書き込みデータ
offsetnumbermandatory書き込み開始オフセット[byte]
returnnumber-書き込まれたサイズ[byte]書き込みに失敗した場合は0が返却されます。

.append(data,offset)

メモリブロックへデータを追記します。
基本的に、データが書き込まれていない位置をオフセットで指定して使用します。

NameTypeM/OSummary                                      Note
datastring, ArrayBuffermandatory書き込みデータ
offsetnumbermandatory書き込み開始オフセット[byte]
returnnumber-書き込まれたサイズ[byte]書き込みに失敗した場合は0が返却されます。

.writeFrame(header,data,offset)

メモリブロックへフレーム識別子で管理される専用フレーム形式でデータを書き込みます。
メモリブロックのデータは、書き込み前に一度完全に消去されます。

NameTypeM/OSummary                                      Note
headerstringmandatoryフレーム識別子
フレームを識別する任意の名前(1~8文字)を指定します。
datastring, ArrayBuffermandatory書き込みデータ
offsetnumbermandatory書き込み開始オフセット[byte]
returnnumber-書き込まれたフレームサイズ[byte]フレームサイズは、書き込まれたデータ長と16バイトのフレームオーバーヘッド長の合計となります。
書き込みに失敗した場合は0が返却されます。

.appendFrame(header,data,offset)

メモリブロックへフレーム識別子で管理される専用フレーム形式でデータを追記します。
フレームデータが書き込まれていない位置をオフセットで指定して使用します。

NameTypeM/OSummary                                      Note
headerstringmandatoryフレーム識別子
フレームを識別する任意の名前(1~8文字)を指定します。
datastring, ArrayBuffermandatory書き込みデータ
offsetnumbermandatory書き込み開始オフセット[byte]
returnnumber-書き込まれたフレームサイズ[byte]フレームサイズは、書き込まれたデータ長と16バイトのフレームオーバーヘッド長の合計となります。
書き込みに失敗した場合は0が返却されます。

.read(size,offset)

メモリブロックからデータを読み出します。

NameTypeM/OSummary                                      Note
sizenumbermandatory読み出しデータサイズ[byte]
offsetnumbermandatory読み出し開始オフセット[byte]
returnstring, null, undefined-読み出しデータ読み出しデータは、オフセットで指定された開始位置から、指定されたデータサイズまたはデータが存在する範囲(Version 02.01.00+)まで読み込まれます。
データが存在しない場合はnullが返却されます。
文字以外のデータが検出された場合はundefinedが返却されます。

.readBin(size,offset)

メモリブロックからデータをバイナリで読み出します。

NameTypeM/OSummary                                      Note
sizenumbermandatory読み出しデータサイズ[byte]
offsetnumbermandatory読み出し開始オフセット[byte]
returnArrayBuffer, null-読み出しデータ読み出しデータは、オフセットで指定された開始位置から、指定されたデータサイズまで読み込まれます。
データが存在しない場合はnullが返却されます。

.searchFrame(header)

指定されたフレーム識別子に該当するデータをメモリブロックの先頭フレームから検索します。

NameTypeM/OSummary                                      Note
headerstringmandatoryフレーム識別子
対象データのフレーム識別子を指定します。
returnstring, null, undefined-検出された読み出しデータデータが存在しない場合はnullが返却されます。フレーム破損又はその他の異常が検出された場合はundefinedが返却されます。

.searchBinFrame(header)

指定されたフレーム識別子に該当するデータをメモリブロックの先頭フレームから検索し、バイナリで読み出します。

NameTypeM/OSummary                                      Note
headerstringmandatoryフレーム識別子
対象データのフレーム識別子を指定します。
returnArrayBuffer, null, undefined-検出された読み出しデータデータが存在しない場合はnullが返却されます。フレーム破損又はその他の異常が検出された場合はundefinedが返却されます。

.erase()

指定されたメモリブロックを完全に消去します。

NameTypeM/OSummaryNote
returnundefined--

.close()

指定されたメモリブロックをクローズします。

NameTypeM/OSummaryNote
returnundefined--



オブジェクトの使用例

Sample 1

フレーム書き込みおよびフレーム読み出しのサンプルです。

var mb = storage.open();  
var FRAME_TYPE = 'Sample';
var str = 'abcdefg';
mb.writeFrame(FRAME_TYPE, str);

var r_u_data = mb.readFrame(FRAME_TYPE, 1);
print('r_u_data=' + r_u_data);

mb.close();

Sample 2

異なるヘッダを使用した、フレーム書き込みおよびフレーム読み出しのサンプルです。

var mb = storage.open();
var FRAME_TYPE_1 = 'type1';
var FRAME_TYPE_2 = 'type2';
var w_len;
var w_str;

w_str = 'abcdefg';
w_len = mb.writeFrame(FRAME_TYPE_1, w_str);
var w_str = '1234567890';
w_len = mb.writeFrame(FRAME_TYPE_2, w_str);

var r_u_data;
var frame_type = FRAME_TYPE_2;
  r_u_data = mb.searchFrame(frame_type);
  if(typeof r_u_data == 'string'){
    print('found r_u_data=' + r_u_data);
  }else{
    if (r_u_data === null){
      print('none data');
    }else{
      print('read fail -> reset');
      mb.reset();
    }
  }

mb.close();

Sample 3

フレーム破損を検出した場合に、復旧を試みるサンプルです。

var mb = storage.open();  

var FRAME_TYPE = 'sample';
var w_len;
var w_str;

w_str = 'abcdefg';
w_len = mb.writeFrame(FRAME_TYPE, w_str);

var w_str = '1234567890';
w_len = mb.writeFrame(FRAME_TYPE, w_str);

var r_u_data;
var frame_type = FRAME_TYPE;
while(mb.getReadableSize()){
  r_u_data = mb.readFrame(frame_type, 0);
  if(typeof r_u_data == 'string'){
    print('r_u_data=' + r_u_data);
    mb.removeFrame();
  }else{
    if (r_u_data === undefined) {
      print('data broken');
      var ret = mb.recoverFrame(frame_type);
      if (ret === undefined) {
        print('recover fail');
        mb.reset();
      } else {
        print('recover success ' + ret);
      }
    }
  }
}
print('finish reading frames!\n')

mb.close();

Sample 4

{RawMemBlock}を使用してデータを読み書きするサンプルです。

var rawmb = storage.rawOpen(3);
var w_idx = 0;
var header1 = 'option1';
w_idx += rawmb.writeFrame(header1, '10000', w_idx); //data offset
print('total written size=' +  w_idx);

var header2 = 'option2';
w_idx += rawmb.appendFrame(header2, '12', w_idx); //data offset
print('total written size=' +  w_idx);

var header3 = 'option3';
w_idx += rawmb.appendFrame(header3, '2018', w_idx); //data offset
print('total written size=' +  w_idx);

var r_u_data;
r_u_data = rawmb.searchFrame(header1); //size offset
print(typeof r_u_data + ':' + header1 + ':' + r_u_data);

r_u_data = rawmb.searchFrame(header2); //size offset
print(typeof r_u_data + ':' + header2 + ':' + r_u_data);

r_u_data = rawmb.searchFrame(header3); //size offset
print(typeof r_u_data + ':' + header3 + ':' + r_u_data);

rawmb.close();

Sample 5

フレーム書き込みおよびフレーム読み出しのサンプルです。
下表は、このサンプルを実行した時のメモリブロック内のデータの流れを示しています。

var mb = storage.open(0);
print('mb:', mb.getReadableSize(), '/', mb.getBlockSize());
if(mb.getReadableSize()){
    mb.erase();
}
mb.writeFrame('tag', 'data1');
mb.writeFrame('tag', 'data2');
mb.writeFrame('tag', 'data3');
while(1) {
    var str = mb.readFrame('tag', 0);   //0:Only read.
    if(null === str) {
        print('No data');
        break;
    } else if(undefined === str) {
        print('Broken frame');
        break;
    }
    print(str);
    mb.removeFrame();
}
stepmethodmemory blockread data
1.erase()
2.writeFrame('tag', 'data1')['tag', 'data1']
3.writeFrame('tag', 'data2')['tag', 'data1'] ['tag', 'data2']
4.writeFrame('tag', 'data3')['tag', 'data1'] ['tag', 'data2'] ['tag', 'data3']
5.readFrame('tag', 0)['tag', 'data1'] ['tag', 'data2'] ['tag', 'data3']'data1'
6.removeFrame()['tag', 'data2'] ['tag', 'data3']
7.readFrame('tag', 0)['tag', 'data2'] ['tag', 'data3']'data2'
8.removeFrame()['tag', 'data3']
9.readFrame('tag', 0)['tag', 'data3']'data3'
10.removeFrame()
11.readFrame('tag',0)null

Sample 6

異なるヘッダを使用した、フレーム書き込みおよびフレーム読み出しのサンプルです。
下表は、このサンプルを実行した時のメモリブロック内のデータの流れを示しています。

var mb = storage.open(0);
print('mb:', mb.getReadableSize(), '/', mb.getBlockSize());
if(mb.getReadableSize()){
    mb.erase();
}
mb.writeFrame('tag1', 'data1');
mb.writeFrame('tag2', 'data2');
mb.writeFrame('tag3', 'data3');

while(1) {
    if(0 == mb.getReadableSize()) {
        break;
    }
    var tag;
    var str = null;
    if(null === str) {
        tag = 'tag3';
        str = mb.readFrame(tag, 0);
    }
    if(null === str) {
        tag = 'tag2';
        str = mb.readFrame(tag, 0);
    }
    if(null === str) {
        tag = 'tag1';
        str = mb.readFrame(tag, 0);
    }
    if(null === str) {
        print('No data');
        break;
    }
    if(undefined === str) {
        print('Broken frame');
        break;
    }
    print(tag, ':', str);
    mb.removeFrame();
}
stepmethodmemory blockread data
1.erase()
2.writeFrame('tag1', 'data1')['tag1', 'data1']
3.writeFrame('tag2', 'data2')['tag1', 'data1'] ['tag2', 'data2']
4.writeFrame('tag3', 'data3')['tag1', 'data1'] ['tag2', 'data2'] ['tag3', 'data3']
5.readFrame('tag3', 0)['tag1', 'data1'] ['tag2', 'data2'] ['tag3', 'data3']null
6.readFrame('tag2', 0)['tag1', 'data1'] ['tag2', 'data2'] ['tag3', 'data3']null
7.readFrame('tag1', 0)['tag1', 'data1'] ['tag2', 'data2'] ['tag3', 'data3']'data1'
8.removeFrame()['tag2', 'data2'] ['tag3', 'data3']
9.readFrame('tag3', 0)['tag2', 'data2'] ['tag3', 'data3']null
10.readFrame('tag2', 0)['tag2', 'data2'] ['tag3', 'data3']'data2'
11.removeFrame()['tag3', 'data3']
12.readFrame('tag3', 0)['tag3', 'data3']'data3'
13.removeFrame()



Updated: 2023-09-28
← 前次 →
  • storage Global Object
  • Details
    • storage.open([blockNo])
    • storage.rawOpen([blockNo])
  • {MemBlock}
  • Details
    • .getReadableSize()
    • .getBlockSize()
    • .write(data[,size[,pad]])
    • .writeFrame(header,data)
    • .read(size,offset)
    • .readFrame(header,flag)
    • .searchFrame(header,index)
    • .recoverFrame(header)
    • .searchAllFrame(header,retType)
    • .remove(size)
    • .removeFrame()
    • .reset()
    • .erase()
    • .close()
  • {RawMemBlock}
  • Details
    • .getBlockSize()
    • .write(data,offset)
    • .append(data,offset)
    • .writeFrame(header,data,offset)
    • .appendFrame(header,data,offset)
    • .read(size,offset)
    • .readBin(size,offset)
    • .searchFrame(header)
    • .searchBinFrame(header)
    • .erase()
    • .close()
  • オブジェクトの使用例
    • Sample 1
    • Sample 2
    • Sample 3
    • Sample 4
    • Sample 5
    • Sample 6
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.