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の利用
  • 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版 リリース

18. Utils

utilsオブジェクトは、ユーティリティ機能を提供する組み込みオブジェクトです。

機能概要:

  • UTF-8エンコード/デコードをサポートします。



utils Global Object

Methods()/PropertiesSummaryVersionNote
utils.stringToUtf8bin()文字列データをUTF-8でエンコードします。01.00.00+
utils.utf8binToString()バイナリデータをUTF-8でデコードします。01.00.00+



Details

utils.stringToUtf8bin(data)

文字列データをUTF-8でエンコードします。

NameTypeM/OSummaryNote
datastringmandatory文字列データ
returnArrayBuffer-エンコードされたバイナリデータ異常が発生した時は、例外となります。

utils.utf8binToString(data[, offset[, length]])

バイナリデータをUTF-8でデコードします。

NameTypeM/OSummaryNote              
dataArrayBuffer,
Array[ArrayBuffer]
mandatoryバイナリデータ
'ArrayBuffer'又は'ArrayBuffer'の配列を指定可能です。
'ArrayBuffer'の配列が指定された場合は、配列順にバイナリデータを連結してから、デコード処理を開始します。
offsetnumberoptionalデコード開始位置オフセット
'data'に'ArrayBuffer'の配列を指定した場合は、バイナリデータを連結した後の全'data'に対するオフセットとなります。
デフォルト値は0となります。
'length'を指定する場合は省略できません。
lengthnumberoptionalデコード長[byte]
デフォルト値は全'data'サイズからデコード開始位置オフセットを差し引いたサイズとなります。デフォルト値以下のサイズを指定する必要があります。
'offset'を指定した場合でも省略可能です。
return{DecodedData},
undefined
-{DecodedData} : デコードされたデータ
デコードが失敗した場合はundefinedが返却されます。
異常が発生した時は、例外となります。

{DecodedData}

NameTypeSummaryNote
.strstringデコードされた文字列データ
.binArrayBufferデコード対象のバイナリデータ末尾に1から3バイトまでの端数データが存在した場合に、端数データ部分をバイナリデータ出力します。
端数データが存在しない場合はundefinedとなります。



オブジェクトの使用例

Sample 1

UTF-8でエンコードしたデータを、オフセットを使用して分割デコードするサンプルです。
この例は、.utf8binToString()のオフセットとレングスを活用しています。
マルチバイト文字の切れ目を考慮せずに、分割可能であることを示しています。

var testStr_1 = 'Thank you Teşekkür ありがとう';
print(testStr_1);
var testEnc_1 = utils.stringToUtf8bin(testStr_1);
print(ab2Hex_00(testEnc_1));

var chunk = 7;
for(var n = 0; n < 20; n++) {
    var testDec_1 = utils.utf8binToString(testEnc_1, 0, chunk + n);
    print(('00' + n).substr(-2) + '_1:' + testDec_1['str']);
    //if(testDec_1['bin']) print(ab2Hex_00(testDec_1['bin']));

    var rest = testDec_1['bin'];
    var len = 0;
    if(rest) len = rest.byteLength;
    var testDec_2 = utils.utf8binToString(testEnc_1, chunk + n - len);
    print(('00' + n).substr(-2) + '_2:' + testDec_2['str']);
    //if(testDec_2['bin']) print(ab2Hex_00(testDec_2['bin']));
}

function ab2Hex_00(ab) {
    ret_str = '';
    var a = new Uint8Array(ab);
    for(var i = 0; i < a.length; i++) {
        ret_str += ('00' + a[i].toString(16).toUpperCase()).substr(-2);
    }
    return ret_str;
}

Sample 2

UTF-8でエンコードしたデータを2つに分割し、個々にデコードするサンプルです。
この例は、デコード対象がストリームデータの場合に活用できます。
マルチバイト文字の切れ目を考慮せずに、分割可能であることを示しています。

var testStr_1 = 'Thank you Teşekkür ありがとう';
print(testStr_1);
var testEnc_1 = utils.stringToUtf8bin(testStr_1);
print(ab2Hex_00(testEnc_1));

var chunk = 7;
for(var n = 0; n < 20; n++) {
    var chunk_1 = testEnc_1.slice(0, chunk + n);
    var chunk_2 = testEnc_1.slice(chunk + n);

    var testDec_1 = utils.utf8binToString(chunk_1);
    print(('00' + n).substr(-2) + '_1:' + testDec_1['str']);
    //if(testDec_1['bin']) print(ab2Hex_00(testDec_1['bin']));

    var rest = testDec_1['bin'];
    var testDec_2 = utils.utf8binToString([rest, chunk_2]);
    print(('00' + n).substr(-2) + '_2:' + testDec_2['str']);
    //if(testDec_2['bin']) print(ab2Hex_00(testDec_2['bin']));
}

function ab2Hex_00(ab) {
    ret_str = '';
    var a = new Uint8Array(ab);
    for(var i = 0; i < a.length; i++) {
    ret_str += ('00' + a[i].toString(16).toUpperCase()).substr(-2);
    }
    return ret_str;
}



Updated: 2021-08-23
← 前次 →
  • utils Global Object
  • Details
    • utils.stringToUtf8bin(data)
    • utils.utf8binToString(data[, offset[, length]])
    • {DecodedData}
  • オブジェクトの使用例
    • Sample 1
    • Sample 2
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.