このページのみ全てのページ
GitBook提供
1 / 41

2.0.0

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

[日本語]開発者向けドキュメント

https://docs.japancv.co.jp/thundersdk/japanese-dev-documents

Introduction

API仕様書

このドキュメントは、Thunder SDK APIの機能について説明しており、開発者が各型によって提供される特定の目的と機能を理解できるようにまとめられています。

バージョン

修正日

修正履歴

2.0.0

03/01/2021

初版

Release Note

Date

Version

Release Note

2021/4/15

2.0.0(beta)

Opening AI capabilities such as face recognition/temperature measurement in SensePass, SenseThunderE, SenseThunderE-mini, SenseThunderAir. Face Algorithms - 1:1 face recognition - 1:N face recognition - Liveness detection - Mask detection - Server-side FR Temp Measurement - Temperature measurement Senselink Connection - Public cloud (Senselink Cloud 2.4.0) - Register device - User log in - Data synchronization - Record upload - Configuration delivery HW Control - Camera management - Thermal imaging system management - Door access control (relay, Wiegand)

2021/4/28

2.0.0

Add Japanese documentation

リリースノート

日付

バージョン

リリースノート

2021/4/15

2.0.0(beta)

SensePass、SenseThunderE、SenseThunderE-mini、SenseThunderAirにおける顔認証/温度検知などのAI機能を提供する。 顔認証アルゴリズム - 1:1顔認証 - 1:N顔認証 - 生体検知 - マスク検知 - サーバサイド顔認証 温度検知 - 温度検知 SenseLinkとの接続 - SenseLink Cloud 2.4.0に対応 - デバイス登録 - ユーザのログイン - データ同期化 - レコードアップロード - 構成情報の送信 ハードウェアコントロール - カメラコントロール - サーマルイメージングシステムコントロール - ドアコントロール(リレー、Wiegand)

2021/4/28

2.0.0

日本語ドキュメントの提供開始

フィーチャーマネジメント

顔フィーチャーライブラリのマネジメント

クラスの説明

FeatureManagerProxy

メンバー関数の説明

int delete(int userId)

顔フィーチャーを削除

パラメータ

戻り値

削除が成功した場合に0を返す。そうでない場合は負の値を返す

例外

なし

byte[] getFeature(Bitmap avatar)

画像の顔フィーチャーを取得

パラメータ

戻り値

顔フィーチャーのbyte配列を返

例外

なし

int insert(int userId, byte[] feature)

フィーチャーライブラリの追加

パラメータ

戻り値

挿入操作が成功した場合に0を返す。そうでない場合は負の値を返す

例外

なし

API reference

This document, which describes the functions of a single type, is mainly for developers. The main purpose is to let developers understand the specific purpose and functions provided by each type.

Version

Revision Date

Revision Content

2.0.0

03/01/2021

First Draft

LinkSDK

LinkSDK

Encapsulation of SenseLink RESTful interface and Mqtt message push mechanism

[ENGLISH]dev-documents

https://docs.japancv.co.jp/thundersdk/english-dev-documents

メンバー関数

説明

導入バージョン

int delete(int userId)

ユーザーIDの顔フィーチャーを削除

2.0.0

byte[] getFeature( Bitmap avatar)

画像の顔フィーチャーを取得

2.0.0

int insert(int userId, byte[] feature)

フィーチャーライブラリの追加

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

userId

int

顔フィーチャーID

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

avatar

Bitmap

個人の鮮明な画像

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

userId

int

顔フィーチャーID

なし

2.0.0

feature

byte[]

顔フィーチャーバイト配列

なし

2.0.0

Thunder SDK Package Introduction

The Thunder SDK Package (zip file) has the contents shown below.

  • dev-documents

    • : English version of the developer's manual.

API reference: English version of the api introduction document for Thunder SDK.
  • Senselink connection: English version of link api developer's manual.

  • Introduction to Thing Specification Language: English version of Thing Specification Language developer's manual.

  • model: It stores the algorithm model available to the public and selects the appropriate model to apply to the project according to the requirements. For more information on how to choose the model, please see Development manual.

  • sample: a sample program that demonstrates the basic functionality of Thunder SDK. You need to copy relevant resources into the sample based on the access steps described in Development manual to compile and run normally.

  • jniLibs: It stores the dynamic libraries of core algorithms for multiple devices and platforms available to the public and selects the appropriate dynamic library to apply to the project according to the requirements. For more information on how to choose the library, please see Development manual.

  • license: It contains the test certificates that need to be used on different hardware platforms, which can only be used for testing and be applied separately when the product is officially released. For more information on how to use it, please see Development manual.

  • thunder-android*.aar: Thunder SDK development kit. You need to copy the aar into the project at development time. For more information on how to use it, please see Development manual.

  • Development manual

    Sample Software Introduction

    Introduction to the main functions of the software

    • Face recognition: 1:1 verification, 1:N identification, server identification, QR code identification, temperature measurement + identification

    • Operate hardware peripherals

    • Access SenseLink

    The running result is shown below:

    Face Recognition

    It includes 1:1 face verification, 1:N face identification, server-side identification, QR code identification, and temperature measurement + identification, as shown below:

    1:1 Face Verification

    The “1:1 Face verification" is a process of proving "you are you", which means that you already have someone's identity information to determine whether the person's face information in the camera view matches the existing identity information.

    You need to add a photo of the target person before using it, as shown below:

    Then enter the 1:1 matching

    1:N Face Identification

    The “1:N Face identification” refers to registering the set of face images to be recognized into the local face feature library, and comparing them with the set of face features in the face feature library when the camera acquires the face information to derive the identification result.

    Build a facial feature database before using it, as shown below:

    Then enter the 1:N identification

    Server-side Identification

    Server identification is also a 1:N recognition mode, which only replaces the local execution with the remote execution in the "face comparison" link. Since face features are stored on the server, you do not need to build the face feature library at this point, but just enter it directly, as shown below:

    Please note that you, as a user, need to implement your own server comparison logic. Please refer to for details.

    QR Code Identification

    It features parsing of QR code content, placing the QR code in the preview screen to ensure clear imaging of the QR code, and if identification is successful, the QR code content will be displayed on the screen, as shown below:

    Temperature Measurement + Identification

    Through the Face recognition function and temperature measurement module, the face and thermodynamic diagram data are processed by the algorithm to get the final face temperature. Currently, the temperature measurement modules supported are Arrow module, Guide 120 module, and Guide 256 module. It should be noted that the final face temperature value may deviate depending on the ambient temperature, module model, and usage strategy.

    The "Temperature Measurement+Identification" is equipped with a 1:N face feature library. So before using it, you need to go to 1:N Face Identification to set the face features, and then enter the "Temperature Measurement + Identification" function after the setting is completed.

    Operate hardware devices

    It’s compatible with some peripherals of Pass and Thunder series. The peripherals supported are shown in the following figure:

    Login SenseLink

    If newDeviceKey is true, it means the current device has not logged into SenseLink. Input the server address, account name, and password, then click login. If the following graph is shown, the login is successful.

    Upload record and TSL model

    Upload the record obtained from face recognition, QR code, and etc. to SenseLink. Upload TSL model to SenseLink. Please check the following graph for detail.

    Feature Management

    Face feature library management

    Description of Class

    FeatureManagerProxy

    Thunder SDKパッケージ

    Thunder SDK Zipファイルには下記コンテンツがあります。ご確認ください。

    • 開発者向けドキュメント

      • ファイル名 :

    ファイル名 :
  • ファイル名 :Senselinkとの連携マニュアル(日本語版)

  • ファイル名 :オブジェクトモデル(TSL)説明マニュアル(日本語版) ※TSLとは物理エンティティをデジタル化し、クラウド内にエンティティを構築するデータモデルで、オブジェクトモデル(TSL)説明マニュアル(日本語版)では「オブジェクトモデル」とも呼んでいます。

  • フォルダー名 model:一般向けに公開されているアルゴリズムモデルが格納されています。プロジェクトの要件に応じて、適切なモデルを選択して適用します。モデルの選択方法については、開発マニュアル(日本語版)をご参照ください。

  • フォルダー名 sample:Thunder SDKの基本的な機能を紹介するためのサンプルプログラムです。コンパイルして実行するためには、開発マニュアル(日本語版)

    に記載されているアクセス手順に従って、関連するリソースを sampleフォルダにコピーする必要があります。

  • フォルダー名 jniLibs:一般向けに公開されている複数のデバイスやプラットフォームに対応した、コアアルゴリズムのダイナミックライブラリが格納されています。プロジェクトの要件に応じて適切なダイナミックライブラリを選択し、適用します。ライブラリの選択方法については、開発マニュアル(日本語版)をご参照ください。

  • フォルダー名 license:異なるハードウェアプラットフォーム上で使用するテスト用ライセンスファイルが含まれています。本ライセンスはテスト用にのみ使用でき、製品が正式リリース後には、別途利用申請する必要があります。使用方法については開発マニュアル(日本語版)をご参照ください。

  • ファイル名 thunder-android*.aar:Thunder SDK開発キット。開発時にはプロジェクトにaarをコピーする必要があります。使用方法について、開発マニュアル(日本語版)をご参照ください。

  • 開発マニュアル(日本語版)
    API仕様書(日本語版)

    Member Function

    Description

    Version Introduced

    int delete(int userId)

    Delete face feature of user id

    2.0.0

    byte[] getFeature( Bitmap avatar)

    Get face feature of the image

    2.0.0

    int insert(int userId, byte[] feature)

    Insert feature library

    2.0.0

    Description of Member Function

    int delete(int userId)

    Delete face feature

    Parameter

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    userId

    int

    Face feature ID

    None

    2.0.0

    Return

    Return 0 if delete operation is successful, otherwise return negative value

    Exception

    None

    byte[] getFeature(Bitmap avatar)

    Get face feature of the image

    Parameter

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    avatar

    Bitmap

    Clear image of the face for a single person

    None

    2.0.0

    Return

    Return face feature byte array

    Exception

    None

    int insert(int userId, byte[] feature)

    Insert feature library

    Parameter

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    userId

    int

    Face feature ID

    None

    2.0.0

    feature

    byte[]

    Face feature byte array

    None

    Return

    Return 0 if the insert operation is successful, otherwise return negative value

    Exception

    None

    link-api-dev-manual-en .md

    QR code

    Identify the content of the QR code

    Description of functional types

    QRCodeDecoderProxy

    Description of Member Function

    String decodeQRCode(byte[] nv21, int w, int h)

    Parse the QR code

    Parameter

    Return

    The parsed QR code string

    Exception

    None

    String decodeQRCode(Bitmap bitmap)

    Parse the QR code

    Parameter

    Return

    The parsed QR code string

    Exception

    None

    QRコード

    QRコードの内容を識別

    機能類の説明

    QRCodeDecoderProxy

    サンプルソフトウェア

    ソフトウェアの主な機能の紹介

    • 顔認証: 1:1認証、1:N認証、サーバー認証、QR コード認証、温度測定および検知

    • ハードウェア周辺機器の操作

    2.0.0

    h

    int

    Preview height

    None

    2.0.0

    Member Function

    Description

    Version Introduced

    String decodeQRCode(byte[] nv21, int w, int h)

    QR code Identification

    2.0.0

    String decodeQRCode(Bitmap bitmap)

    QR code Identification

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    nv21

    byte[]

    Preview frame data

    None

    2.0.0

    w

    int

    Preview width

    None

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    bitmap

    Bitmap

    Image Data

    None

    2.0.0

    2.0.0

    メンバー関数

    説明

    導入バージョン

    String decodeQRCode(byte[] nv21, int w, int h)

    QRコード識別

    2.0.0

    String decodeQRCode(Bitmap bitmap)

    QRコード識別

    2.0.0

    メンバー関数の説明

    String decodeQRCode(byte[] nv21, int w, int h)

    QRコードを解析

    パラメータ

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    nv21

    byte[]

    プレビューのフレームデータ

    なし

    2.0.0

    w

    int

    プレビューの幅

    なし

    戻り値

    解析されたQRコードstring

    例外

    なし

    String decodeQRCode(Bitmap bitmap)

    QRコードを解析

    パラメータ

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    bitmap

    Bitmap

    画像データ

    なし

    2.0.0

    戻り値

    解析されたQRコードstring

    例外

    なし

    SenseLink へのアクセス

    実行結果は、以下の通りです。

    顔認証

    以下に示すように、1:1認証、1:N認証、サーバーサイド認証、QR コード認証、温度測定および検知が含まれます。

    1:1認証

    “1:1認証"は、“あなたがあなたであること”を証明するプロセスです。具体的には、特定の身元情報をシステムが保持している場合、カメラ画面に映っている人物の顔情報と保存している身元情報が一致するかを判断します。

    使用する前に、以下のように対象となる人物の写真を追加する必要があります。

    その後、1:1認証を実行します。

    1:N認証

    1:N認証とは、認証対象の顔画像セットをローカルの顔フィーチャーライブラリに登録しておき、カメラが顔情報を取得した際にライブラリ内の顔フィーチャーセットと比較することで、認証結果を導き出します。

    使用する前に、以下のように顔フィーチャーデータベースを構築する必要があります。

    その後、1:N認証を実行します。

    サーバーサイド認証

    サーバーサイド認証とは1:N認証モードのひとつであり、「顔比較」のリンク内でローカル実行をリモート実行に置き換えたものです。サーバー上に顔フィーチャーが保存されているためにで顔フィーチャーライブラリを構築する必要はなく、以下のように直接入力するだけです。

    なお、ユーザー自身が独自のサーバー比較ロジックを実装する必要があります。詳細については、link-api-dev-manual-jp.md をご参照ください。

    QRコード認証

    QRコードの内容を解析し、鮮明に読み込めるようにQRコードをプレビュー画面に配置します。認証に成功した場合、以下のようにQRコードの内容が画面に表示されます。

    温度測定および認証

    顔認証機能と温度測定モジュールを介して顔および熱力学線図のデータをアルゴリズムにより処理し、最終的な顔の温度を取得します。現在サポートされている温度測定モジュールは、Arrowモジュール、Guide120モジュール、およびGuide256モジュールです。最終的な顔の温度値は、周囲の温度、モジュールのモデル、使用方法などによって異なる場合がありますのでご注意ください。

    温度測定および認証には1:N顔フィーチャーライブラリが搭載されています。使用前に1:N認証を参照して顔フィーチャーを設定し、設定完了後に温度測定および認証機能を入力します。

    ハードウェアデバイスの操作

    PassとThunderシリーズの一部の周辺機器と互換性があります。対応する周辺機器は次の図のとおりです。

    SenseLink へのログイン

    newDeviceKeyの値がtrueであれば、利用中のデバイスはSenseLinkにログインしていないことを意味します。サーバーアドレス、アカウント名、およびパスワードを入力して、ログインをクリックしてください。以下の図が表示されれば、ログインは成功です。

    データおよび TSL モデルのアップロード

    顔認証やQRコードなどにより取得したデータをSenseLinkにアップロードします。またTSLモデルをSenseLinkにアップロードします。詳細については、以下のグラフをご覧ください。

    SDK Authorization

    Thunder SDK initiation and authorization

    Description of functional types

    WuKong

    Description of Member Function

    void init (Context context)

    Initiation

    Parameter

    Return

    None

    Exception

    None

    void auth (String licFileName, boolean isLeafLic, String productName, PassModel modelConfig, IAuthCallback authCallback)

    Authorization

    Parameter

    Return

    None

    Exception

    None

    void release ()

    Release SDK resource

    Parameter

    None

    Return

    None

    Exception

    None

    2.0.0

    h

    int

    プレビューの高さ

    なし

    2.0.0

    productName

    String

    Device Product Name

    None

    2.0.0

    modelConfig

    PassModel

    Model Configuration

    None

    2.0.0

    authCallback

    IAuthCallback

    Authorization Callback

    None

    2.0.0

    Member Function

    Description

    Version Introduced

    void init(Context context)

    Initiation

    2.0.0

    void auth(String licFileName, boolean isLeafLic, String productName, PassModel modelConfig,IAuthCallback authCallback)

    Authorization

    2.0.0

    void release()

    Release SDK resource

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    context

    Context

    context object

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    licFileName

    String

    license file name

    None

    2.0.0

    isLeafLic

    boolean

    Is Leaf License

    None

    2.0.0

    Senselinkとの連携

    バージョン

    改訂日

    改訂内容

    v1.1.0

    2020/7/16

    初稿

    v1.2.1

    2020/11/10

    登録者データの同期化の使用法についての紹介を追加

    LINK API について

    Link APIは、SenseLinkプラットフォームのクラウド機能をカプセル化するための一連のインターフェースメソッドです。インターフェースメソッドには、プラットフォームRESTfulインターフェースのカプセル化と、プラットフォームのMqttメッセージのプッシュメカニズムのカプセル化の、主に2つのタイプがあります。プラットフォームが提供するクラウド機能を、一般的なJavaメソッドを呼び出すのと同じように使用することができます。 *JCVのSenselinkプラットフォームについて、下記リンクをご参照ください:

    Link APIの使用

    Link APIは主に、HttpApiClientとMqttApiClientの2つのコアタイプを提供しており、それぞれのタイプで提供されるメソッドを使用することでSenseLinkプラットフォームとの直接的な通信が実現できます。その方法を以下に紹介します。

    • HttpApiClient:プラットフォームのRESTful APIのカプセル化用であり、通信にはhttpプロトコルを使用し、共に同期化メソッドであるためワーカースレッドで使用する必要があります

    • MqttApiClient:プラットフォームメッセージのプッシュメカニズムのカプセル化用であり、通信にはMqttプロトコルを使用し、長距離通信を確立してメッセージのTopicにサブスクライブすることで、プラットフォームメッセージのプッシュを受信します

    インターフェースメソッドに関するRESTful APIとMqtt Topicの詳細な定義については、「API仕様書」をご参照ください。

    Link APIの初期化

    Link APIは、統一された初期化エントリーを提供します。サーバーのURL、リクエストの読み込みと書き込みのタイムアウト、インターフェースから返される言語タイプなどを設定する必要があります。具体的な使用方法は以下の通りです。

    初期化後、具体的なメソッドを呼び出して特定のサービスを実行できます。

    RESTful APIのカプセル化方法

    各RESTful APIインターフェースは、対応するJavaのメソッド実行をカプセル化します。具体的なエンティティークラスは、リクエストで要求されたパラメーターの受渡値とリクエストの結果データの両方によってカプセル化されています。例えば、認識レコードをアップロードするためにv2/recordリクエストを実行する場合、以下のように記述します。

    以下のように、実行のための比較的シンプルなパラメーターを使用して、APIインターフェースに複数のパラメーターを直接受け渡すことができます。

    • デバイスのログイン操作

    • ユーザーIDに基づく詳細なユーザー情報の取得

    「RESTful APIインターフェースの定義」と「APIとメソッド間の通信」の詳細については、API仕様書をご参照ください。

    Mqttのプッシュメカニズムのカプセル化のメソッド

    各MqttメッセージのプッシュTopicは、対応するJavaメソッドをカプセル化します。Topicにサブスクライブされるメッセージは、次のようにコールバックを登録することで受信されます。

    • サーバーとのMqtt長距離接続を以下のようにして確立します。

    • デバイスの登録者グループ変更にサブスクライブします

    • デバイスの登録者グループ変更のサブスクライブを解除します

    「Mqtt Topic の定義」および「Topic のサブスクライブとメソッド間の通信」の詳細については、Thunder SDK API Documentをご参照ください。

    主な使用プロセスについて

    Link APIはSenselinkプラットフォームと簡単に通信する方法を提供しますが、一部の機能を使用する際には一定のプロセスステップに従わなければなりません。つまりRESTful APIインターフェースとMQTTトピックへのサブスクリプションの両方で、シーケンスに従う必要があります。以下、使用のシーケンスの観点から主要な機能の流れを中心に説明しています。

    ログインと登録のステップ

    SenseLinkプラットフォームの機能を利用するためには、ログインと登録操作が必要です。これにより、デバイスをプラットフォームに含めて一元管理することができます。 通信プロセスの簡単な説明は以下の通りです。

    主なステップの説明は以下の通りです。

    (1)デバイスのログイン:最初にプラットフォームからパブリックキーを取得するためにv2/rsapubインターフェースをリクエストし、パブリックキーを使用してクリアテキストのパスワードを暗号化してログイン操作を行うためにv2/device/loginインターフェースをリクエストします。2つのステップはHttpApiClient.login()メソッドを使用することで完了します。このメソッドは、メソッドのパラメーターとしてアカウント番号、暗号化されたパスワード、デバイスのタイプとデバイスのDUIDのみを受け渡すだけで済みます。

    • トークン:全てのインターフェースのリクエストには、7日間有効なトークンを使用する必要があります。失効後は403エラーが返されますので、この場合は再度ログインして取得する必要があります。

    • newDeviceKey:trueの場合、現在のデバイスがプラットフォームの一元管理対象に含まれていないこと意味しますので、デバイス登録の操作を行う必要があります。

    (2)デバイスの登録:登録を行うには、最初にv2/device/registerインターフェースをリクエストし、登録が完了した後にデバイスと登録者グループを結合するためにv2/device/group/defaultをリクエストする必要があります(以降の登録者データの配信管理のため)。2つのメソッドはHttpApiClient.register()メソッドを適用することで完了し、デバイス名、デバイスの場所、アクセスコントロールの入口と出口の方向などのパラメーターを受け渡す必要があります。

    • device ldid:プラットフォーム上のデバイスの一意の識別コードであり、デバイスを区別するために使用されます。

    • companyId:デバイスに対応する企業IDであり、各企業には複数の登録者グループがあります。

    オブジェクトモデルの同期化戦略

    オブジェクトモデル(TSL)に関する機能は、SenseLink2.3.0以降からサポートすています。これらの機能を使用する前に、サーバーのバージョン番号を特定する必要があります。サーバーがこれらの機能をサポートしていれば、予期しない例外が発生すること無くオブジェクトモデルを同期化することができます。 この操作は構成の同期化の前にセットする必要があり、フローチャートは以下の図の通りです。

    (1)オブジェクトモデルに関する機能がサーバーによってサポートされているかどうかを判断するために、HttpApiClient.getServerVersion()を呼び出して、現在接続されているサーバーのバージョン番号を取得します。サーバーのバージョン番号が2.3.0以上であれば、これらの機能はサポートされていますので、次の操作に進むことができますが、そうでない場合は(5)まで進んでください。

    (2)ローカルオブジェクトモデルのMD5を計算し、入力パラメーターとしてHttpApiClient.checkTslExist()を呼び出して、フラグのゾーンビットを取得すると同時にクラウド上にローカルオブジェクトモデルが存在するかどうかをチェックします。flag==1の場合は、オブジェクトモデルがすでに存在していることを意味しますので、アップロードする必要はありません。そうでない場合はHttpApiClient.uploadTsl()を呼び出してオブジェクトモデルをアップロードします。

    (3)HttpApiClient.checkTslLanguageExist(language)を呼び出します(zh:簡体字中国語、zh-tw:繁体字中国語、en:英語)。クラウド上に対応する言語パッケージが存在するかどうかをチェックし、クラウドの言語パッケージのゾーンビットとMD5を取得します。flag==1であり、かつクラウドの言語パッケージのMD5とローカルの言語パッケージのMD5が一致している場合は、言語パッケージがすでに存在しているということを意味しますので、アップロードする必要はありません。そうでない場合は、HttpApiClient.uploadTslLanguage()を呼び出して言語パッケージをアップロードします。

    (4)言語パッケージが複数ある場合は、(3)のステップを繰り返します。

    (5)構成の同期化に関する操作を行います。

    デバイス構成の同期化戦略

    デバイスの構成パラメーターは、2つの方法で設定することができます:UIインターフェースを介した設定と、SenseLinkクラウドを介した設定と発行です。通信の簡単な説明は以下の図の通りです。

    (1)ユーザーが設定ページから構成を変更した後に、システムの設定モジュールが変更された構成パラメーターをバックグラウンドにアップロードし、最終的に構成の変更を送信します。

    (2)バックグラウンドで構成が変更される際に、MQTTを介して構成変更のプッシュを送信します。通知を受信するとシステムの設定モジュールはHTTPを介して最新のサーバー構成を取得してデバイスの構成パラメーターを更新し、最終的に構成の変更を送信します。

    (3)デバイス構成がバックグラウンドでリセットされると、MQTTを介してデフォルト構成の復元のプッシュを送信します。通知を受信するとシステム設定モジュールは全ての構成をリセットし、構成のリセットをバックグラウンドにアップロードして最終的に構成の変更を送信します。

    登録者データの同期化戦略

    登録者データの同期化とは企業の対応する登録者データをデバイス側がプラットフォーム側から取得することを意味し、データには主に登録者の基本情報と認証に必要な顔写真ライブラリが含まれます。データの同期化の通信プロセスの簡単な説明は次の通りです。

    (1)デバイスのログインが完了し、Mqtt Brokerとの長距離のMqtt通信が確立された後に、「デバイスの登録者グループ変更Topic」へアクティブにサブスクライブする必要があります。サブスクライブの完了後、ただちにメッセージのプッシュを受信し、デバイスに属する全ての登録者グループの情報を取得することができます(キー項目は登録者グループのid)。Topicへのサブスクライブの解除は、データ受信後に行うことができます。

    (2)(1)で全ての登録者グループのidが取得できたら、続けて「単一登録者グループ内の、全登録者データTopic」にサブスクライブし、サブスクライブが完了したら当該登録者グループの全ての登録者情報を取得することができます(キー項目はuser_idとimage_url)。Topicへのサブスクライブの解除は全グループの登録者情報の受信後に行うことができます。

    (3)(2)で取得した user_idとimage_urlによって、RESTFulインターフェースを介して詳細な登録者情報とアバターを取得することができます。全ての登録者データを取得するには、このステップを繰り返す必要があります。

    (4)登録者データの最初の取得後に、「単一の登録者グループ内の登録データ変更のTopic」にサブスクライブする必要があります。サブスクライブの完了後、ただちに登録者のインクリメントリストと変更タイプが返されますので、変更タイプに応じてデータを処理する必要があります。

    オブジェクトモデル(TSL)説明

    Thing Specification Language(TSL)とは、エンド側とサーバー間の設定のために提供される記述ファイルであり、エンド側でサポートされている設定項目と設定項目に応じた制約を記述するために使用されます。

    概要

    SenseLinkプラットフォームはTSLを定義するためにデバイスをサポートします。デバイスの実際の設定(プロパティ、ステータス)から成るデータモデルによって、クラウドを介したデバイス管理が円滑化されます。

    パラメーターの命名、パラメーターの型、制御型、製品の各機能のチェックルールなど

    ステータス

    デバイスの周辺機器の状態です。プラットフォームは書き込みを行わずに読み込みだけを行い、ドアマグネットの状態、サーマルイメージングシステムの接続状態、Bluetoothロックバッテリーなど、最新の状態のみを保持します

    TSL

    TSLとは、デバイスが最初にSenseLinkにアクセスする際にデバイスからレポートされるJSON形式のファイルであり、バックエンドに保存されます。Webでデバイスの詳細を表示すると、デバイスに対応するTSLとTSLの値がWebで動的に読み込まれます。これにより、バックエンドのサービスを更新することなく、クラウド上のリモート設定機能とデバイスのローカル機能の一貫性を確保することができます。

    TSLの使用フロー

    1. アプリにTSLを追加し、TSLのデータ構造 に従って作成します。

    2. 必要な言語パッケージを作成します。形式については、TSLの国際化 を参照してください。

    3. 開発が完了したら、デバイス上でプロパティやイベントをレポートし、プロパティを設定してクラウド上のサービスを呼び出してインターフェースの呼び出しステップ更新プロセスを表示することができます。

    4. デバイスからレポートされた属性、イベント、および完了済サービスの呼び出しデータは、データ照合の通過後、SenseLinkコンソール内の対応するデバイスのデバイス詳細ページのデバイス設定タブに表示されます。

    TSLの構造

    TSLはトップレベルに「engineVersion」「modelVersion」「deviceType」を持つjsonファイルです。「properties」「status」は前述したパラメータの設定項目です。

    プロパティ

    プロパティは、それぞれが複数の設定項目を持ついくつかのモジュールで構成されています。fields要素とも呼ばれる各設定項目はそれぞれの設定項目を説明し、機能を定義します。

    フィールドはキーと値で構成されています。キーは設定項目の名前を示し、値は設定項目の任意の値、スタイル、ステータスを含む定義です。一部のフィールドの説明は以下の通りです。その他の設定については、[TSL data structure](#TSLdata structure)をご参照ください。

    type:必須、設定項目の値の型(int、float、string、boolean、その他)を示しています

    ranges:任意、typeがintやfloatなどの場合に、min:最小値、max:最大値、default:デフォルト値を含む値の区間を示します。

    ui:任意、デフォルトはtext、Web/デバイスの入力制御スタイルを示すために使用されます。

    uiに設定可能な値の一覧:

    uiに設定可能な値

    説明

    number

    ナンバーピッカー

    select

    ドロップダウンボックス

    checkbox

    複数選択ボックス

    radio

    ラジオボタン

    date

    タイムピッカー

    options:任意で、Valueが枯渇し得る場合(wiegand32、wiegand34、およびwiegand2602など)、一般的にuiのselectで使用されます。

    ステータス

    デバイスの周辺機器の状態を意味します。プラットフォームは書き込みは行わずに読み込みのみを行い、最新の状態のみを保持します。JSONファイルには、名前に対応する name、enable、および options、表示の有無、および任意の値が含まれます。詳細については、TSLのデータ構造をご参照ください。

    TSLの国際化

    デバイス/Web上のシステム内の全てのTSLのデバイスタイプ、属性、およびステータスの表示名を定義し、言語ごとに別々に保存します。TSLの国際化は、TSLの値と名前をクラウドコンソール向けに分かりやすく説明し、操作の難易度を下げることを目的としています。各言語パッケージはJSON形式のファイルで構成され、対応するキーはTSLの対応する部分の翻訳です。

    フィールド

    説明

    deviceTypes

    デバイスタイプのセット。例:"deviceType":"spse"

    groups

    TSLのカテゴリー化名、プロパティ内の名前の翻訳。 例:properties[{"name":"general",...}]

    fields

    設定項目名、プロパティ内のフィールドの全ての「name」フィールド

    values

    設定に対応する値、ステータス内の値を含むTSL内の全ての値

    status

    デバイスの周辺機器の状態の表示名、ステータス内の「name」フィールド

    データ構造の詳細については、言語パッケージのデータ構造をご参照ください

    付録

    更新プロセス

    言語パッケージのデータ構造

    言語パッケージのデータ構造例は、以下の通りです。

    TSLのデータ構造

    TSL の JSON フィールドの構造例は、以下の通りです:

    関数型

    説明

    プロパティ

    https://docs.japancv.co.jp/senselink/

    Temperature Measurement

    Temperature measurement algorithm initialization and calculation

    Description of Class

    TemperatureActionProxy

    Description of Member Function

    int init(int algorithmVersion,TemperConvertCallback temperConvertCallback )

    Initialize temperature measurement algorithm

    Parameter

    Return

    Return 0 if the init operation is successful, otherwise return negative value

    Exception

    None

    TemperInfo temperCalculateObtainRect(FaceInfo faceInfo, float[] imageData, int width, int height, int orient, float envTemper, float topN)

    Calculate temperature

    Parameter

    Return

    If the calculate operation is successful, return temperature data and region (the region is the face rectangle region where to measure the temperature), otherwise return null

    Exception

    None

    TemperInfo[] multiTemperCalculate(MatchFace[] matchFaces, float[] temperatureData,int temperatureWidth, int temperatureHeight, float envTemper, int orient, float topN)

    Calculate temperature

    Parameter

    Return

    If the calculate is successful, return result array, otherwise return null array

    Exception

    None

    void release()

    Release temperature measurement resource

    Parameter

    None

    Return

    None

    Exception

    None

    {
      "engineVersion": "0.0.1",//エンジンのバージョン
      "modelVersion": "0.0.1", //モデルのバージョン
      "deviceType": "sps", // デバイスのタイプ
      "properties": [/*... */], // 機能の設定項目
      "status": [/*...*/]// デバイスの周辺機器の状態
    }
    {
      "properties": [{
        "name": "group-name",
        "fields": [{ // 設定項目集
          "key": { // 設定項目の名前の記述
            "name": "product_customer", // 名前
            "desc": "vendor-customer" // 名前を記述するために使用され、実用的な目的はありません
          },
          "value": {} // 設定項目の任意の値の記述
          ]
       }]
    }
    {
      "versionInfo": {
        "version": "0.0.1",
        "log": "",
        "updated": "2020-04-21 12:00:00"
      },
      "common": {
        "modelVersion": "Device model version"
      },
      "deviceTypes": {
        "sps": "SensePass"
      },
      "groups": {
        "general": "General Settings"
      },
      "fields": {
        "identify_mode": "identify_mode"
      },
      "values": {
        "enable": "Enable",
        "disable": "Disable"
      },
      "status": {
        "door_status": "Magnetism Status"
      }
    }
    {
      "engineVersion": "0.0.1",//エンジンのバージョン
      "modelVersion": "0.0.1", //モデルのバージョン
      "deviceType": "sps",
      "properties": [{
        "name": "features",
        "fields": [{
          "key": {
            "name": "identify_mode",
            "desc": "Enabled State"
          },
          "value": {
            "required": true, // 必須であるか否か。設定されていない場合、デフォルトは任意です。
            "type": "int", //データのタイプ、numeric、boolean、または string を設定する必要があります。
            "editable": true, // 編集可能であるか否か。設定されていない場合、デフォルトは編集不可です。
            /*
            ** UI のコンポーネントは次のタイプから設定する必要があります
            *** ナンバーピッカー:number
            *** ドロップダウンボックス:select
            *** 複数選択ボックス:checkbox
            *** ラジオボタン:radio
            *** タイムピッカー:date
            *** 1行のテキスト入力:text
            *** 複数行のテキスト入力:textarea
            *** 画像のアップロードと表示:image
            *** デフォルトは text です。
            */
            "ui": "select",
            "ranges": [{
              "min": 1,
              "max": 2,
              "enable": "{open_way}==2", //js expression string または boolean 値です。設定されていない場合はデフォルトで有効です。中括弧内のフィールドは差し替えられる値を示しています(open_wayの値が2の場合、式は"2==2"と解析されます)。
              "default": 1.5
            },{
              "min": 3,
              "max": 4,
              "enable": "{open_way}==3",//js expression stringまたはBoolean値です。設定されていない場合はデフォルトで有効です。
              "default": 3.5
            }],
            "step": 0.5,//値のみに対するステップのサイズです。
            "precision": 1,//精密さ。小数位の正確な数、非負整数を示し、数値に対してのみ有効であり、任意です。
            "mult": true, //複数選択か否か、任意。設定されていない場合、引渡されるパラメーターはデフォルトで単一値です。複数値はドロップダウンと複数選択ボックスに対してのみ有効です。
            "enable": "{open_way}==1", // js expression stringまたはboolean値であり、任意です。リンケージ制御によるフィールドの表示・非表示を示します。enableプロパティが設定されていない場合はデフォルトで有効です。
            "size": 20, // 文字列の長さ、任意です。stringとimage base64に対してのみ有効です。
            "timeFormat": "yyyy-MM-dd HH:mm:ss", //uiがdateの場合、日付形式を設定する必要があります。hhは12時間を意味し、HHは24時間を意味します。
            "options": [{
              "value": 0,
              "name": "off",
              "enable": "{open_way}==2", // js expression stringまたはboolean値です。trueを返し、これは選択された値が候補項目で使用可能であることを意味します。enableプロパティが設定されていない場合はデフォルトで有効です。
            }, {
              "value": 1,
              "name": "on", // js expression stringまたはboolean値です。trueを返し、これは選択された値が候補項目で使用可能であることを意味します。enableプロパティが設定されていない場合はデフォルトで有効です。
              "enable": "{open_way}==3"
            }],
            //watch: ステータスのlisten状態であることを意味します。
            /*
            ** 以下の例は、現在のフィールドの値がuse_modeに関連していることを意味します。
            ** use_modeが変更されると、現在のフィールドの値は式が実行された後の値になります "{use_mode}==2?1.5:{use_mode}==1?2:{recognition_distance}"
            */
            "watch":{
              "use_mode": "{use_mode}==2?1.5:{use_mode}==1?2:{recognition_distance}"
            }
          },
        }]
      }],
      "status": [{
        "name": "wifi",
        "enable": true, // js expression stringまたはboolean値です。このフィールドの表示条件を制御します。enableプロパティが設定されていない場合はデフォルトで有効です。
        "options": [{
          "value": 0,
          "name": "off",
          "enable": "{open_way}==2", // js expression stringまたはboolean値です。trueを返し、これは選択された値が候補項目で使用可能であることを意味します。enableプロパティが設定されていない場合はデフォルトで有効です。
        },{
          "value": 1,
          "name": "on",
          "enable": "{open_way}==1", // js expression stringまたはboolean値です。trueを返し、これは選択された値が候補項目で使用可能であることを意味します。enableプロパティが設定されていない場合はデフォルトで有効です。
        }],
      }]
    }
    // 初期化   
    LinkSDKHelper.getInstance().init(“https://link.japancv.co.jp/sl/”, this)
             .setConnectTimeout(10 * 1000)
             .setReadTimeout(30 * 1000)
             .setWriteTimeout(10 * 1000)
             .setLanguage(LinkSDKHelper.LanguageTypeEnum.ZH)  // サーバーから返される情報の言語を設定します
             .addInterceptor(new ResponseInterceptor())  // インターセプターを設定します
             .setDebug(true);
        // パラメーターエンティティクラス
        RecordParameter recordParameter = new RecordParameter();
        recordParameter.setUserId(2547);
        recordParameter.setMode(2);
        recordParameter.setSignTime((int) (System.currentTimeMillis() / 1000));
        recordParameter.setType(1);
        recordParameter.setInTime(0);
        recordParameter.setEntryMode(1);
        Bitmap bitmap = BitmapFactory.decodeStream(mAppContext.getAssets().open("test.jpg"));
        recordParameter.setUsername("testUserName");
        // 誤ったbase64 文字列をアップロードするとエラーが発生します
        recordParameter.setSignBgAvatar(Base64Utils.bitmapToBase64(bitmap));
        recordParameter.setSignAvatar(Base64Utils.bitmapToBase64(bitmap));
        recordParameter.setDocPhoto(Base64Utils.bitmapToBase64(bitmap));
        recordParameter.setIcNumber("235113");
        recordParameter.setIdNumber("460003199809086744");
    
        // 特定のリクエストを実行するためにカプセル化されたメソッドの呼び出します。結果はリクエスト結果の統合されたラッパークラスを指します。
        Result<RecordResult> recordResultResult = HttpApiClient.uploadRecord(recordParameter);
        if(recordResultResult.isSuccess()){
            // リクエスト結果データの取得と処理です。RecordResult は、リクエスト結果データのエンティティクラスを指します。
                RecordResult body = recordResultResult.getBody(RecordResult.class);
            // todo: 具体的な操作の実行。
      } else {
              // リクエストの例外です。詳細についてはSenseLink APIのドキュメントをご参照ください
      }
    }
    // リクエストパラメーター
    // 同期化メソッドの呼び出しです。ワークスレッドで実行する必要があります
    Result<LoginResult> loginResult = HttpApiClient.login(
                                      "account", "password", "SPS", AppUtils.getAndroidId(ContextUtils.getContext()));
    int userId = 5;
    Result result = HttpApiClient.getUserInfo(userId);
    MqttApiClient.connectMqtt(new IMqttActionListener() {
    
          @Override
          public void onSuccess(IMqttToken iMqttToken) {
            // 接続成功
          }
    
          @Override
          public void onFailure(IMqttToken iMqttToken, Throwable throwable) {
            // 接続失敗
          }
    
        }, new IConnectionLost() {
    
          @Override
          public void onConnectionLost(Throwable cause) {
                   // 接続が切断されました
          }
    });
        // 登録者グループ変更にサブスクライブします
        MqttApiClient.registerGroupChangeListener(new MessageCallback() {
    
           @Override
           public void success(MqttMessage msg) {
    
                     // json データがプッシュメッセージの本文です。
                      String json = new String(msg.getPayload());
                  // バックグラウンドでデバイスを削除し、空の文字列を処理せずにプッシュします。
                if (TextUtils.isEmpty(json)) {
                        return;
                }
    
                // データを取得します。Group classはメッセージデータに対応するエンティティクラスです。
                Pair<List<Group>, Boolean> pushGroupList =
                                              DataConverter.convertJsonToGroupList(json);
                // 具体的な業務に従ってデータを処理します
             }
    
           @Override
           public void error(int code, String msg, Throwable throwable) {
                             // サブスクリプト例外/メッセージプッシュ例外
           }
        });
        MqttApiClient.unRegisterGroupChangeListener();

    width

    int

    Image width

    None

    2.0.0

    height

    int

    Image height

    None

    2.0.0

    orient

    int

    Face orientation

    None

    2.0.0

    envTemper

    float

    Environment temperature

    None

    2.0.0

    topN

    float

    Face information(The temperature detection model detects temperature based on the points on the face. TOP N refers to a portion. Input is float such as 100%, 50%.)

    None

    2.0.0

    temperatureWidth

    int

    Image width

    None

    2.0.0

    temperatureHeight

    int

    Image height

    None

    2.0.0

    orient

    int

    Face orientation

    None

    2.0.0

    envTemper

    float

    Environment temperature

    None

    2.0.0

    topN

    float

    Face information

    None

    2.0.0

    Member Function

    Description

    Version Introduced

    int init(int algorithmVersion,iTemperConvertCallback temperConvertCallback )

    Initialize temperature measurement algorithm

    2.0.0

    TemperInfo temperCalculateObtainRect(FaceInfo faceInfo, float[] imageData, int width, int height, int orient, float envTemper, float topN)

    Measure temperature of single person on Sensepass, SenseThunderE, SenseThunderE-mini

    2.0.0

    TemperInfo multiTemperCalculate(MatchFace[] matchFaces, float[] temperatureData,int temperatureWidth, int temperatureHeight, float envTemper, int orient, float topN)

    Measure temperature of multi persons on SenseThunderAir

    2.0.0

    void release()

    Release temperature measurement resource

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    algorithmVersion

    int

    Algorithm version

    None

    2.0.0

    temperConvertCallback

    TemperConvertCallback

    Temperature measurement callback

    None

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    faceInfo

    FaceInfo

    Face information

    None

    2.0.0

    imageData

    float[]

    Image data

    None

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    MatchFace[]

    matchFaces

    Matched face information array

    None

    2.0.0

    temperatureData

    float[]

    Image data

    None

    2.0.0

    2.0.0

    2.0.0

    text

    1行のテキスト入力

    textarea

    複数行のテキスト入力

    image

    画像のアップロードと表示

    common

    共通の翻訳。 例:"modelVersion":"Device model version"

    Introduction to Thing Specification Language

    The Thing Specification Language (TSL) refers to a description file provided for the configuration between the end-side and the server, which is used to describe the configuration items supported by the end-side and the constraints corresponding to the configuration items.

    Overview

    The SenseLink platform supports devices to define the TSL. The data model consisting of the configuration (properties, status) of the actual device facilitates the management of the device through the cloud.

    Function Type

    TSL

    TSL is a JSON format file that is reported by the device when it first accesses SenseLink and is stored in the backend. As you open the details of a device on the web, the web can then dynamically load the TSL and TSL values corresponding to the device. This allows you to ensure consistency between the remote configuration function in the cloud and the local function of the device without upgrading the backend service.

    TSL Usage Flow

    1.Add TSL to the app and complete the creation based on TSL Data Structure 2.Create the required language pack. For its format, please see TSL internationalization. 3.After completing the development, you can report properties and events on the device, and set properties and invoke services on the cloud, and view the interface call steps Update Process 4.The attributes, events and completed service call data reported from the device will be displayed on the Device Settings tab of Device Details page of the corresponding device in the SenseLink console after passing the data verification.

    TSL Structure

    TSL is a json file, which contains the parameters such as "engineVersion", "modelVersion", "deviceType" at the top level. The "properties" and "status" are the settings for the above parameters.

    Properties

    Properties is composed of several modules, each containing multiple set items. Each setting item, also known as fields element, is a description and function definition for each setting item.

    Field is composed of key and value. Key describes the name of the configuration item, and Value is the definition including the optional value, style, status of the configuration item. The following is an explanation of some fields. For more configuration, please see [TSL data structure] (# TSL data structure).

    type: required, the type of the configuration item value, which can be int, float, string, boolean and others

    ranges: optional, to express the interval of the value when the type is int, float, etc., including min: minimum value, max: maximum value, default: default value.

    ui: optional, default as text, used to indicate web/device input control style.

    List of available values for ui:

    options: optional, used when Value is exhaustible (such as wiegand32, wiegand34, and wiegand2602), generally used with select for ui.

    Status

    Refers to the status of a peripheral component of a device. The platform only reads and does not write, and only maintains the latest state. The JSON file contains name, enable, and options, corresponding to the name, display or not, and optional values. For more information, please see [TSL data structure] (# TSL data structure).

    TSL Internationalization

    Defines the display names of device types, attributes, and status of all TSL in the system on the device/web, and stores them separately by different languages. TSL internationalization is to explain the TSL values and names in layman's terms for the cloud console and reduce the difficulty of operation. Each language pack is composed of files in JSON format, and the corresponding Key is a translation for the corresponding part of the TSL.

    For more information on data structure, please see Data structure of language pack.

    Appendix

    Update Process

    Data structure of language pack

    An example of the data structure of the language pack is as follows.

    TSL Data Structure

    An example of the JSON field structure for TSL is as follows:

    Senselink connection

    Version

    Revision Date

    Revision Content

    v1.1.0

    7/16/2020

    First Draft

    v1.2.1

    2020/11/10

    Add an introduction to the usage of personnel data synchronization

    An introduction of Link API

    Link API is a series of interface methods for cloud capability encapsulation of SenseLink platform (For JCV Senselink Cloud, please refer to (Japanese only)). There are two major types of interface methods, one is encapsulation for the platform RESTful interface, and the other is encapsulation for the platform’s Mqtt message push mechanism. Users can use the cloud capability provided by the platform just like calling common Java methods.

    Use of Link API

    The Link API mainly provides two core types, namely, HttpApiClient and MqttApiClient, and by using the methods provided by these two types, direct communication with the SenseLink platform can be achieved. The brief introduction is as follows:

    • HttpApiClient: For encapsulation of platform RESTful API, use Http protocol for communication, both are synchronized methods and need to be used in the worker thread;

    • MqttApiClient: For encapsulation of the platform message push mechanism, use Mqtt protocol for communication, and receive platform message push by establishing a long connection and subscribing to the message Topic.

    For the detailed definition of the RESTful API interface and Mqtt Topic involved in the interface method, please refer to the "Thunder SDK API Document".

    Initialization of Link API

    Link API provides a unified initialization entry, you need to set the Url of the server, the read and write timeout of the request, the language type returned by the interface, etc. The specific use is as follows:

    After initialization, specific methods can be called to perform specific services.

    RESTful API encapsulation method

    Each RESTful API interface encapsulates the corresponding Java method execution. Specific entities class was encapsulated by both the parameter passing value required by the request and the result data of the request. For example, when executing the v2/record request to upload the identification record

    Multiple parameters can be passed in directly to the API interface with relatively simple parameters for execution, specified as below:

    • Device login operation

    • Get detailed user information based on the user ID

    For more details on "RESTful API interface definition" and "correspondence between API and methods", please refer to the Thunder SDK API Document .

    Mqtt push mechanism encapsulation method

    Each Mqtt message push Topic encapsulates the corresponding Java method. Topic subscribed messages are received by registering callbacks, specified as below

    • Establish a Mqtt long connection with the server, shown as below:

    • Subscribe to the personnel group change of the device

    • Unsubscribe to the personnel group change of the device

    For more details on "Mqtt Topic definition" and "correspondence between topic subscribe and methods", please refer to the Thunder SDK API Document.

    Introduction of key use processes

    Link API provides easy communication with Senselink platform, however, certain process steps need to be followed while using some functions, in other words, both the use of RESTful API interface and the subscriptions to MQTT topics follow a sequence. Below mainly describes the main functional flow steps from the perspective of the sequence of use.

    Login and registration steps

    Login and registration operations are required to use the functions of SenseLink platform, so that device can be included into the platform for unified management. A brief communication process is stated as follows:

    The main steps are described below:

    (1) Device login: request v2/rsapub interface to obtain a public key from the platform first, then use the public key to encrypt the cleartext password, and then request v2 /device/login interface for login operation. The two steps are completed by using the HttpApiClient.login () method, which only needs to pass in the account number, encrypted password, device type and device DUID as method parameters.

    • token: all interface requests need to use token, which is valid for 7 days. After expiration, 403 error will be returned, in this case, you need to log in again to obtain it;

    • newDeviceKey: If it is true, it means that the current device has not been included in the unified management of the platform, in this case, device registration operation needs to be performed.

    (2) Device registration: the v2/device/register interface should be requested first for registration, and then the v2/device/group/default interface should be requested to bind the device and personnel group after successful registration (for subsequent personnel data distribution management). The two steps are completed by applying HttpApiClient.register () method, and parameters such as device name, device location, entrance and exit direction of access control need to be passed in.

    • device ldid: the unique identification code of the device on the platform, which is used to distinguish device;

    • companyId: the company id corresponding to the device, and each company has several personnel groups.

    Synchronization strategy of object model

    Object model (TSL. Please refer to "tsl-dev-manual-en" in SDK documentation for intorduction.) related functions are only supported in SenseLink 2.3.0 and above versions. You need to determine the version number of the server before using these functions. On the premise that the server supports these functions, object model can be synchronized without unexpected exceptions. This operation should be placed before the configuration synchronization, the flow chart is shown in the figure below

    (1) Get the version number of the currently connected server by calling HttpApiClient.getServerVersion() to determine whether or not object model related functions are supported by the server. If the version number of the server is greater than or equal to 2.3.0, these functions are supported and you can continue the subsequent operations, otherwise skip directly to step (5);

    (2) Calculate the MD5 of the local object model, and call HttpApiClient.checkTslExist() as an input parameter to get the flag zone bit and check whether the local object model exists in the cloud at the same time. When flag==1, it means that the object model already exists and does not need to be uploaded. Otherwise, call HttpApiClient.uploadTsl() to upload the object model;

    (3) Call HttpApiClient.checkTslLanguageExist( language ) (zh: Simplified Chinese, zh-tw: Traditional Chinese, en: English) Check whether there is a corresponding language package in the cloud, and get the zone bit and MD5 of the cloud language package. When flag==1 and the MD5 of the cloud language package is consistent with the MD5 of the local language package, it means that the language package already exists and does not need to be uploaded. Otherwise, call HttpApiClient.uploadTslLanguage() to upload the language package;

    (4) If there are multiple language packages, repeat step (3);

    (5) Perform related operations for configuration synchronization.

    Device configuration synchronization strategy

    There are two ways to set device configuration parameters: set through the UI interface and set and issue via SenseLink cloud. The brief communication is shown in the figure below:

    (1) After the user modifies the configuration through the setting page, the system setting module will upload the modified configuration parameters to the background, and finally broadcast the configuration change;

    (2) When the configuration is modified in the background, it will send a configuration change push through MQTT. After receiving the notification, the system setting module will obtain the latest server configuration through HTTP, update the device configuration parameters, and finally broadcast the configuration change;

    (3) When the device configuration is reset in the background, it will send a restore default configuration push through MQTT. The system setting module will reset all configurations after receiving the notification, upload the reset configuration to the background, and finally broadcast the configuration change.

    Personnel data synchronization strategy

    Personnel data synchronization means that the device side obtains the company's corresponding personnel data from the platform side, the data mainly includes the basic information of the personnel and the face photo library required for recognition. The brief communication process of data synchronization is as follows:

    (1) After the device logs in successfully and establishes a long Mqtt connection with Mqtt Broker, you need to actively subscribe to the "Device Personnel Group Change Topic". After subscribing, you can immediately receive the message push and obtain all the personnel group information belonging to the device (the key field is the id of the personnel group). You can unsubscribe to the Topic after receiving the data;

    (2) With all the personnel group ids obtained in (1), continue to subscribe to "Topic of personnel data under the single personnel group", after subscribing, all personnel information of this personnel group can be obtained (key fields are user_id and image_url). You can unsubscribe to the Topic after receiving the personnel information of all groups;

    (3) With the user_id and image_url obtained in (2), detailed personnel information and avatars can be obtained through the RESTFul interface. This step needs to be repeated to obtain all the personnel data;

    (4) After initial acquisition of personnel data, it is necessary to subscribe to the "Topic of personnel data change under the single personnel group". After the subscription, the personnel increment list and the change type will be returned immediately, then you need to process the data correspondingly according to the change type.

    single-line text input

    textarea

    multi-line text input

    image

    image upload and display

    common translation, e.g. "modelVersion": "Device model version"

    Description

    Properties

    includes parameter naming, parameter types, control types, check rules for each function of the product

    Status

    the status of a peripheral component of the device. The platform only reads but does not write, and only maintains the latest status, such as door magnetism status, thermal imaging system connection status, bluetooth lock battery

    ui optional values

    description

    number

    number picker

    select

    drop-down box

    checkbox

    multi-select box

    radio

    radio button

    date

    time picker

    Field

    Description

    deviceTypes

    set of device types, e.g.: "deviceType": "spse"

    groups

    TSL categorization name, translation of name in Properties, e.g.: properties[{"name": "general", ...}]

    fields

    name of the configuration item, all "name" fields of fields under Properties

    values

    the value corresponding to the configuration, all values in TSL, including the value in Status

    status

    the display name of the device peripheral status, the "name" field under Status

    Update Process

    text

    common

    https://docs.japancv.co.jp/senselink/

    Camera

    An instance of quick access to the camera is provided, an interface for previewing data is obtained, method of managing the life cycle of the camera is encapsulated, and the monitoring of the camera.

    Description of functional types

    CameraManager

    The main methods of operating the camera

    Description of Member Function

    CameraManager addPreviewCallbackWithBuffer(PreviewCallback callback)

    Add preview data callback

    Parameter

    Return

    Current Object

    Exception

    None

    CameraManager removePreviewCallbackWithBuffer(PreviewCallback callback)

    Remove Preview Data Callback

    Parameter

    Return

    Current Object

    Exception

    None

    CameraManager getInstance(int cameraId)

    Get camera instance

    Parameter

    Return

    Current Object

    Exception

    None

    CameraManager setDisplayOrientation(int degree)

    Set Preview Degree, 0/90/180/270 selectable

    Parameter

    Return

    Current Object

    Exception

    None

    CameraManager setPreviewTexture(SurfaceTexture texture)

    Set Preview Texture

    Parameter

    Return

    Current Object

    Exception

    None

    List getSupportedPreviewSizes()

    Get the List of Supported Preview Sizes

    Parameter

    None

    Return

    Exception

    None

    void initParameters(int width, int height, int degree, SurfaceTexture surfaceTexture)

    Camera Initialization

    Parameter

    Return

    None

    Exception

    None

    void openCamera(Context context)

    Open Camera

    Parameter

    Return

    None

    Exception

    None

    void releaseCamera()

    Release Camera

    Parameter

    None

    Return

    None

    Exception

    None

    void startPreview()

    Start Camera Preview

    Parameter

    None

    Return

    None

    Exception

    None

    void stopPreview()

    Stop Camera Preview

    Parameter

    None

    Return

    None

    Exception

    None

    Description of Entities

    None

    カメラ

    カメラへクイックアクセスするインスタンスや、プレビューデータを取得するインターフェースを提供します。カメラのライフサイクルを管理するメソッドがカプセル化されており、カメラステータスの監視がサポートされます。

    機能類の説明

    CameraManager

    カメラを操作するメインメソッド

    {
      "engineVersion": "0.0.1",//Engine version
      "modelVersion": "0.0.1", //Model version
      "deviceType": "sps", // Device type
      "properties": [/*... */], // Function configuration items
      "status": [/*...*/]// Device peripheral status
    }
    {
      "properties": [{
        "name": "group-name",
        "fields": [{ // Collection of configuration items
          "key": { // Description of the name of configuration items
            "name": "product_customer", // Name
            "desc": "vendor-customer" // used to describe name, with no real purpose
          },
          "value": {} // Description of optional values for configuration items
          ]
       }]
    }
    {
      "versionInfo": {
        "version": "0.0.1",
        "log": "",
        "updated": "2020-04-21 12:00:00"
      },
      "common": {
        "modelVersion": "Device model version"
      },
      "deviceTypes": {
        "sps": "SensePass"
      },
      "groups": {
        "general": "General Settings"
      },
      "fields": {
        "identify_mode": "identify_mode"
      },
      "values": {
        "enable": "Enable",
        "disable": "Disable"
      },
      "status": {
        "door_status": "Magnetism Status"
      }
    }
    {
      "engineVersion": "0.0.1",//Engine version
      "modelVersion": "0.0.1", //Model version
      "deviceType": "sps",
      "properties": [{
        "name": "features",
        "fields": [{
          "key": {
            "name": "identify_mode",
            "desc": "Enabled State"
          },
          "value": {
            "required": true, // required or not. It’s non-required by default if not set.
            "type": "int", //data type, must be set, including numeric, boolean, and string.
            "editable": true, // Editable or not. It cannot be edited by default if not set, 
            /*
            ** UI components must be set with the following types
            *** Number picker number
            *** Drop-down box select
            *** Multi-select box checkbox
            *** Radio button radio
            *** Time picker date
            *** Single line text input text
            *** Multi-line text input textarea
            *** Image upload and display image
            *** Default is text
            */
            "ui": "select",
            "ranges": [{
              "min": 1,
              "max": 2,
              "enable": "{open_way}==2", //js expression string or boolean value. It is enabled by default if not set. The fields in curly braces indicate the value to be replaced, e.g. if the open_way value is 2, the expression is parsed as "2==2".
              "default": 1.5
            },{
              "min": 3,
              "max": 4,
              "enable": "{open_way}==3",//js expression string or Boolean value. It is enabled by default if not set.
              "default": 3.5
            }],
            "step": 0.5,// Step size, only for values
            "precision": 1, // Precision, indicates the exact number of decimal places, non-negative integer, and works only for numeric values, not required
            "mult": true, //multiple-choice or not, not required. The passing parameter is a single value by default if it’s not set. Multiple values only work for dropdown and multi-select boxes.
            "enable": "{open_way}==1", // js expression string or boolean value, not required, indicates the display and hiding of the field via linkage control. If the enable property is not set, it is available by default.
            "size": 20, // string length, not required, only works for string and image base64
            "timeFormat": "yyyy-MM-dd HH:mm:ss", //if ui is date, the time format must be filled in. hh means 12 hours, HH means 24 hours
            "options": [{
              "value": 0,
              "name": "off",
              "enable": "{open_way}==2", // js expression string or boolean value. Returns true, indicating that the selected value can be used in the candidate item. If the enable property is not set, it is available by default.
            }, {
              "value": 1,
              "name": "on", // js expression string or boolean value. Returns true, indicating that the selected value can be used in the candidate item. If the enable property is not set, it is available by default.
              "enable": "{open_way}==3"
            }],
            //watch: indicates status listening
            /*
            ** The following example indicates that the value of the current field is associated with the use_mode field.
            ** When the use_mode field changes, the value of the current field is equal to the value after the expression is executed "{use_mode}==2?1.5:{use_mode}==1?2:{recognition_distance}"
            */
            "watch":{
              "use_mode": "{use_mode}==2?1.5:{use_mode}==1?2:{recognition_distance}"
            }
          },
        }]
      }],
      "status": [{
        "name": "wifi",
        "enable": true, // js expression string or boolean value. Controls the display condition of this field. If the enable property is not set, it is available by default.
        "options": [{
          "value": 0,
          "name": "off",
          "enable": "{open_way}==2", // js expression string or boolean value. Returns true, indicating that the selected value can be used in the candidate item. If the enable property is not set, it is available by default.
        },{
          "value": 1,
          "name": "on",
          "enable": "{open_way}==1", // js expression string or boolean value. Returns true, indicating that the selected value can be used in the candidate item. If the enable property is not set, it is available by default.
        }],
      }]
    }
    // Initialize   
    LinkSDKHelper.getInstance().init(“https://link.japancv.co.jp/sl/”, this)
             .setConnectTimeout(10 * 1000)
             .setReadTimeout(30 * 1000)
             .setWriteTimeout(10 * 1000)
             .setLanguage(LinkSDKHelper.LanguageTypeEnum.ZH)  // Set the language of return information from the server
             .addInterceptor(new ResponseInterceptor())  // Set interceptors
             .setDebug(true);
        // Parameter entity class
        RecordParameter recordParameter = new RecordParameter();
        recordParameter.setUserId(2547);
        recordParameter.setMode(2);
        recordParameter.setSignTime((int) (System.currentTimeMillis() / 1000));
        recordParameter.setType(1);
        recordParameter.setInTime(0);
        recordParameter.setEntryMode(1);
        Bitmap bitmap = BitmapFactory.decodeStream(mAppContext.getAssets().open("test.jpg"));
        recordParameter.setUsername("testUserName");
        // Error occurs when uploading incorrect base64 string
        recordParameter.setSignBgAvatar(Base64Utils.bitmapToBase64(bitmap));
        recordParameter.setSignAvatar(Base64Utils.bitmapToBase64(bitmap));
        recordParameter.setDocPhoto(Base64Utils.bitmapToBase64(bitmap));
        recordParameter.setIcNumber("235113");
        recordParameter.setIdNumber("460003199809086744");
    
        // Call the encapsulated method to execute the specific request. Result refers to the unified wrapper class for the result of the request
        Result<RecordResult> recordResultResult = HttpApiClient.uploadRecord(recordParameter);
        if(recordResultResult.isSuccess()){
            // Get the request result data and process it, RecordResult refers to the entity class of the request result data
                RecordResult body = recordResultResult.getBody(RecordResult.class);
            // todo: the execution of specific operations
      } else {
              // Request exception. Please see the SenseLink API documentation for details
      }
    }
    // Request parameters
    // Synchronize method calls, which need to be executed in the work thread
    Result<LoginResult> loginResult = HttpApiClient.login(
                                      "account", "password", "SPS", AppUtils.getAndroidId(ContextUtils.getContext()));
    int userId = 5;
    Result result = HttpApiClient.getUserInfo(userId);
    MqttApiClient.connectMqtt(new IMqttActionListener() {
    
         @Override
         public void onSuccess(IMqttToken iMqttToken) {
           // Connection successful
         }
    
         @Override
         public void onFailure(IMqttToken iMqttToken, Throwable throwable) {
           // Connection failed
         }
    
       }, new IConnectionLost() {
    
         @Override
         public void onConnectionLost(Throwable cause) {
                  // Connection lost
         }
    });
        // Subscribe to the personnel group change
        MqttApiClient.registerGroupChangeListener(new MessageCallback() {
    
           @Override
           public void success(MqttMessage msg) {
    
                     // json data is the body of the push message.
                      String json = new String(msg.getPayload());
                  // Delete the device in the background and push an empty string without processing.
                if (TextUtils.isEmpty(json)) {
                        return;
                }
    
                // Get the data. Group class is the entity class corresponding to the message data.
                Pair<List<Group>, Boolean> pushGroupList = 
                                              DataConverter.convertJsonToGroupList(json);
                // Process data according to specific business
             }
    
           @Override
           public void error(int code, String msg, Throwable throwable) {
                             // Subscription exceptions / Message push exceptions
           }
        });
        MqttApiClient.unRegisterGroupChangeListener();

    2.0.0

    CameraManager setPreviewTexture(SurfaceTexture texture)

    set Preview Texture

    2.0.0

    List getSupportedPreviewSizes()

    get the Preview Size Supported by the Camera

    2.0.0

    void initParameters(int width, int height, int degree, SurfaceTexture surfaceTexture)

    Camera Initialization

    2.0.0

    void openCamera(Context context)

    open Camera

    2.0.0

    void releaseCamera()

    release Camera

    2.0.0

    void startPreview()

    start Preview

    2.0.0

    void stopPreview()

    stop Preview

    2.0.0

    degree

    int

    Preview Degree: 0,90,180,270

    None

    2.0.0

    surfaceTexture

    SurfaceTexture

    Preview Texture

    None

    2.0.0

    Member Function

    Description

    Version Introduced

    CameraManager removePreviewCallbackWithBuffer(PreviewCallback callback)

    remove preview data callback

    2.0.0

    CameraManager addPreviewCallbackWithBuffer(PreviewCallback callback)

    add preview data callback

    2.0.0

    CameraManager getInstance(int cameraId)

    get camera instance

    2.0.0

    CameraManager setDisplayOrientation(int degree)

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    callback

    PreviewCallback

    Preview Data Callback

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    callback

    PreviewCallback

    Preview Data Callback

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    cameraId

    int

    Camera Index

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    degree

    int

    Degree, 0/90/180/270 selectable

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    texture

    SurfaceTexture

    Preview Texture

    None

    2.0.0

    Returned Value

    Description

    Version introduced

    List

    List of Supported Preview Sizes

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    width

    int

    Preview Width

    None

    2.0.0

    height

    int

    Preview Height

    None

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    context

    Context

    Context

    None

    2.0.0

    set Preview Degree

    2.0.0

    メンバー関数

    説明

    導入バージョン

    CameraManager removePreviewCallbackWithBuffer(PreviewCallback callback)

    プレビューデータコールバックを削除

    2.0.0

    CameraManager addPreviewCallbackWithBuffer(PreviewCallback callback)

    プレビューデータコールバックを追加

    2.0.0

    CameraManager getInstance(int cameraId)

    カメラインスタンスを取得

    2.0.0

    CameraManager setDisplayOrientation(int degree)

    プレビュー角度を設定

    メンバー関数の説明

    CameraManager addPreviewCallbackWithBuffer(PreviewCallback callback)

    プレビューデータコールバックを追加

    パラメータ

    パラメータ名

    型

    説明

    備考

    導入バージョン

    callback

    PreviewCallback

    プレビューデータコールバック

    なし

    2.0.0

    戻り値

    Current Object

    例外

    なし

    CameraManager removePreviewCallbackWithBuffer(PreviewCallback callback)

    プレビューデータコールバックを削除

    パラメータ

    パラメータ名

    型

    説明

    備考

    導入バージョン

    callback

    PreviewCallback

    プレビューデータコールバック

    なし

    2.0.0

    戻り値

    Current Object

    例外

    なし

    CameraManager getInstance(int cameraId)

    カメラインスタンスを取得

    パラメータ

    パラメータ名

    型

    説明

    備考

    導入バージョン

    cameraId

    int

    カメラインデックス

    なし

    2.0.0

    戻り値

    Current Object

    例外

    なし

    CameraManager setDisplayOrientation(int degree)

    プレビューの角度を設定。0,90,180,270を選択可能

    パラメータ

    パラメータ名

    型

    説明

    備考

    導入バージョン

    degree

    int

    角度は0,90,180,270を選択可能

    なし

    2.0.0

    戻り値

    Current Object

    例外

    なし

    CameraManager setPreviewTexture(SurfaceTexture texture)

    プレビューテクスチャーを設定

    パラメータ

    パラメータ名

    型

    説明

    備考

    導入バージョン

    texture

    SurfaceTexture

    プレビューテクスチャー

    なし

    2.0.0

    戻り値

    Current Object

    例外

    なし

    List getSupportedPreviewSizes()

    サポートされるプレビューサイズリストを取得

    パラメータ

    なし

    戻り値

    戻り値

    説明

    導入バージョン

    List

    サポートされるプレビューサイズリスト

    2.0.0

    例外

    なし

    void initParameters(int width, int height, int degree, SurfaceTexture surfaceTexture)

    カメラの初期化

    パラメータ

    パラメータ名

    型

    説明

    備考

    導入バージョン

    width

    int

    プレビューの幅

    なし

    2.0.0

    height

    int

    プレビューの高さ

    なし

    戻り値

    なし

    例外

    なし

    void openCamera(Context context)

    カメラをオンにする

    パラメータ

    パラメータ名

    型

    説明

    備考

    導入バージョン

    context

    Context

    Context

    なし

    2.0.0

    戻り値

    なし

    例外

    なし

    void releaseCamera()

    カメラを解放

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void startPreview()

    カメラプレビューを開始

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void stopPreview()

    カメラプレビューを停止

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    エンティティの説明

    なし

    2.0.0

    CameraManager setPreviewTexture(SurfaceTexture texture)

    プレビューテクスチャーを設定

    2.0.0

    List getSupportedPreviewSizes()

    カメラにサポートされるプレビューサイズを取得

    2.0.0

    void initParameters(int width, int height, int degree, SurfaceTexture surfaceTexture)

    カメラを初期化

    2.0.0

    void openCamera(Context context)

    カメラをオンに

    2.0.0

    void releaseCamera()

    カメラを解放

    2.0.0

    void startPreview()

    プレビューを開始

    2.0.0

    void stopPreview()

    プレビューを終了

    2.0.0

    2.0.0

    degree

    int

    プレビューの角度:0,90,180,270

    なし

    2.0.0

    surfaceTexture

    SurfaceTexture

    プレビューのテクスチャー

    なし

    2.0.0

    LinkSDKHelper

    Initialize LinkSDK, set network request parameters

    LinkSDKHelper

    Member Function

    Description

    Version Introduced

    boolean isCAVerify()

    get CA Verification

    Description of Member Function

    boolean isCAVerify()

    Get CA Verification

    Parameter

    None

    Return

    Exception

    None

    int getConnectTimeout()

    Get Connect Timeout

    Parameter

    None

    Return

    Connect Timeout (millisecond precision)

    Exception

    None

    int getReadTimeout()

    Get Read Timeout

    Parameter

    None

    Return

    Read Timeout (millisecond precision)

    Exception

    None

    int getWriteTimeout()

    Get Write Timeout

    Parameter

    None

    Return

    Write Timeout (millisecond precision)

    Exception

    No

    LinkSDKHelper addInterceptor(Interceptor interceptor)

    Add Interceptor

    Parameter

    Return

    Current Object

    Exception

    None

    LanguageTypeEnum getLanguageType()

    Get Language Type

    Parameter

    None

    Return

    LanguageTypeEnum

    Exception

    None

    LinkSDKHelper init(String url,Context context)

    Initialize

    Parameter

    Return

    Current Object

    Exception

    None

    LinkSDKHelper setUrl(String url)

    Set URL

    Parameter

    Return

    Current Object

    Exception

    None

    LinkSDKHelper setCAVerify(boolean caVerify)

    set CA Verification

    Parameter

    Return

    Current Object

    Exception

    None

    LinkSDKHelper setConnectTimeout(int connectTimeout)

    Set Connect Timeout

    Parameter

    Return

    Current Object

    Exception

    None

    LinkSDKHelper setReadTimeout(int readTimeout)

    Set read timeout

    Parameter

    Return

    Current Object

    Exception

    None

    LinkSDKHelper setWriteTimeout(int writeTimeout)

    Set Write timeout

    Parameter

    Return

    Current Object

    Exception

    None

    LinkSDKHelper setInterceptorList(List interceptorList)

    BatchAdd interceptors

    Parameter

    Return

    Current Object

    Exception

    None

    List getInterceptorList()

    Get Interceptor List

    Parameter

    None

    Return

    Interceptor List

    Exception

    None

    LinkSDKHelper setLanguage(LanguageTypeEnum type)

    Set Language Type

    Parameter

    Return

    Current Object

    Exception

    None

    String getUrl()

    Get URL

    Parameter

    None

    Return

    Server Address

    Exception

    None

    2.0.0

    int getConnectTimeout()

    get Connect Timeout

    2.0.0

    int getReadTimeout()

    get Read Timeout

    2.0.0

    int getWriteTimeout()

    get Write Timeout

    2.0.0

    LinkSDKHelper addInterceptor(Interceptor interceptor)

    add Interceptor

    2.0.0

    LanguageTypeEnum getLanguageType()

    get Language Type

    2.0.0

    LinkSDKHelper init(String url,Context context)

    Initialization

    2.0.0

    LinkSDKHelper setUrl(String url)

    Set URL

    2.0.0

    LinkSDKHelper setCAVerify(boolean caVerify)

    set CA Verification

    2.0.0

    LinkSDKHelper setConnectTimeout(int connectTimeout)

    set Connect Timeout

    2.0.0

    LinkSDKHelper setReadTimeout(int readTimeout)

    set Read Timeout

    2.0.0

    LinkSDKHelper setWriteTimeout(int writeTimeout)

    set Write Timeout

    2.0.0

    LinkSDKHelper setInterceptorList(List interceptorList)

    Batch Add Interceptor

    2.0.0

    List getInterceptorList()

    get Interceptor List

    2.0.0

    LinkSDKHelper setLanguage(LanguageTypeEnum type)

    set Language Type

    2.0.0

    String getUrl()

    Get URL

    2.0.0

    Returned Value

    Description

    Version Introduced

    true

    All network connections will verify the CA certificate

    2.0.0

    false

    All network connections will not verify the CA certificate

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    interceptor

    Interceptor

    Interceptor

    okhttp Interceptor

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    url

    String

    server address

    None

    2.0.0

    context

    Context

    Context

    None

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    url

    String

    server address

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    caVerify

    boolean

    set CA Verification

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    connectTimeout

    int

    Connect Timeout

    millisecond precision

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    readTimeout

    int

    read Timeout

    millisecond precision

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    writeTimeout

    int

    write Timeout

    millisecond precision

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    interceptorList

    List

    Interceptor List

    Okhttp Interceptor

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    type

    LanguageTypeEnum

    Language Type

    None

    2.0.0

    2.0.0

    SDK オーソライゼーション

    Thunder SDKの初期化とオーソライゼーション

    機能類の説明

    WuKong

    メンバー関数の説明

    void init (Context context)

    初期化

    パラメータ

    戻り値

    なし

    例外

    なし

    void auth (String licFileName, boolean isLeafLic, String productName, PassModel modelConfig, IAuthCallback authCallback)

    オーソライゼーション

    パラメータ

    戻り値

    なし

    例外

    なし

    void release ()

    SDKリソースを解放

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    productName

    String

    デバイスプロダクト名

    なし

    2.0.0

    modelConfig

    PassModel

    モデル構成

    なし

    2.0.0

    authCallback

    IAuthCallback

    オーソライゼーションコールバック

    なし

    2.0.0

    メンバー関数

    説明

    導入バージョン

    void init(Context context)

    初期化

    2.0.0

    void auth(String licFileName, boolean isLeafLic, String productName, PassModel modelConfig,IAuthCallback authCallback)

    オーソライゼーション

    2.0.0

    void release()

    SDKリソースの解放

    2.0.0

    パラメータ名

    型

    説明

    備考

    導入バージョン

    context

    Context

    context object

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    licFileName

    String

    ライセンスファイル名

    なし

    2.0.0

    isLeafLic

    boolean

    リーフライセンスであるかを判定

    なし

    2.0.0

    Thermal imaging system

    Used in traffic scenes, support Thermal imaging system preview and get the data recall, manage its the lifecycle, monitor its status, and auto co

    Description of functional types

    TemperatureCameraFactory

    Get different instances for Thermal imaging system

    Description of Member Function

    ITemperatureCamera getTemperatureCamera(CameraType type)

    Get Thermal imaging system

    Parameter

    Return

    ITemperatureCamera

    Current Type

    Exception

    None

    ITemperatureCamera

    Operate Thermal imaging system

    Description of Member Function

    boolean matrixTemperature(float[] y16Frame, int y16W, int y16H, float distance, int x, int y, int w, int h, float[] tempArray)

    Batch Conversion of Temperature

    Parameter

    Return

    Exception

    None

    float getCentigradeFromTemperatureData(float temperatureData)

    Get Centigrade from Temperature Data

    Parameter

    Return

    Centigrade Value

    Exception

    None

    float getCameraBodyTemperature()

    Get Camera Body Temperature

    Parameter

    None

    Return

    Camera Body Temperature

    Exception

    None

    void addTemperaturePreviewDataCallback(ITemperaturePreviewDataCallback callback)

    Add Thermal imaging system Preview Data Callback

    Parameter

    Return

    None

    Exception

    None

    void initCamera(Context context)

    Initialize Thermal imaging system

    Parameter

    Return

    None

    Exception

    None

    void releaseCamera()

    Release Thermal imaging system

    Parameter

    None

    Return

    None

    Exception

    None

    void removeTemperaturePreviewDataCallback(ITemperaturePreviewDataCallback callback)

    Remove Temperature Preview Data Callback

    Parameter

    Return

    None

    Exception

    None

    void startPreview(TextureView textureView)

    Start Preview

    Parameter

    Return

    None

    Exception

    None

    void stopPreview()

    Stop Preview

    Parameter

    None

    Return

    None

    Exception

    None

    void setConfig(TemperatureCameraConfig config)

    Thermal imaging system Configuration

    Parameter

    Return

    None

    Exception

    None

    void setAutoShutterEnable(boolean enable)

    Set Auto Shutter Enable

    Parameter

    Return

    None

    Exception

    None

    void shutter()

    Open Shutter

    Parameter

    None

    Return

    None

    Exception

    None

    Description of Entities

    ITemperaturePreviewDataCallback

    Preview Data Callback

    Description of Method

    void onTemperaturePreviewData(Bitmap temperatureBitmap, float[] temperatureValue, int width, int height)

    Temperature Preview Data Callback: Thermal imaging system outputs the image orientation as the same as its phisical orientation. For example, the human face will output with the vertical orientation.

    Parameter

    TemperatureCameraConfig

    Thermal imaging system Configuration

    Description of Properties

    CameraType

    Thermal imaging system Type(Enumeration Type)

    Description of Properties

    サーマルイメージングシステム

    通行管理において利用されるサーモグラフィーの属性を抽出したもので、サーモグラフィーのプレビューとデータのリコールを取得し、ライフスタイルの管理やステータス監視など、ホットプラグ後の自動接続をサポート

    機能類の説明

    TemperatureCameraFactory

    サーマルイメージングシステムの異なるインスタンスを取得

    2.0.0

    void initCamera(Context context)

    Initialize the Thermal imaging system

    2.0.0

    void releaseCamera()

    release Thermal imaging system

    2.0.0

    void removeTemperaturePreviewDataCallback

    (ITemperaturePreviewDataCallback callback)

    remove Thermal imaging system Preview Data Callback

    2.0.0

    void startPreview(TextureView textureView)

    start Thermal imaging system Preview

    2.0.0

    void stopPreview()

    stop Thermal imaging system Preview

    2.0.0

    void setConfig(TemperatureCameraConfig config)

    Configure Thermal imaging system

    2.0.0

    void setAutoShutterEnable(boolean enable)

    set Auto Shutter Enable

    2.0.0

    void shutter()

    Shutter

    2.0.0

    y16H

    int

    Original Temperature Chart Height

    None

    2.0.0

    distance

    float

    Real Temperature Measurement Distance

    None

    2.0.0

    x

    int

    the Starting x Coordinate to be Converted

    None

    2.0.0

    y

    int

    the Starting y Coordinate to be Converted

    None

    2.0.0

    w

    int

    Width to be Converted

    None

    2.0.0

    h

    int

    Height to be Converted

    None

    2.0.0

    tempArray

    float[]

    Converted Temperature Array, size is w*h

    None

    2.0.0

    width

    int

    Temperature Data Width

    None

    2.0.0

    height

    int

    Temperature Data Height

    None

    2.0.0

    transmittance

    float

    Atmospheric Transmissivity

    None

    2.0.0

    emissity

    float

    Emissivity

    None

    2.0.0

    None

    2.0.0

    Member Function

    Description

    Version introduced

    ITemperatureCamera getTemperatureCamera(CameraType type)

    Get instances for Thermal imaging system

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version introduced

    type

    CameraType

    Thermal imaging system Type

    None

    2.0.0

    Member Function

    Description

    Version introduced

    boolean matrixTemperature(float[] y16Frame, int y16W, int y16H, float distance, int x, int y, int w, int h, float[] tempArray)

    Batch Conversion of Temperature

    2.0.0

    float getCentigradeFromTemperatureData(float temperatureData)

    Calculate the Actual Temperature from the Temperature Data

    2.0.0

    float getCameraBodyTemperature()

    get Camera Body Temperature

    2.0.0

    void addTemperaturePreviewDataCallback

    (ITemperaturePreviewDataCallback callback)

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    y16Frame

    float[]

    Original Temperature Chart

    None

    2.0.0

    y16W

    int

    Original Temperature Chart Width

    None

    Returned Value

    Description

    Version Introduced

    true

    Converted

    2.0.0

    false

    Not Convered

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    temperatureData

    float

    Temperature Data on Each Pixel, Such as Energy Value

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    callback

    ITemperaturePreviewDataCallback

    Preview Data Callback

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    context

    Context

    Context

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    callback

    ITemperaturePreviewDataCallback

    Temperature Preview Data Callback

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    textureView

    TextureView

    Android System Native (Used for Data Processing)

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    config

    TemperatureCameraConfig

    Thermal imaging system Configuration

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    enable

    boolean

    Set Auto Shutter Enable

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    temperatureBitmap

    Bitmap

    Temperature rgb Picture

    None

    2.0.0

    temperatureValue

    float[]

    Temperature Data

    None

    Member

    Type

    Description

    Note

    Version Introduced

    environmentTemperature

    float

    Environment Temperature

    None

    2.0.0

    distance

    float

    Temperature Measurement Distance

    None

    Member

    Description

    Note

    Version Introduced

    IRAY

    IRAY

    None

    2.0.0

    GUIDE120

    GUIDE120

    None

    2.0.0

    GUIDE256

    add Thermal imaging system Preview Data Callback

    2.0.0

    2.0.0

    2.0.0

    GUIDE256

    メンバー関数

    説明

    導入バージョン

    ITemperatureCamera getTemperatureCamera(CameraType type)

    サーマルイメージングシステムのインスタンスを取得

    2.0.0

    メンバー関数の説明

    ITemperatureCamera getTemperatureCamera(CameraType type)

    サーマルイメージングシステムを取得

    パラメータ

    パラメータ名

    型

    説明

    備考

    導入バージョン

    type

    CameraType

    サーマルイメージングシステムのタイプ

    なし

    2.0.0

    戻り値

    ITemperatureCamera

    Current Type

    例外

    なし

    ITemperatureCamera

    サーマルイメージグングシステムを操作

    メンバー関数

    説明

    導入バージョン

    boolean [matrixTemperature](float[] y16Frame, int y16W, int y16H, float distance, int x, int y, int w, int h, float[] tempArray)

    温度のバッチ変換

    2.0.0

    float [getCentigradeFromTemperatureData](float temperatureData)

    温度データから実際温度を計算

    2.0.0

    float [getCameraBodyTemperature]()

    サーモグラフィー本体の温度を取得

    2.0.0

    void [addTemperaturePreviewDataCallback](ITemperaturePreviewDataCallback callback)

    メンバー関数の説明

    boolean matrixTemperature(float[] y16Frame, int y16W, int y16H, float distance, int x, int y, int w, int h, float[] tempArray)

    温度のバッチ変換

    パラメータ

    パラメータ名

    型

    説明

    備考

    導入バージョン

    y16Frame

    float[]

    オリジナル温度図

    なし

    2.0.0

    y16W

    int

    オリジナル温度図の幅

    なし

    戻り値

    戻り値

    説明

    導入バージョン

    true

    変換されました

    2.0.0

    false

    変換されませんでした

    2.0.0

    例外

    なし

    float getCentigradeFromTemperatureData(float temperatureData)

    温度データからセ氏温度数値を取得

    パラメータ

    パラメータ名

    型

    説明

    備考

    導入バージョン

    temperatureData

    float

    エネルギー値など各ピクセルでの温度データ

    なし

    2.0.0

    戻り値

    セ氏温度数値

    例外

    なし

    float getCameraBodyTemperature()

    サーモグラフィ本体の温度を取得

    パラメータ

    なし

    戻り値

    カメラ本体温度

    例外

    なし

    void addTemperaturePreviewDataCallback(ITemperaturePreviewDataCallback callback)

    サーマルイメージングシステムのプレビューデータコールバックを追加

    パラメータ

    パラメータ名

    型

    説明

    備考

    導入バージョン

    callback

    ITemperaturePreviewDataCallback

    プレビューデータコールバック

    なし

    2.0.0

    戻り値

    なし

    例外

    なし

    void initCamera(Context context)

    サーマルイメージングシステムを初期化

    パラメータ

    パラメータ名

    型

    説明

    備考

    導入バージョン

    context

    Context

    Context

    なし

    2.0.0

    戻り値

    なし

    例外

    なし

    void releaseCamera()

    サーマルイメージングシステムを解放

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void removeTemperaturePreviewDataCallback(ITemperaturePreviewDataCallback callback)

    サーマルイメージングシステムのプレビューデータのコールバックを削除

    パラメータ

    パラメータ名

    型

    説明

    備考

    導入バージョン

    callback

    ITemperaturePreviewDataCallback

    サーマルイメージングシステムのプレビューデータのコールバック

    なし

    2.0.0

    戻り値

    なし

    例外

    なし

    void startPreview(TextureView textureView)

    プレビューを開始

    パラメータ

    パラメータ名

    型

    説明

    備考

    導入バージョン

    textureView

    TextureView

    Androidシステムネイティブ(データプロセッシング用)

    なし

    2.0.0

    戻り値

    なし

    例外

    なし

    void stopPreview()

    サーマルイメージングシステムのプレビューを停止

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void setConfig(TemperatureCameraConfig config)

    サーマルイメージングシステムを構成

    パラメータ

    パラメータ名

    型

    説明

    備考

    導入バージョン

    config

    TemperatureCameraConfig

    サーマルイメージングシステム構成

    なし

    2.0.0

    戻り値

    なし

    例外

    なし

    void setAutoShutterEnable(boolean enable)

    自動シャッターオンを設定

    パラメータ

    パラメータ名

    型

    説明

    備考

    導入バージョン

    enable

    boolean

    自動シャッターオン設定

    なし

    2.0.0

    戻り値

    なし

    例外

    なし

    void shutter()

    シャッターをオン

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    エンティティの説明

    ITemperaturePreviewDataCallback

    プレビューデータのコールバック

    メソッドの説明

    void onTemperaturePreviewData(Bitmap temperatureBitmap, float[] temperatureValue, int width, int height)

    温度データプレビューのコールバック。サーマルイメージングシステムは物理方向と同じ画像方向を出力。例:顔写真は縦方向になります。

    パラメータ

    パラメータ名

    型

    説明

    備考

    導入バージョン

    temperatureBitmap

    Bitmap

    温度のRGB画像

    なし

    2.0.0

    temperatureValue

    float[]

    温度データ

    なし

    TemperatureCameraConfig

    サーマルイメージングを構成

    プロパティの説明

    Member

    型

    説明

    備考

    導入バージョン

    environmentTemperature

    float

    環境温度

    なし

    2.0.0

    distance

    float

    温度測定の距離

    なし

    CameraType

    サーマルイメージングシステムの型(列挙型)

    プロパティの説明

    Member

    説明

    備考

    導入バージョン

    IRAY

    IRAY

    なし

    2.0.0

    GUIDE120

    GUIDE120

    なし

    2.0.0

    GUIDE256

    サーマルイメージングシステムのプレビューデータコールバックを追加

    2.0.0

    void [initCamera](Context context)

    サーマルイメージングシステムを初期化

    2.0.0

    void [releaseCamera]()

    サーマルイメージングシステムを解放

    2.0.0

    void [removeTemperaturePreviewDataCallback](ITemperaturePreviewDataCallback callback)

    サーマルイメージングシステムのプレビューデータコールバックを削除

    2.0.0

    void [startPreview](TextureView textureView)

    サーマルイメージングシステムのプレビューを開始

    2.0.0

    void [stopPreview]()

    サーマルイメージングシステムのプレビューを停止

    2.0.0

    void [setConfig](TemperatureCameraConfig config)

    サーマルイメージングシステムを構成

    2.0.0

    void [setAutoShutterEnable](boolean enable)

    自動シャッターオンを設定

    2.0.0

    void [shutter]()

    シャッターをオン

    2.0.0

    2.0.0

    y16H

    int

    オリジナル温度図の高さ

    なし

    2.0.0

    distance

    float

    実際の温度測定距離

    なし

    2.0.0

    x

    int

    変換する開始x座標

    なし

    2.0.0

    y

    int

    変換する開始y座標

    なし

    2.0.0

    w

    int

    変換する幅

    なし

    2.0.0

    h

    int

    変換する高さ

    なし

    2.0.0

    tempArray

    float[]

    変換された温度配列で、サイズはw*h

    なし

    2.0.0

    2.0.0

    width

    int

    温度データの幅

    なし

    2.0.0

    height

    int

    温度データの高さ

    なし

    2.0.0

    2.0.0

    transmittance

    float

    大気通過率

    なし

    2.0.0

    emissity

    float

    放射率

    なし

    2.0.0

    GUIDE256

    なし

    2.0.0

    温度検知

    温度検知のアルゴリズムと計算

    クラスの説明

    TemperatureActionProxy

    メンバー関数の説明

    int init(int algorithmVersion,TemperConvertCallback temperConvertCallback )

    温度検知のアルゴリズムを初期化

    パラメータ

    戻り値

    初期化が成功した場合に0を返す。そうでない場合は負の値を返す

    例外

    なし

    TemperInfo temperCalculateObtainRect(FaceInfo faceInfo, float[] imageData, int width, int height, int orient, float envTemper, float topN)

    温度を計算

    パラメータ

    戻り値

    計算が成功した場合に温度数値とリジョン(温度検知するための顔の枠範囲)を返す。そうでない場合はnullを返す

    例外

    なし

    TemperInfo[] multiTemperCalculate(MatchFace[] matchFaces, float[] temperatureData,int temperatureWidth, int temperatureHeight, float envTemper, int orient, float topN)

    温度を計算

    パラメータ

    戻り値

    計算が成功した場合に温度数値と結果配列を返す。そうでない場合はnull配列を返す

    例外

    なし

    void release()

    温度検知リソースを解放

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    width

    int

    画像の幅

    なし

    2.0.0

    height

    int

    画像の高さ

    なし

    2.0.0

    orient

    int

    顔の向き

    なし

    2.0.0

    envTemper

    float

    環境温度

    なし

    2.0.0

    topN

    float

    顔の情報(温度検知モデルは顔でのポイントを基に温度を検知。topNは比例数値であり、Inputが100%、50%のようなfloat値)

    なし

    2.0.0

    temperatureWidth

    int

    図の幅

    なし

    2.0.0

    temperatureHeight

    int

    図の高さ

    なし

    2.0.0

    orient

    int

    顔の向き

    なし

    2.0.0

    envTemper

    float

    環境温度

    なし

    2.0.0

    topN

    float

    顔の情報

    なし

    2.0.0

    メンバー関数

    説明

    導入バージョン

    int init(int algorithmVersion,iTemperConvertCallback temperConvertCallback )

    温度検知のアルゴリズムを初期化

    2.0.0

    TemperInfo temperCalculateObtainRect(FaceInfo faceInfo, float[] imageData, int width, int height, int orient, float envTemper, float topN)

    Sensepass、SenseThunderE、 SenseThunderE-miniで個別に温度を測定

    2.0.0

    TemperInfo multiTemperCalculate(MatchFace[] matchFaces, float[] temperatureData,int temperatureWidth, int temperatureHeight, float envTemper, int orient, float topN)

    SenseThunderAirで複数人に温度を測定

    2.0.0

    void release()

    温度検知リソースを解放

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    algorithmVersion

    int

    アルゴリズムのバージョン

    なし

    2.0.0

    temperConvertCallback

    TemperConvertCallback

    温度測定のコールバック

    なし

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    faceInfo

    FaceInfo

    顔情報

    なし

    2.0.0

    imageData

    float[]

    画像データ

    なし

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    MatchFace[]

    matchFaces

    マッチした情報配列

    なし

    2.0.0

    temperatureData

    float[]

    図データ

    なし

    2.0.0

    2.0.0

    2.0.0

    HttpApiClient

    HTTPインターフェースの実装

    HttpApiClient

    メンバー関数

    説明

    導入バージョン

    byte[] getImage(int type, String imageId)

    画像データを取得

    2.0.0

    メンバー関数の説明

    byte[] getImage(int type, String imageId)

    図データを取得

    パラメータ

    戻り値

    画像データ

    例外

    なし

    ConnectConfigEntity getConnectConfigEntity()

    現在接続構成を取得

    パラメータ

    なし

    戻り値

    ConnectConfigEntity

    例外

    なし

    Result alarmReport(AlarmReportParameter reportParameter)

    アラートをレポート

    パラメータ

    戻り値

    Result

    例外

    なし

    Result bindDefaultGroup()

    デフォルトグループをバンドル

    パラメータ

    なし

    戻り値

    Result

    例外

    なし

    Result checkPasswordUseLoginInterface(String password)

    パスワードを検証

    パラメータ

    戻り値

    Result

    例外

    なし

    Result checkTslExist(String md5)

    Tslが存在するかをチェック

    パラメータ

    戻り値

    Result<TslCheckExistResult>

    例外

    なし

    Result checkTslLanguageExist(String lang)

    Tslの言語パッケージが存在するかをチェック

    パラメータ

    戻り値

    Result<TslLanguageCheckExistResult>

    例外

    なし

    Result faceSearch(FaceSearchParameter searchParameter)

    サーバの識別

    パラメータ

    戻り値

    Result<FaceSearchResult>

    例外

    なし

    Result> getGroupIndexList()

    当該デバイスにバンドルされるグループインデックスリストを取得

    パラメータ

    なし

    戻り値

    Result<GroupIndex>

    例外

    なし

    Result> getUserIndexList(int groupId)

    グループでのユーザーインデックスリストを取得

    パラメータ

    なし

    戻り値

    Result>

    例外

    なし

    Result> getUserInfoList(UserInfoParameter parameter)

    ユーザー情報リストを取得

    パラメータ

    戻り値

    Result>

    例外

    なし

    Result getServiceConfigJson()

    サーバ構成を取得

    パラメータ

    なし

    戻り値

    Result

    例外

    なし

    Result getAllGroupList()

    当該デバイスにバンドされるグループリストを取得

    パラメータ

    なし

    戻り値

    Result<DeviceGroups>

    例外

    なし

    Result getDeviceDetailInfo()

    デバイスの情報詳細を取得

    パラメータ

    なし

    戻り値

    Result<DeviceDetailInfo>

    例外

    なし

    Result getCompanyInfo()

    企業情報を取得

    パラメータ

    なし

    戻り値

    Result<Company>

    例外

    なし

    Result getUserInfo(long id)

    ユーザーの詳細情報を取得

    パラメータ

    戻り値

    Result<UserDetailInfo>

    例外

    なし

    Result getGuestInfo(long id)

    ユーザーの詳細情報を取得

    パラメータ

    戻り値

    Result<GuestDetailInfo>

    例外

    なし

    Result getServerVersion()

    サーバのバージョンを取得

    パラメータ

    なし

    戻り値

    Result<ServerVersion>

    例外

    なし

    Result getPassTimeTable(long timetableId)

    アクセスタイムテーブルを取得

    パラメータ

    戻り値

    Result<TimeTable>

    例外

    なし

    void logout()

    ログアウト

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    Result identifyQRCode(IdentifyQRCodeParameter parameter)

    QRコード認識インターフェース

    パラメータ

    戻り値

    Result<QRResult>

    例外

    なし

    Result login(String account, String password,String identifier, String duid)

    デバイスのログイン

    パラメータ

    戻り値

    Result<LoginResult>

    例外

    なし

    Result register( RegisterParameter registerParameter)

    デバイスを登録

    パラメータ

    戻り値

    Result<RegisterResult>

    例外

    なし

    Result reportUserStatus(UserStatusParameter userStatusParameter) )

    ローカルデータベースでのユーザー異常ステータスをアップロード

    パラメータ

    戻り値

    Result

    例外

    なし

    Result reportUserStatus(UserSyncStatusParameter userSyncStatusParameter)

    ローカルデータベースでのユーザー異常ステータスをアップロード

    パラメータ

    戻り値

    Result

    例外

    なし

    void refreshConnectConfig(ConnectConfigEntity connectConfig)

    接続構成をリロード

    パラメータ

    戻り値

    なし

    例外

    なし

    Result reportDeviceEvent(DeviceReportEventParamer param)

    デバイスイベントをレポート

    パラメータ

    戻り値

    Result

    例外

    なし

    Result uploadRecord(RecordParameter recordParameter)

    識別レコードをアップロード

    パラメータ

    戻り値

    Result<RecordResult>

    例外

    なし

    Result uploadDeviceVersionInfo(DeviceVersionInfoParameter deviceInfoParameter)

    デバイスバージョンをアップロード

    パラメータ

    戻り値

    Result

    例外

    なし

    Result uploadConfig(String deviceConfigKey, Object config)

    構成をアップロード

    パラメータ

    戻り値

    Result

    例外

    なし

    Result uploadTsl(TslUploadParameter parameter))

    Tslをアップロード

    パラメータ

    戻り値

    Result

    例外

    なし

    Result uploadTslLanguage(TslLanguageUploadParameter parameter)

    Tsl言語パッケージをアップロード

    パラメータ

    戻り値

    Result

    例外

    なし

    HttpApiClient

    HTTP interface implementation

    HttpApiClient

    Member Function

    Description

    Version Introduced

    byte[] getImage(int type, String imageId)

    Get Image Data

    Description of Member Function

    byte[] getImage(int type, String imageId)

    Get Image Data

    Parameter

    Return

    Image Data

    Exception

    None

    ConnectConfigEntity getConnectConfigEntity()

    Get Current Connection Configuration

    Parameter

    None

    Return

    ConnectConfigEntity

    Exception

    None

    Result alarmReport(AlarmReportParameter reportParameter)

    Alarm Report

    Parameter

    Return

    Result

    Exception

    None

    Result bindDefaultGroup()

    Bind Default Group

    Parameter

    None

    Return

    Result

    Exception

    No

    Result checkPasswordUseLoginInterface(String password)

    Check Password

    Parameter

    Return

    Result

    Exception

    None

    Result checkTslExist(String md5)

    Check Tsl Exist

    Parameter

    Return

    Result<TslCheckExistResult>

    Exception

    None

    Result checkTslLanguageExist(String lang)

    Check Tsl Language Exist

    Parameter

    Return

    Result<TslLanguageCheckExistResult>

    Exception

    None

    Result faceSearch(FaceSearchParameter searchParameter)

    Server Identification

    Parameter

    Return

    Result<FaceSearchResult>

    Exception

    None

    Result> getGroupIndexList()

    Get Group Index List Bound to the device

    Parameter

    None

    Return

    Result<GroupIndex>

    Exception

    None

    Result> getUserIndexList(int groupId)

    Get User Index List in a Group

    Parameter

    None

    Return

    Result>

    Exception

    None

    Result> getUserInfoList(UserInfoParameter parameter)

    Get User Info List

    Parameter

    Return

    Result>

    Exception

    None

    Result getServiceConfigJson()

    Get Server Configuration

    Parameter

    None

    Return

    Result

    Exception

    None

    Result getAllGroupList()

    Get Group List Bound to the Device

    Parameter

    None

    Return

    Result<DeviceGroups>

    Exception

    None

    Result getDeviceDetailInfo()

    Get Device DetaiIed Info

    Parameter

    None

    Return

    Result<DeviceDetailInfo>

    Exception

    None

    Result getCompanyInfo()

    Get Company Info

    Parameter

    None

    Return

    Result<Company>

    Exception

    No

    Result getUserInfo(long id)

    Get User Detailed Info

    Parameter

    Return

    Result<UserDetailInfo>

    Exception

    None

    Result getGuestInfo(long id)

    Get Guest Detailed Info

    Parameter

    Return

    Result<GuestDetailInfo>

    Exception

    None

    Result getServerVersion()

    Get Server Version

    Parameter

    None

    Return

    Result<ServerVersion>

    Exception

    None

    Result getPassTimeTable(long timetableId)

    Get Pass Time Table

    Parameter

    Return

    Result<TimeTable>

    Exception

    None

    void logout()

    Log out

    Parameter

    None

    Return

    None

    Exception

    None

    Result identifyQRCode(IdentifyQRCodeParameter parameter)

    QR Code Identification Interface

    Parameter

    Return

    Result<QRResult>

    Exception

    None

    Result login(String account, String password,String identifier, String duid)

    Device Login

    Parameter

    Return

    Result<LoginResult>

    Exception

    None

    Result register( RegisterParameter registerParameter)

    Device Registration

    Parameter

    Return

    Result<RegisterResult>

    Exception

    None

    Result reportUserStatus(UserStatusParameter userStatusParameter)

    Upload the abnormal status of the user in the local database

    Parameter

    Return

    Result

    Exception

    None

    Result reportUserStatus(UserSyncStatusParameter userSyncStatusParameter)

    Upload the abnormal status of the user in the local database

    Parameter

    Return

    Result

    Exception

    None

    void refreshConnectConfig(ConnectConfigEntity connectConfig)

    Refresh Connect Configuration

    Parameter

    Return

    None

    Exception

    None

    Result reportDeviceEvent(DeviceReportEventParamer param)

    Report Device Event

    Parameter

    Return

    Result

    Exception

    None

    Result uploadRecord(RecordParameter recordParameter)

    Upload Identification Record

    Parameter

    Return

    Result<RecordResult>

    Exception

    None

    Result uploadDeviceVersionInfo(DeviceVersionInfoParameter deviceInfoParameter)

    Upload Device Version Info

    Parameter

    Return

    Result

    Exception

    None

    Result uploadConfig(String deviceConfigKey, Object config)

    Upload Configuration

    Parameter

    Return

    Result

    Exception

    None

    Result uploadTsl(TslUploadParameter parameter)

    Upload Tsl

    Parameter

    Return

    Result

    Exception

    None

    Result uploadTslLanguage(TslLanguageUploadParameter parameter)

    Upload Tsl Language Package

    Parameter

    Return

    Result

    Exception

    None

    identifier

    String

    デバイス識別子

    なし

    2.0.0

    duid

    String

    デバイスsn

    なし

    2.0.0

    ConnectConfigEntity getConnectConfigEntity()

    現在接続構成を取得

    2.0.0

    Result alarmReport(AlarmReportParameter reportParameter)

    アラームをレポート

    2.0.0

    Result bindDefaultGroup()

    デフォルトグループをバンドル

    2.0.0

    Result checkPasswordUseLoginInterface(String password)

    パスワードを検証

    2.0.0

    Result<TslCheckExistResult> checkTslExist(String md5)

    Tslが存在するかをチェック

    2.0.0

    Result<TslLanguageCheckExistResult> checkTslLanguageExist(String lang)

    Tslの言語パッケージが存在するかをチェック

    2.0.0

    Result<FaceSearchResult> faceSearch(FaceSearchParameter searchParameter)

    サーバの識別

    2.0.0

    Result> getGroupIndexList()

    当該デバイスにバンドルされるグループインデックスリストを取得

    2.0.0

    Result> getUserIndexList(int groupId)

    グループでのユーザーインデックスリストを取得

    2.0.0

    Result> getUserInfoList(UserInfoParameter parameter)

    ユーザー情報リストを取得

    2.0.0

    Result getServiceConfigJson()

    サーバ構成を取得

    2.0.0

    Result<DeviceGroups> getAllGroupList()

    当該デバイスにバンドされるグループリストを取得

    2.0.0

    Result<DeviceDetailInfo> getDeviceDetailInfo()

    デバイスの情報詳細を取得

    2.0.0

    Result<Company> getCompanyInfo()

    企業情報を取得

    2.0.0

    Result<UserDetailInfo> getUserInfo(long id)

    ユーザーの詳細情報を取得

    2.0.0

    Result<GuestDetailInfo> getGuestInfo(long id)

    ビジターの詳細情報を取得

    2.0.0

    Result<ServerVersion> getServerVersion()

    サーババージョンを取得

    2.0.0

    Result<TimeTable> getPassTimeTable(long timetableId)

    アクセスタイムテーブルを取得

    2.0.0

    void logout()

    ログアウト

    2.0.0

    Result<QRResult> identifyQRCode(IdentifyQRCodeParameter parameter)

    QRコード認識インターフェース

    2.0.0

    Result<LoginResult> login(String account, String password,String identifier, String duid)

    デバイスをログイン

    2.0.0

    Result<RegisterResult> register( RegisterParameter registerParameter)

    デバイスを登録

    2.0.0

    Result reportUserStatus(UserStatusParameter userStatusParameter)

    ローカルデータベースでのユーザー異常ステータスをアップロード

    2.0.0

    Result reportUserStatus(UserSyncStatusParameter userSyncStatusParameter)

    ローカルデータベースでのユーザー異常ステータスをアップロード

    2.0.0

    void refreshConnectConfig(ConnectConfigEntity connectConfig)

    接続構成を刷新

    2.0.0

    Result reportDeviceEvent(DeviceReportEventParamer param)

    デバイスイベントをレポート

    2.0.0

    Result<RecordResult> uploadRecord(RecordParameter recordParameter)

    識別レコードをアップロード

    2.0.0

    Result uploadDeviceVersionInfo(DeviceVersionInfoParameter deviceInfoParameter)

    デバイスバージョンをアップロード

    2.0.0

    Result uploadConfig(String deviceConfigKey, Object config)

    構成をアップロード

    2.0.0

    Result uploadTsl(TslUploadParameter parameter)

    Tslをアップロード

    2.0.0

    Result uploadTslLanguage(TslLanguageUploadParameter parameter)

    Tsl言語パッケージをアップロード

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    typent

    int

    画像のタイプ

    1:Senselinkでの登録画像

    2:認証対象となる画像

    2.0.0

    imageId

    String

    画像ID

    なし

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    reportParameter

    AlarmReportParameter

    パラメータ

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    password

    String

    パスワード

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    md5

    String

    File md5

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    lang

    String

    言語

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    searchParameter

    FaceSearchParameter

    パラメータ

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    パラメータ

    UserInfoParameter

    パラメータ

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    id

    long

    ユーザーID

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    id

    long

    Guest ID

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    timetableId

    long

    アクセスタイムテーブルID

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    parameter

    IdentifyQRCodeParameter

    パラメータ

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    account

    String

    デバイスのログインアカウント

    なし

    2.0.0

    password

    String

    デバイスのログインパスワード

    なし

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    Parameter

    RegisterParameter

    パラメータ

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    userStatusパラメータ

    UserStatusParameter

    パラメータ

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    userSyncStatusパラメータ

    UserSyncStatusParameter

    パラメータ

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    connectConfig

    ConnectConfigEntity

    構成

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    param

    DeviceReportEventParamer

    パラメータ

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    recordParameter

    RecordParameter

    パラメータ

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    deviceInfoParameter

    DeviceVersionInfoParameter

    パラメータ

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    deviceConfigKey

    String

    デバイスconfig key

    なし

    2.0.0

    config

    Object

    config構成

    なし

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    parameter

    TslUploadParameter

    パラメータ

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    parameter

    TslLanguageUploadParameter

    パラメータ

    なし

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    identifier

    String

    Device Identifier

    None

    2.0.0

    duid

    String

    Device sn

    None

    2.0.0

    2.0.0

    ConnectConfigEntity getConnectConfigEntity()

    Get Current Connection Configuration

    2.0.0

    Result alarmReport(AlarmReportParameter reportParameter)

    Alarm Report

    2.0.0

    Result bindDefaultGroup()

    bind Default Group

    2.0.0

    Result checkPasswordUseLoginInterface(String password)

    check Password

    2.0.0

    Result<TslCheckExistResult> checkTslExist(String md5)

    check Tsl Exist

    2.0.0

    Result<TslLanguageCheckExistResult> checkTslLanguageExist(Result checkTslLanguageExist(String lang))(String lang)

    check Tsl Language Exist

    2.0.0

    Result<FaceSearchResult> faceSearch(FaceSearchParameter searchParameter)

    Server Identification

    2.0.0

    Result> getGroupIndexList()

    Get Group Index List Bound to the device

    2.0.0

    Result> getUserIndexList(int groupId)

    Get User Index List in a Group

    2.0.0

    Result> getUserInfoList(UserInfoParameter parameter)

    Get User Info List

    2.0.0

    Result getServiceConfigJson()

    Get Server Configuration

    2.0.0

    Result<DeviceGroups> getAllGroupList()

    Get Group List Bound to the Device

    2.0.0

    Result<DeviceDetailInfo> getDeviceDetailInfo()

    Get Device DetaiIed Info

    2.0.0

    Result<Company> getCompanyInfo()

    Get Company Info

    2.0.0

    Result<UserDetailInfo> getUserInfo(long id)

    Get User Detailed Info

    2.0.0

    Result<GuestDetailInfo> getGuestInfo(long id)

    Get Guest Detailed Info

    2.0.0

    Result<ServerVersion> getServerVersion()

    Get Server Version

    2.0.0

    Result<TimeTable> getPassTimeTable(long timetableId)

    Get Pass Time Table

    2.0.0

    void logout()

    logout

    2.0.0

    Result<QRResult> identifyQRCode(IdentifyQRCodeParameter parameter)

    QR Code Identification Interface

    2.0.0

    Result<LoginResult> login(String account, String password,String identifier, String duid)

    Device Login

    2.0.0

    Result<RegisterResult> register( RegisterParameter registerParameter)

    Device Registration

    2.0.0

    Result reportUserStatus(UserStatusParameter userStatusParameter)

    Upload the abnormal status of the user in the local database

    2.0.0

    Result reportUserStatus(UserSyncStatusParameter userSyncStatusParameter)

    Upload the abnormal status of the user in the local database

    2.0.0

    void refreshConnectConfig(ConnectConfigEntity connectConfig)

    refresh Connect Configuration

    2.0.0

    Result reportDeviceEvent(DeviceReportEventParamer param)

    Report Device Status

    2.0.0

    Result<RecordResult> uploadRecord(RecordParameter recordParameter)

    Upload Identification Record

    2.0.0

    Result uploadDeviceVersionInfo(DeviceVersionInfoParameter deviceInfoParameter)

    Upload Device Version Info

    2.0.0

    Result uploadConfig(String deviceConfigKey, Object config)

    Upload Configuration

    2.0.0

    Result uploadTsl(TslUploadParameter parameter)

    upload Tsl

    2.0.0

    Result uploadTslLanguage(TslLanguageUploadParameter parameter)

    upload Tsl Language Package

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    typent

    int

    Image Type

    1-Base Image in Senselink, 2-Recognition Image

    2.0.0

    imageId

    String

    Image ID

    None

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    reportParameter

    AlarmReportParameter

    Parameter

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    password

    String

    password

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    md5

    String

    File md5

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    lang

    String

    Language

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    searchParameter

    FaceSearchParameter

    Parameter

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    parameter

    UserInfoParameter

    Parameter

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    id

    long

    User ID

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    id

    long

    Guest ID

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    timetableId

    long

    Pass Time Table ID

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    parameter

    IdentifyQRCodeParameter

    Parameter

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    account

    String

    Device Login Account

    None

    2.0.0

    password

    String

    Device Login Password

    None

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    registerParameter

    RegisterParameter

    Parameter

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    userStatusParameter

    UserStatusParameter

    Parameter

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    userSyncStatusParameter

    UserSyncStatusParameter

    Parameter

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    connectConfig

    ConnectConfigEntity

    Configuration

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    param

    DeviceReportEventParamer

    Parameter

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    recordParameter

    RecordParameter

    Parameter

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    deviceInfoParameter

    DeviceVersionInfoParameter

    Parameter

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    deviceConfigKey

    String

    Device config key

    None

    2.0.0

    config

    Object

    config Configuration

    None

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    parameter

    TslUploadParameter

    Parameter

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    parameter

    TslLanguageUploadParameter

    Parameter

    None

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    LinkSDKHelper

    SenseLink RESTfulインターフェースとMqttメッセージプッシュ仕組みをカプセル化

    機能類の説明

    LinkSDKHelper

    LinkSDKを初期化し、ネットワークリクエストパラメータを設定

    メンバー関数の説明

    boolean isCAVerify()

    CA Verificationかを取得

    パラメータ

    なし

    戻り値

    例外

    なし

    int getConnectTimeout()

    接続タイムアウトを取得

    パラメータ

    なし

    戻り値

    接続タイムアウト(ミリ秒)

    例外

    なし

    int getReadTimeout()

    読み取りタイムアウトを取得

    パラメータ

    なし

    戻り値

    読み込みタイムアウト(ミリ秒)

    例外

    なし

    int getWriteTimeout()

    書き込みタイムアウトを取得

    パラメータ

    なし

    戻り値

    書き込みタイムアウト(ミリ秒)

    例外

    なし

    LinkSDKHelper addInterceptor(Interceptor interceptor)

    インターセプターを追加

    パラメータ

    戻り値

    Current Object

    例外

    なし

    LanguageTypeEnum getLanguageType()

    言語タイプを取得

    パラメータ

    なし

    戻り値

    LanguageTypeEnum

    例外

    なし

    LinkSDKHelper init(String url,Context context)

    初期化

    パラメータ

    戻り値

    Current Object

    例外

    なし

    LinkSDKHelper setUrl(String url)

    URLを設定

    パラメータ

    戻り値

    Current Object

    例外

    なし

    LinkSDKHelper setCAVerify(boolean caVerify)

    CA Verificationを設定

    パラメータ

    戻り値

    Current Object

    例外

    なし

    LinkSDKHelper setConnectTimeout(int connectTimeout)

    接続タイムアウトを設定

    パラメータ

    戻り値

    Current Object

    例外

    なし

    LinkSDKHelper setReadTimeout(int readTimeout)

    読み取りタイムアウトを設定

    パラメータ

    戻り値

    Current Object

    例外

    なし

    LinkSDKHelper setWriteTimeout(int writeTimeout)

    書き込みタイムアウトを設定

    パラメータ

    戻り値

    Current Object

    例外

    なし

    LinkSDKHelper setInterceptorList(List interceptorList)

    BatchAddインターセプター

    パラメータ

    戻り値

    Current Object

    例外

    なし

    List getInterceptorList()

    インターセプターリストを取得

    パラメータ

    なし

    戻り値

    インターセプターリスト

    例外

    なし

    LinkSDKHelper setLanguage(LanguageTypeEnum type)

    言語タイプを設定

    パラメータ

    戻り値

    Current Object

    例外

    なし

    String getUrl()

    URLを取得

    パラメータ

    なし

    戻り値

    サーバアドレス

    例外

    なし

    LinkSDKHelper addInterceptor(Interceptor interceptor)

    インターセプターを追加

    2.0.0

    LanguageTypeEnum getLanguageType()

    言語種類を取得

    2.0.0

    LinkSDKHelper init(String url,Context context)

    初期化

    2.0.0

    LinkSDKHelper setUrl(String url)

    URLを設定

    2.0.0

    LinkSDKHelper setCAVerify(boolean caVerify)

    CA Verificationを設定

    2.0.0

    LinkSDKHelper setConnectTimeout(int connectTimeout)

    接続タイムアウトを設定

    2.0.0

    LinkSDKHelper setReadTimeout(int readTimeout)

    読み取りタイムアウトを設定

    2.0.0

    LinkSDKHelper setWriteTimeout(int writeTimeout)

    書き込みタイムアウトを設定

    2.0.0

    LinkSDKHelper setInterceptorList(List interceptorList)

    インターセプターをバッチ追加

    2.0.0

    List getInterceptorList()

    インターセプターリストを取得

    2.0.0

    LinkSDKHelper setLanguage(LanguageTypeEnum type)

    言語種類を設定

    2.0.0

    String getUrl()

    URLを取得

    2.0.0

    メンバー関数

    説明

    導入バージョン

    boolean isCAVerify()

    CA Verificationかを取得

    2.0.0

    int getConnectTimeout()

    接続タイムアウトを取得

    2.0.0

    int getReadTimeout()

    読み取りタイムアウトを取得

    2.0.0

    int getWriteTimeout()

    書き込みタイムアウトを取得

    戻り値

    説明

    導入バージョン

    true

    全てのネットワーク接続でCA証明書を検証する

    2.0.0

    false

    全てのネットワーク接続でCA証明書を検証しない

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    interceptor

    Interceptor

    インターセプター

    okhttpインターセプター

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    url

    String

    サーバアドレス

    なし

    2.0.0

    context

    Context

    コンテクスト

    なし

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    url

    String

    サーバアドレス

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    caVerify

    boolean

    CA Verificationを設定

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    connectTimeout

    int

    接続タイムアウト

    ミリ秒

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    readTimeout

    int

    読み取りタイムアウト

    ミリ秒

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    writeTimeout

    int

    書き込みタイムアウト

    ミリ秒

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    interceptorList

    List

    インターセプター List

    Okhttpインターセプター

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    type

    LanguageTypeEnum

    言語タイプ

    なし

    2.0.0

    2.0.0

    2.0.0

    Development manual

    Version

    Revision Date

    Revision Content

    v1.0.2

    4/07/2020

    Add types of devices to which the SDK is adapted

    v1.0.3

    5/12/2020

    Add an introduction to door access function

    v1.2.0

    10/14/2020

    Add an introduction to face temperature measurement function

    Thunder SDK Development Manual

    Thunder SDK [hereinafter referred to as "SDK"] is an Android SDK based on AI face algorithm and its derived functions, and takes the intelligent hardware device [hereinafter referred to as the "hardware device"] as the running carrier. It can be used for rapid development of liveness detection, 1:N face identification, 1:1 Face Verification, face temperature measurement, mask detection, access control and other functions.

    This document is intended to describe the integration steps of the SDK and how to use the key functions, mainly for development engineers.

    SDK Business Capabilities Introduction

    This SDK is used for offline identification, capturing faces through device cameras for face identification, and its general flow is shown in the figure below

    Based on this generic process, it may be 1 vs 1 or 1 vs N in face matching, so the process is subdivided into 1:1 matching and 1:N identification. Both are used in different scenarios, and 1:1 is not the case where N is set to 1 in 1:N, as defined below.

    Call Camera

    Quickly access the camera and get the preview callback data, encapsulate methods to manage the camera lifecycle, and support monitoring of the camera status.

    Call Thermal imaging system

    • The characteristics of abstract Thermal imaging system used in traffic scenes, support Thermal imaging system preview and get the data callback, manage its lifecycle, monitor its status, and auto connection after hot plug.

    • The Thermal imaging system models supported are Arrow, Guide 120 and Guide 256.

    1:1 Face Verification

    • The “1:1 Face Matching" is a process of proving "you are you", which means that you already have someone's identity information to determine whether the person's face information in the camera view matches the existing identity information.

    • The “1:1 Face Matching" is an authentication operation, which is often used in scenarios requiring identity verification, such as real-name authentication in mobile carrier shop, bank, and authentication scenarios in stations, airports, hotels, and Internet cafes.

    1:N Face Identification

    The “1:N Face Identification” refers to registering the set of face images to be recognized into the local face feature library, and comparing them with the set of face features in the face feature library when the camera acquires the face information to derive the identification result.

    • The “1:N Face Identification” is often used in scenarios that require multi-person identification, such as access control and attendance check-in for communities, buildings, schools, etc.

    Mask Detection

    The “Mask Detection” refers to the rapid detection of whether a person is wearing a mask by analyzing the face information captured by the camera, which is used in scenarios where masks are required, such as hospitals, manufacturing plants, and construction sites with large amounts of dust.

    Server 1:N Identification

    In the general process mentioned above, face matching can be performed either locally or remotely (via Http network requests). In the remote execution, the user needs to implement the comparison logic by himself, and the user can consider to achieve this function under the premise of the existing face identification backend server.

    Door Access Function

    The “Door Access Function" refers to the control function of the SDK for door access devices. Different hardware devices have different ranges of support for door access devices. To facilitate the description of the correspondence, the following concepts are defined:

    • "Door Access Device" - as a collective term for all devices including hardware accessories included in the hardware device of SenseTime and peripheral devices that can be connected and used by the hardware expansion interface.

      • Hardware Accessories: including screen backlight, IR fill light,light sensor, distance sensor, buzzer,local relays, loudspeakers, force removal and alarm button;

      • Peripheral Devices: door open buttons, fire signals, door magnets, door bells, alarms, Wiegand card readers, network relays, Wiegand door open controllers, etc.

    SDK's support for the "Door Access Function" of different hardware devices varies, as follows (the following table is described only from the perspective of SDK (not hardware) adaptation:

    For the purpose of description, this document is defined as follows:

    • Pass Access Control Function: refers to the access control function used by the remaining devices in the Pass and Thunder series (the device models above).

    Please pay attention to the following distinction between different devices when the use of the access control function is described.

    QR Code Identification

    The "QR Code Identification" refers to the function of parsing the content of QR code, which is used in the scenario of QR code identification. There are two codec libraries ZXing and ZBar built into the SDK, which can be selected by yourself when used.

    Face Temperature Measurement

    The "Face Temperature Measurement" means that through the face identification function and temperature measurement module, the face and thermodynamic diagram data are processed by the algorithm to get the final face temperature. Currently, the temperature measurement modules supported are Arrow module, Guide 120 module, and Guide 256 module. It should be noted that the final face temperature value may deviate depending on the ambient temperature, module model, and usage strategy.

    Introduction to Devices Suitable for SDK

    Introduction to Face Camera Imaging

    For the purpose of illustrating camera imaging, the following definition is made.

    • Horizontal Imaging: means that the width of the camera imaging picture is greater than the height.

    • Vertical Imaging: means that the width of the camera imaging image is less than the height.

    • Imaging Mirroring :refers to the camera image in which the real moving direction of the object is opposite to the direction in which the picture is presented. If a person walks to the left, he or she goes to the right in the preview screen.

    The following table indicates the imaging characteristics of the face camera corresponding to the specific device model.

    Access Instructions

    The SDK is provided as a.zip package file, which includes the.aar package,.so file, algorithm model file, sample project and development documentation. The SDK requires the following environment:

    Start Integration

    1. Copy the .aar file to the project libs folder, as shown in the figure below.

    1. Select the corresponding model file in the "model file" folder of the zip package according to the device type, as shown in the figure below.

    Copy the corresponding model file in the zip package to the actual project assets/model folder.

    1. Select the corresponding so library in the "so library" folder of the package according to the device type, as shown in the table below

    and copy the so in the folder to the /src/main/jniLibs folder.

    1. Add the following configuration to the build.gradle file

    1. Add the following permission declaration in AndroidManifest.xml file

    1. Copy the .lic certificate to the assets folder (there is a debug certificate in Sample, which is for testing purposes only, and a separate application is required for the official production environment certificate), as shown in the following sample image.

    Sample Project

    The Sample project can be opened in Android Studio. Copy aar, model, so and other files to the corresponding folder according to the documentation, and run debugging with pass series and thunder series of hardware devices. The Sample project mainly demonstrates 1:N identification, 1:1 matching, mask detection, access control and other functions.

    SDK usage

    In this section, the use of key api and processes in the SDK will be mainly described.

    SDK initialization

    Before using the SDK, please make sure that the aar, model, so and .lic files are properly stored and configured. Once the files are ready, the initialization can be performed as follows:

    Authorization can be made after successful initialization, and the first authorization must be connected to the public network authorization, shown as follows:

    In general, there is no need to perform a release operation before the application exits after successful SDK authorization. Specifically, when it is necessary to restart the application, the SDK resources can be released at the end of the application, as follows:

    Call Camera

    The CameraTextureView and CameraManager classes in the SDK make it easy to manage the camera life cycle and related preview operations. The following is an example of using a face camera (RGB) to introduce the use of the camera. CameraTextureView can be used in the layout file as follows (full screen preview).

    Then initialize the camera (Please check the following code for detail. 1280*720 preview resolution is highly recommended), as follows,

    Control Camera Lifecycle, as follows:

    Call Thermal imaging system

    Before calling the relevant interface of the thermal camera, get the instance of the thermal camera first. TemperatureCameraFactory is provided in the SDK to obtain different instances of the Thermal imaging system, shown as follows:

    Initialize the Thermal imaging system configuration

    Add Thermodynamic Diagram and Callback of Temperature Data

    Get the partial status of the Thermal imaging system

    Manage the lifecycle of the Thermal imaging system

    In addition, the SDK provides a number of methods to operate the Thermal imaging system, shown as below:

    1:N Face Identification Flow

    The business process of face identification contains several steps such as Camera management, face feature library creation, liveness detection, face comparison, and result processing, which involves many details of SDK usage. The following article introduces the details of SDK usage, taking the process of "1:N identification" as an example.

    Create Face Feature Library

    The "1:N identification" requires a face feature library as the "database" for face feature retrieval, so the face feature library needs to be built before the process starts. The SDK has FeatureManagerProxy for feature library creation, which is briefly used as follows.

    N face features (a maximum of 5W features) can be inserted in the feature library. After the construction is completed, the Identify Manager automatically obtains the inserted facial feature data of 'FeatureManagerProxy' during the identification process for personnel identification.

    Start Camera Preview

    Please check Call Camera section for detail to turn on the RGB camera. If liveness detection is enabled, you also need to turn on the IR camera again and modify the preview data callback to pass the preview data into the Identify Manager, as follows:

    Start the Identify Manager

    The Identify Manager has built-in "1:N", "1:1" and "server 1:N" identification processes, and you can switch the internal identification logic by switching the Identify Manager mode. The Identify Manager modes are as follows.

    • VerifyModeEnum.MODE_1_N: 1:N identification mode, corresponding to 1:N identification process.

    • VerifyModeEnum.MODE_1_1: 1:1 comparison mode, corresponding to 1:1 comparison process.

    • VerifyModeEnum.MODE_SERVER_1_N: server 1:N identification mode, corresponding to the server 1:N identification process;

    Before use, set the configuration as follows:

    After the initial setup, the Identify Manager can be turned on/off to control identification, as follows

    The identification process can control the details through the parameters, and the Identify Manager parameters can be configured individually according to the specific business, as follows. (In the code annotation below, if there are notes for a series different from the pass and thunder series, please skip them as appropriate.)

    Process Identification Result

    The Identify Manager transmits the identification result to the upper business by the way of interface callback, and the upper business only needs to process the result in the callback interface, shown as follows:

    When the result callback is not required, set null as follows:

    At this point, the process of "1:N identification" has been preliminarily built.

    1:1 Face Verification Process

    In the above description, the Identify Manager in the "1:N identification" process uses the mode VerifyModeEnum.MODE_1_N, which is the "1:N identification" mode. In the face "1:1 matching" process, the Identify Manager needs to be switched to "1:1 matching" mode, as follows:

    Server 1:N Identification

    When the identification step is executed on the remote server, you need to modify the configuration of the Identify Manager to enable the server identification based on 1:N identification, and then use the IServerVerifyAction class to implement the identification logic. The specific use is as follows:

    Mask Detection

    Based on the identification of "1:N", "1:1" and "server 1:N", the corresponding mask detection results can be obtained from the identification results by configuring to open the mask detection. If the mask detection function is not enabled, the default mask detection result is true, enabled as follows:

    Face Temperature Measurement

    Based on the identification of "1:N", "1:1" and "server 1:N", the temperature measurement configuration item of the Identify Manager needs to be enabled before the face temperature measurement function is used, as shown below

    It should be especially noted that the Identify Manager needs temperature data to work properly after the temperature measurement function is turned on, and no identification will be made before the temperature data is obtained, but face tracking will be carried out normally. In addition, when the temperature measurement function is turned on, it is recommended to set the rectangle for face recognition and a stricter angle of the front face to try to identify the face in the center of the field of view, so as to increase the accuracy of face identification and temperature measurement, as follows

    The temperature measurement function requires a temperature measurement module (Thermal imaging system), which can be initialized by obtaining the corresponding Thermal imaging system object through the TemperatureCameraFactory class. Note that the Thermal imaging system takes several seconds to initialize, as follows

    After the temperature data are obtained, the temperature value needs to be calibrated by the temperature measurement algorithm, which needs to be initialized manually, as follows

    Set Temperature Sdk Action to the Identify Manager,

    Get the thermal camera preview data (thermodynamic diagram). Once the temperature data is acquired, it needs to be injected into the Identify Manager in time, as follows

    Get personal temperature data from the identification callback results:

    Use of Pass Access Control

    The use of the Pass access control feature requires a global initialization configuration, which is initialized as follows.

    The configuration for using the Pass access control function can be dynamically modified by DoorDeviceAccessProxy.setConfig(config).

    Key categories of Pass access control function:

    • DoorDeviceAccessProxy: responsible for global initialization, resource release, configuration usage, door opening control.

    • DoorAccessConfig: Categories of Door Access Configuration.

    • PassDoorDeviceAccessProxy: Manage access control functions available to SensePass/SensePassPro devices, such as door chimes, RS485 protocols, alarms, and tamper alarm lights.

    Open Door via Local Relay

    The "local relay" is a hardware device with its own accessories, used to control the opening of the door and set the door opening time (i.e. open the door for a number of seconds and then close it). The hardware models supporting this function are SensePass, SensePassPro.

    The Pass access control function is used as follows:

    DoorDeviceAccessProxy.openDoor() automatically acquires the configured door opening method and the delayed closing time, and then automatically executes the door opening action. The user does not need to care about the specific way to open the door, which is automatically controlled by the method. The same is true of door openning with the network relay and the Wiegand controller below.

    Specifically, when the delayed closing time needs to be greater than 30 seconds, it is necessary to open the door in the following ways

    If the local relay needs to be closed immediately, the following method can be called manually.

    Open Door via Network Relay

    The "Network Relay" is a peripheral device. The hardware device connects to the network relay through the network, and controls the door opening and delayed closing time by sending door opening commands to the network relay. The hardware models supporting this function are Pass and Thunder series.

    The Pass access control function is used as follows:

    Open Door via Wiegand Controller

    The "Wiegand Controller" is a peripheral device that connects to the hardware device through an expansion interface and uses the Wiegand protocol for data communication, which can be used to control the door opening. SDK currently supports Wiegand 26, Wiegand 32 and Wiegand 34, and the hardware models that support this function are Pass and Thunder series device.

    The maximum card number supported by the standard Wiegand 26 protocol is 8 bits, and the card number data transmission is divided into HID and PID. According to the generation mode of HID and PID, Wiegand 26 is subdivided into two modes, "Wiegand 26 (24bit)" and "Wiegand 26 (8+16bit)”, whose difference is as follows:

    • Wiegand 26 (24bit): For ordinary use mode, the card number is converted to int, divided by 2^16 to take an integer as HID, and the remainder of 2^16 is taken as PID.

    • Wiegand 26 (8+16bit): For special use mode, the first 3 digits of the card number are converted to int as HID, and the last 5 digits are converted to int as PID.

    The Pass access control function is used as follows:

    • Open Door via Wiegand 26

    • Open Door via Wiegand 32/34

    Wiegand card reading

    The "Wiegand card reading" needs to be configured with a Wiegand reader, which is a peripheral device. It connects with the device through the extended interface and uses the Wiegand protocol for data communication to read the IC card number. It supports Wiegand 26 (consistent with the above description), Wiegand 32 and Wiegand 34. The hardware device models supporting this function are Pass and Thunder series device.

    The Pass access control function is used as follows:

    Once the setup is complete, you can listen to the Wiegand read callback. The code is used as follows.

    GPIO Input Devices

    "GPIO input devices" refer to a class of devices that send GPIO signals to hardware devices through the GPIO port connection, including door opening buttons, fire signals and door magnets. When used, the hardware device serves as the receiver and the "GPIO input device” serves as the sender, and the two communicate through the GPIO input port. The hardware device models that support this feature are Pass and Thunder series device.

    Pass access control function supports the use of dual GPIO, divided into B and C. configuration. Before use, set the relevant access control configuration, and its code is as follows:

    Once the setup is complete, you can listen to the relevant signal input. The code is used as follows.

    GPIO Output Devices

    "GPIO output devices" refers to peripheral devices connected through GPIO output port for receiving GPIO signals from hardware devices, including doorbell, and alarm. When used, the hardware device serves as the sending end and the "GPIO output type device" serves as the receiving end, and the two communicate through the GPIO output port. The hardware device models that support this feature are Pass and Thunder series.

    Before use, set the relevant access control configuration, and its code is as follows:

    Specifically, when using the alarm, you need to manually control the alarm and turn off the alarm. The code is used as follows:

    Light Control

    "Lighting Control" mainly controls the lighting accessories of hardware devices, including RGB fill light, IR fill light and screen backlight.

    IR Fill Light

    The "IR fill light" is part of the IR camera module and is used to enhance the IR image. To increase its lifetime, it can be dynamically controlled to turn off when not in use. The hardware device models that support this feature are Pass and Thunder series.

    The code is used as follows:

    Screen Backlight

    The "screen backlight" is an accessory that comes with the hardware device to turn off the screen light when the software application is in a dormant state (such as late at night when the software application is no longer needed), increasing the life of the hardware device and reducing energy consumption. The hardware device models that support this feature are Pass and Thunder series.

    The code is used as follows:

    RS485 Protocol

    The "RS485 protocol" refers to a serial communication protocol standard. The RS485 interface is provided in the hardware device to support its communication in half-duplex mode, Half-duplex data read-only and write-only are controlled automatically by the rom, and the upper business only needs to pay attention to the serial communication. The hardware device models that support this feature are Pass and Thunder series.

    Before use, first turn on the RS485 function, and set the baud rate, data buffer, and data transceiver timeout length according to the use scene.The code is used as follows:

    To send data, use the following code:

    Tamper alarm button

    The "tamper alarm button” is an accessory that comes with the hardware device, located on the back of the device as a raised button. When the button is pressed during normal operation, the button will pop up when the hardware device is removed, and the Rom level will sense it and issue a "tamper alarm" for alerting when the hardware device is removed abnormally.

    The Rom level converts the "tamper alarm" into an input event of the "F2 button", i.e. when the "tamper alarm" occurs, the system layer sends the "F2 button" input event. F2 button" input event, so you can listen to the "tamper alarm" by listening to whether the "F2 button" is pressed or not. The code is used as follows:

    Sensor

    "Sensors" refers to the sensors that come with the hardware device, such as light sensors, and distance sensors. For the passage scenario, the role of sensors is as follows:

    • Light sensor: senses light intensity and can set "fill light mode" for applications in low light conditions.

    • Distance sensor: senses the proximity of a person to trigger certain specific operations (e.g. waking up a device in a dormant state when the person is close).

    Sensors can be used through the SensorManager class in the Android native SDK, whose code is used as follows:

    Buzzer

    The "buzzer" is an accessory that comes with the hardware device and is mainly used for beeping when an alarm occurs on the hardware device. Currently, only SensePass and SenseThunderE-mini devices support this feature. Using the buzzer requires manual control to turn it on and off, and the code is as follows:

    Application System Signature

    The system signature file sensetime.jks is placed in the sample project of the SDK. Using this file as the application signature allows the application to gain system privileges, which allows the application to perform more operations that require high privileges, such as setting system events, and modifying system settings.

    To use it, please copy sensetime.jks to the root of the main module of the project, and then add the following configuration to the build.gradle file.

    And add the system application declaration android:sharedUserId="android.uid.system" to the AndroidManifest.xml file, as follows:

    QR Code Identification

    The QR code recognition function can recognize ordinary QR codes normally. When using it, you can select ZXing or ZBar encoding and decoding library. It is recommended to use ZBar, which is more suitable for end-to-side device identification and faster. For more information on how to use it, please see the Sample code. The brief usage is as follows:

    開発マニュアル

    “Door Access Function” - mainly refers to the use of "Door Access Device", such as opening the door with local relays, opening the door with Wiegand controller, turning off screen fill lights, controlling the doorbell ringing, and sensing the distance of human body with distance sensor.

    Screen Backlight

    Speaker

    Tamper Alarm Button

    NFC Reader

    SensePass

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ×

    ✓

    ✓

    ✓

    ×

    SenseThunderE-mini

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ×

    ✓

    ✓

    ✓

    ×

    SenseThunderE

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ×

    ×

    ✓

    ✓

    ✓

    ×

    SenseThunderAir

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    ×

    ×

    ✓

    ✓

    ✓

    ×

    SenseThunerE-Mini

    Thunder Series

    RK3399-arm64-v8a

    Android 7.1

    RGB Face + IR + Thermal

    SenseThunderAir

    Thunder Series

    RK3399-arm64-v8a

    Android 7.1

    RGB Face + IR + Thermal

    Face Orientation: refers to the direction that the face points to in the camera image, as shown below from left to right UP, DOWN, LEFT, RIGHT, in that order.

    LEFT

    No

    SenseThunderAir

    Vertical Imaging

    LEFT

    No

    v2.0.0

    02/05/2021

    Add an introduction to camera call process and thermal camera call process, improve the description of face temperature measurement related interfaces

    v2.0.0

    04/10/2021

    Revise the description of support device

    Device Model

    Open Button

    Fire Signal

    Door Sensor

    Doorbell

    Alarm

    Wiegand Reader

    Wiegand Controller

    Local Relay

    Network Relay

    Buzzer

    Infrared Human Sensor

    Distance Sensor

    Light Sensor

    IR Fill Light

    Device Model

    Device Category

    Platform

    Android Version

    Camera Type

    SensePass

    Pass Series

    RK3399-arm64-v8a

    Android 7.1

    RGB Face + IR

    SenseThunderE

    Thunder Series

    RK3399-arm64-v8a

    Android 7.1

    Device model

    Imaging direction

    Face orientation

    Imaging mirroring

    SensePass

    Vertical Imaging

    LEFT

    No

    SenseThunderE

    Vertical Imaging

    LEFT

    No

    SenseThunderE-Mini

    Environment item

    Description

    device

    SensePass, SenseThunderE, SenseThunderE-Mini, SenseThunderAir

    Android Version

    Compatible with Android 7.1+

    SDK activation

    you need to apply for authorized .lic certificate so that your application can run in the intelligent hardware

    IDE Development

    Android Studio 3.5.3 and above

    Device type

    Corresponding model

    Pass series

    .model file in the root of the model folder + all files in the pass_ext folder

    Thunder series

    .model file in the root of the model folder + all files in the pass_ext folder

    Device type

    Corresponding so

    Pass series

    Pass-series-rk3399-general(arm64-v8a only)

    Thunder series

    Pass-series-rk3399-general(arm64-v8a only)

    RGB Fill Light

    RGB Face + IR + Thermal

    Vertical Imaging

    バージョン2.0.0

    2021/02/05

    カメラの呼び出しプロセス、およびサーモカメラの呼び出しプロセスの紹介を追加。顔の温度検知機能に関連するインターフェースの記載を更新

    バージョン2.0.0

    2021/04/10

    デバイス名を修正

    Thunder SDK開発マニュアル

    Thunder SDK(以下、「SDK」)は、AI顔認証アルゴリズムおよびその派生機能をベースにした Android 向けSDKで、JCVインテリジェントハードウェアデバイス(以下、「ハードウェアデバイス」)を実行キャリアとして採用します。生体検知、1:N顔認証、1:1顔認証、顔温度検知、マスク検知、アクセスコントロールなどの機能を迅速に開発するために使用できます。

    本ドキュメントは主に開発エンジニアを対象として書かれており、SDKのインテグレーション手順や機能の使用方法を説明しています。

    SDKのビジネス機能について

    SDKはデバイスのカメラで顔をキャプチャして顔認証を行うといった、オフラインでの顔認証に使用できます。一般的な流れは次のとおりです。

    一般的なプロセスを踏まえると、顔の照合には1対1の場合と1対Nの場合があるため、1:1認証と1:N認証に細分化されます。それぞれ異なるシナリオで使用され、1:1認証は後ほど定義するような1:NでNを1と設定する場合とは異なります。

    カメラの呼び出し

    カメラに素早くアクセスしてプレビューコールバックデータを取得したり、カメラのライフサイクルを管理するメソッドをカプセル化など、カメラのステータスを監視する機能をサポートしています。

    サーマルイメージングシステムの呼び出し

    • 交通現場で使用されるサーマルイメージングシステムの特徴として、サーマルイメージングシステムのプレビューおよびデータのコールバック、ライフサイクルの管理、ステータスの監視、ホットプラグ後の自動接続などが挙げられます。

    • 対応するサーマルイメージングシステムのモデルは、Arrow、Guide120、Guide256です。

    1:1認証

    • 「1:1認証」は、「あなたがあなたであること」を証明するプロセスです。具体的には、特定の身元情報をシステムが保持している場合、カメラ画面に映っている人物の顔情報と保存している身元情報が一致するかを判断します。

    • 銀行、携帯キャリアショップでの本人確認や駅・空港、ホテル、インターネットカフェなどで認証が必要な状況など、個人の認証が必要とされるシナリオでよく使われる認証操作です。

    1:N認証

    「1:N認証」とは、認証対象の顔画像セットをローカルの顔フィーチャーライブラリに登録しておき、カメラが顔情報を取得した際にライブラリ内の顔フィーチャーセットと比較することで、認証結果を導き出します。

    • コミュニティやオフィスビル、学校などでのアクセスコントロールや勤怠確認、複数人を認証する必要がある状況でよく使われます。

    マスク検知

    「マスク検知」は、カメラでキャプチャした顔情報を解析することで、マスクを着用しているかを迅速に検知します。病院や製造工場、粉塵の多い建設現場など、マスクが必要とされる場面で活用されています。

    サーバーサイドの1:N認証

    前述した一般的な1:N認証プロセスにおいては、顔の照合はローカルでもリモート(HTTPネットワークリクエスト経由)でも実行可能です。リモートで実行する場合、比較ロジックをユーザー自身が実装する必要があり、本機能の実装には顔認証バックエンドサーバーがあることが前提となります。

    ドアアクセス機能

    「ドアアクセス機能」は、SDKのドアアクセスデバイスのコントロール機能を指します。ハードウェアデバイスによって、ドアアクセスデバイスのサポート範囲が異なります。対応関係を説明するために、次のように概念を定義します。

    • 「ドアアクセスデバイス」 - SenseTimeのハードウェアデバイスに含まれるハードウェアアクセサリーや、ハードウェア拡張インターフェースにより接続して使用できる周辺機器などのすべてのデバイスの総称。

      • ハードウェアアクセサリ:スクリーンバックライト、IRフィルライト、照明センサー、距離センサー、ブザー、ローカルリレー、ラウドスピーカー、強制解体アラートボタンなど。

      • 周辺機器:ドアオープンボタン、消防アラートシグナル、ドアマグネット、ドアベル、アラート、Wiegandカードリーダー、ネットワークリレー、Wiegandドアオープンコントローラーなど。

    • 「ドアアクセス機能」 -主に「ドアアクセスデバイス」を使用することを指し、ローカルリレーによるドアのオープン、Wiegandコントローラーによるドアのオープン、スクリーンフィルライトの消灯、ドアベルの鳴動制御、距離センサーによる人体の距離検知などの機能を含む。

    SDKの「ドアアクセス機能」のサポート範囲は、ハードウェアデバイスによって異なります(次の表ではハードウェアの観点ではなく、SDKでの対応の観点でのみ記載しています)。

    デバイスモデル

    オープンボタン

    消防アラートシグナル

    ドアセンサー

    ドアベル

    アラート

    SensePass

    ✓

    ✓

    ✓

    ✓

    ✓

    SenseThunderE-mini

    ✓

    デバイスモデル

    Wiegandリーダー

    Wiegandコントローラー

    ローカルリレー

    ネットワークリレー

    SensePass

    ✓

    ✓

    ✓

    ✓

    SenseThunderE-mini

    ✓

    ✓

    ✓

    デバイスモデル

    ブザー

    赤外線人感センサー

    距離センサー

    照明センサー

    IRフィルライト

    SensePass

    ✓

    ×

    ✓

    ✓

    ✓

    SenseThunderE-mini

    ✓

    デバイスモデル

    RGBフィルライト

    スクリーンバックライト

    スピーカー

    盗難アラートボタン

    NFCリーダー

    SensePass

    ×

    ✓

    ×

    ✓

    ×

    SenseThunderE-mini

    ×

    本ドキュメントでは、説明のために以下のように定義しています。

    • Passアクセスコントロール機能:PassとThunderシリーズ(上記デバイスモデル)のその他のデバイスで使用されるアクセスコントロール機能のこと。

    なお、アクセスコントロール機能の使用について説明する場合、以下のように異なるデバイスにおける違いにご注意ください。

    QRコード認証

    「QRコード認証」とは、QRコードの内容を解析する機能のことで、QRコードの認証が必要なシナリオで使用されます。SDKには2つのコーデックライブラリZXingとZBarが組み込まれており、使用時に選択できます。

    顔の温度検知

    「顔の温度検知」とは、顔認証機能と温度検知モジュールを介して、顔および熱力学線図のデータをアルゴリズムにより処理し、顔の温度を取得することです。現在サポートされている温度検知モジュールは、Arrowモジュール、Guide120モジュール、およびGuide256モジュールです。なお、顔の温度値は、周囲の温度、モジュールのモデル、使用方法などによって異なる場合がありますのでご注意ください。

    SDKに適したデバイスについて

    デバイスモデル

    デバイスカテゴリ

    プラットフォーム

    Android バージョン

    カメラタイプ

    SensePass

    Pass シリーズ

    RK3399-arm64-v8a

    Android 7.1

    RGB 顔 + IR

    SenseThunderE

    Thunder シリーズ

    RK3399-arm64-v8a

    Android 7.1

    顔カメラによる撮影について

    カメラによる撮影について説明するために、次のように定義します。

    • 水平方向の画像: 撮影した写真の幅が、高さよりも広いことを意味します。

    • 垂直方向の画像: 撮影した写真の幅が、高さよりも狭いことを意味します。

    • 画像のミラーリング: カメラ画像において、被写体の実際の移動方向と写真の表示方向が逆になっていることを示します。人が左方向に歩いている場合、プレビュー画面では右に向かって進んでいるように表示されます。

    • 顔の方向: カメラ画像において顔が向いている方向を指し、次のように左から順に上向き、下向き、左向き、右向きとなります。

    次の表では、特定のデバイスモデルに対応する顔カメラの画像の特性を示します。

    デバイスモデル

    撮影方向

    顔の方向

    画像のミラーリング

    SensePass

    垂直方向の画像

    左向き

    いいえ

    SenseThunderE

    垂直方向の画像

    左向き

    いいえ

    SenseThunderE-Mini

    アクセス手順

    SDKは、.aarパッケージ、.soファイル、アルゴリズムモデルファイル、サンプルプロジェクト、開発ドキュメントを含むzip形式のパッケージファイルとして提供されます。SDKは次の環境で動作します。

    環境項目

    説明

    デバイス

    SensePass, SenseThunderE, SenseThunderE-Mini, SenseThunderAir

    Android バージョン

    Android 7.1以上のバージョンと互換性があります。

    SDKのアクティベーション

    インテリジェントハードウェアでアプリケーションを動作させるためには、承認された.lic形式のライセンスファイルを申請する必要があります。

    IDE 環境

    Android Studio 3.5.3 以上のバージョン

    インテグレーションの開始

    1. 次の図のように、.aarファイルをproject libsフォルダにコピーします。

    1. 次の図のように、デバイスタイプに応じて、zipパッケージのmodel fileフォルダ内の対応するモデルファイルを選択します。

    デバイスタイプ

    対応するモデル

    Pass シリーズ

    model フォルダのルートにある .model ファイル、および pass_extフォルダ内のすべてのファイル

    Thunder シリーズ

    model フォルダのルートにある .model ファイル、および pass_extフォルダ内のすべてのファイル

    zipパッケージ内の対応するモデルファイルを、実際のプロジェクトのassetsおよびmodelフォルダにコピーします。

    1. 次の図に示すように、デバイスタイプに応じて、パッケージのso libraryフォルダ内の対応するsoライブラリを選択します。

    デバイスタイプ

    対応する so

    Pass シリーズ

    Pass-series-rk3399-general(arm64-v8a のみ)

    Thunder シリーズ

    Pass-series-rk3399-general(arm64-v8a のみ)

    次に、フォルダ内のsoを/src/main/jniLibsフォルダにコピーします。

    1. build.gradleファイルに次の設定を加えます。

    1. AndroidManifest.xml ファイルに、次のように権限の宣言を追加します。

    1. 次のサンプル画像のように、.lic形式のライセンスファイルをassetsフォルダにコピーします(サンプル内には、テストにのみ使用できるデバッグ用のライセンスファイルが提供されています。正式な本番環境用には、別途ライセンスファイルを申請する必要があります)。

    サンプルプロジェクト

    サンプルプロジェクトは、Android Studioで開くことができます。ドキュメントに従って、aar、model、soやその他のファイルを対応するフォルダにコピーし、PassシリーズやThunderシリーズのハードウェアデバイスでデバッグを実行してください。サンプルプロジェクトは、主に1:N認証、1:1照合、マスク検知、アクセスコントロール、その他の機能の使用方法を示します。

    SDKの使用方法

    本セクションでは、SDKの主要なAPIとプロセスの使用方法を中心に説明します。

    SDKの初期化

    SDKを使用する前に、aar、model、so、.licの各ファイルが正しく保存され、設定されていることを確認します。ファイルの準備が完了したら、次の手順で初期化を行います。

    アクティベーションは初期化に成功した後に行うことができ、初回のアクティベーション時は、次のようにパブリックネットワークの認証に接続する必要があります。

    通常、SDKのアクティベーション成功後は、アプリケーションを終了する前に解放操作を実行する必要はありません。具体的にアプリケーションを再起動する必要がある場合、次のようにアプリケーションの終了時にSDKリソースを解放することができます。

    カメラの呼び出し

    SDKのCameraTextureViewおよびCameraManagerクラスを使用すると、カメラのライフサイクルや関連するプレビュー操作を簡単に管理することができます。以下は、顔カメラ(RGB)を使用した使い方を紹介した例です。CameraTextureViewは、次のようにレイアウトファイルで使用できます(全画面プレビュー)。

    次にカメラの初期化を行います。詳細については、下記コードをご参照ください。プレビュー解像度は1280✕720ピクセルを推奨します。

    次のように、カメラのライフサイクルを制御します。

    サーマルイメージングシステムの呼び出し

    サーモカメラの関連インターフェースを呼び出す前に、サーモカメラのインスタンスを取得してください。SDKではサーマルイメージングシステムの様々なインスタンスを取得するために、次のようにTemperatureCameraFactoryが提供されています。

    サーマルイメージングシステムの設定を初期化します。

    熱力学線図、および温度データのコールバックを追加します。

    サーマルイメージングシステムのステータスを部分的に取得します。

    サーマルイメージングシステムのライフサイクルを管理します。

    SDKでは上記に加えて、サーマルイメージングシステムを操作するために多数の方法が提供されています。次の操作方法は一例です。

    1:N認証の流れ

    顔認証のビジネスプロセスには、カメラの管理、顔特徴量ライブラリの作成、生体検知、顔比較、結果の処理などのいくつかのステップがあります。ここでは「1:N認証」を例に、SDKの使用方法を説明します。

    顔フィーチャーライブラリの作成

    1:N認証では顔フィーチャーを検索するための「データベース」として、顔フィーチャーライブラリが必要です。そのため、処理を開始する前にライブラリを構築する必要があります。SDKには顔フィーチャーライブラリを作成するためのFeatureManagerProxyが用意されており、次のように簡単に利用することができます。

    N個の顔フィーチャー(最大は5W)をフィーチャーライブラリに挿入できます。構築が完了したら、人物認証プロセスの際にIdentify Managerは'FeatureManagerProxy'の挿入された顔フィーチャーデータを自動的に取得し、認証を行います。

    カメラプレビューの開始

    「カメラの呼び出し」を参照して、RGBカメラをオンにします。生体検知が有効になっている場合はIRカメラを再度オンにし、プレビューデータがIdentify Managerに渡されるように、データのプレビューコールバックを次のように変更する必要があります。

    Identify Manager の開始

    Identify Managerには「1:N」「1:1」および「サーバーサイド1:N」認証処理が組み込まれており、モードを切り替えることで内部の認証ロジックを変更することができます。Identify Manager のモードは次のとおりです。

    • VerifyModeEnum.MODE_1_N: 1:N認証モード。1:N認証処理に対応。

    • VerifyModeEnum.MODE_1_1: 1:1認証モード。1:1認証処理に対応。

    • VerifyModeEnum.MODE_SERVER_1_N: サーバーサイド1:N認証モード。サーバーサイドの1:N認証処理に対応。

    使用前に、次のように設定します。

    初期設定の完了後、次のように Identify Managerのオンまたはオフを切り替えることで、認証を制御することができます。

    認証処理の詳細はパラメーターによって制御することができます。Identify Managerのパラメーターは特定のビジネスシナリオに応じて、次のように個別に設定できます(下記コードアノテーションでは、PassやThunderシリーズと異なるシリーズの注意事項がある場合、適宜読み飛ばしてください)。

    認証結果の処理

    Identify Managerはコールバックインターフェースにより、認証結果を上位ビジネス層に送信します。上位ビジネス層では、次のようにコールバックインターフェースで結果を処理してください。

    結果のコールバックが不要な場合は、次のようにNULLを設定します。

    この時点で「1:N認証」プロセスが構築されています。

    1:1認証処理

    上記に説明したとおり、「1:N認証」処理の場合、Identify ManagerはVerifyModeEnum.MODE_1_Nモードを使用します。顔の「1:1認証」処理の場合、次に示す方法で「1:1認証」モードに切り替える必要があります。

    サーバーサイドの1:N認証

    リモートサーバー上で認証処理を実行する場合は、Identity Managerの設定を変更して、1:N認証に基づいたサーバーサイド認証を有効にする必要があります。次に、IServerVerifyAction クラスを使用して、認証ロジックを実装します。具体的な使用方法は次のとおりです。

    マスク検知

    「1:N」「1:1」および「サーバーサイドの1:N」認証に基づいてマスク検知を有効化すると、認証結果から対応するマスク検知結果を取得します。マスク検知機能が有効になっていない場合でも、デフォルトでマスク検知結果はtrueと返されます。次の手順で検知機能を有効化します。

    顔の温度検知

    顔の温度検知機能を使用する前に、「1:N」「1:1」および「サーバーサイド1:N」認証に基づいて、次のようにIdentity Managerの温度検知設定の項目を有効にする必要があります。

    注意すべき点として、温度検知機能が有効な場合、Identify Managerが正常に動作するためには温度データが必要なことです。温度データが取得されるまでは認証は行われませんが、顔のトラッキングは正常に行われます。また、温度検知機能が有効な場合は次のように顔認証用の枠を設定し、正面からの顔の角度が鋭く表示されるようにして、カメラの視野の中央で顔を認証することを推奨します。これにより、顔認証および温度検知の精度が向上します。

    温度検知機能には、温度検知モジュール(サーマルイメージングシステム)が必要です。TemperatureCameraFactoryクラスを介して対応するサーマルイメージングシステムオブジェクトを取得することで初期化できます。サーマルイメージングシステムの初期化には数秒かかりますのでご注意ください。

    温度データの取得後、温度検知アルゴリズムによって温度値を調整する必要があります。アルゴリズムは次の手順で手動で初期化する必要があります。

    Identity Manager に Temperature Sdk Action を設定します。

    サーモカメラプレビューデータを取得します(熱力学線図)。温度データを取得したら、間に合うようにIdentify Managerに挿入する必要があります。

    認証コールバック結果から、個人の体温データを取得します。

    Passアクセスコントロールの使用

    Passアクセスコントロール機能を使用するには、グローバル初期化設定が必要です。初期化手順は次のとおりです。

    Passアクセスコントロール機能を使用するための設定は、DoorDeviceAccessProxy.setConfig(config)で変更できます。

    Passアクセスコントロール機能の主要なカテゴリ:

    • DoorDeviceAccessProxy:グローバルな初期化、リソースの解放、設定の使用、ドアのオープンコントロールなどを行います。

    • DoorAccessConfig:ドアアクセス設定のカテゴリです。

    • PassDoorDeviceAccessProxy:ドアチャイム、RS485 プロトコル、アラート、盗難アラートライトなど、PassやThunderシリーズデバイスで利用可能なアクセスコントロール機能を管理します。

    ローカルリレー経由のドアオープン

    「ローカルリレー」は、独自のアクセサリが付属したハードウェアデバイスで、ドアのオープンコントロールやドアオープン時間の設定に使用されます(ドアを開いて数秒後に閉じるなど)。本機能をサポートするハードウェアモデルは、PassとThunderシリーズです。

    Passアクセスコントロール機能の使い方は次のとおりです。

    DoorDeviceAccessProxy.openDoor()は、設定されたドアオープンの方法とクローズを遅延させる時間を自動的に取得し、自動的にドアオープン操作を実行します。利用者は具体的なオープン方法を気にする必要はなく、メソッドによって自動的に制御されます。次に示すネットワークリレーやWiegandコントローラーによるドアオープンの場合も同様です。

    特にクローズ遅延時間を30秒を超えて設定する必要がある場合、次の方法でドアを開く必要があります。

    ローカルリレーをすぐに閉じる必要がある場合、手動で次のメソッドを呼び出せます。

    ネットワークリレー経由のドアオープン

    「ネットワークリレー」は周辺機器です。ハードウェアデバイスはネットワークを介してネットワークリレーに接続し、ネットワークリレーにドアのオープンコマンドを送信することでドアオープン時間やクローズ遅延時間を制御します。本機能に対応するハードウェアモデルは、PassとThunderシリーズです。

    Passアクセスコントロール機能は、次のように使用します。

    Wiegand コントローラー経由のドアオープン

    「Wiegand コントローラー」は拡張インターフェースを介してハードウェアデバイスに接続し、データ通信にWiegandプロトコルを使用する周辺機器です。ドアオープンを制御することができます。SDKでは現在、Wiegand 26、Wiegand 32、およびWiegand 34に対応しています。本機能に対応するハードウェアモデルはPassとThunderシリーズです。

    標準的なWiegand 26プロトコルでサポートされている最大カード番号は8ビットで、カード番号のデータ転送はHIDとPIDに分かれています。HIDとPIDの生成モードに応じて、Wiegand 26は、「Wiegand 26(24 ビット)」および「Wiegand 26(8および16ビット)」の2種類のモードに分かれます。相違点は次のとおりです。

    • Wiegand 26(24 ビット): 通常使用するモードで、カード番号は int に変換され、2^16で割って整数にしたものがHIDになり、2^16の余りがPIDとなります。

    • Wiegand 26(8 および16 ビット): 特別に使用するモードで、カード番号の最初の3桁がHIDとしてintに変換され、最後の5桁がPIDとしてintに変換されます。

    Passアクセスコントロール機能の使い方は次のとおりです。

    • Wiegand 26経由のドアオープン

    • Wiegand 32 または 34 経由のドアオープン

    Wiegand カード読み取り

    「Wiegand カード読み取り」は、周辺機器であるWiegandリーダーを使用して設定する必要があります。拡張インターフェースを介してデバイスと接続し、データ通信にWiegandプロトコルを使用してICカードの番号を読み取ります。Wiegand 26、Wiegand 32、およびWiegand 34に対応しています。本機能に対応するハードウェアデバイスのモデルは、PassとThunderシリーズです。

    Passアクセスコントロール機能の使い方は次のとおりです。

    設定の完了後、Wiegand読み取りコールバックをlistenすることができます。コードの使い方は次のとおりです。

    GPIO入力デバイス

    「GPIO 入力デバイス」は、GPIOポートを介して接続されたハードウェアデバイスにGPIO信号を送信するデバイスの一種であり、ドアオープンボタン、消防アラートシグナル、ドアマグネットなどが含まれます。使用時には、ハードウェアデバイスが受信側、GPIO入力デバイスが送信側となり、GPIO入力ポートを介して通信します。本機能に対応するハードウェアデバイスのモデルは、PassとThunderシリーズです。

    Passアクセスコントロール機能は、BポートとCポートに分かれたデュアルGPIOに対応しています。使用前に関連するアクセスコントロールの設定を次のように行います。

    設定の完了後、関連する信号入力をlistenすることができます。コードの使い方は次のとおりです。

    GPIO出力デバイス

    「GPIO出力デバイス」は、ドアベルやアラートなどのハードウェアデバイスからGPIO信号を受信するために、GPIO出力ポートを介して接続された周辺機器を指します。使用時には、ハードウェアデバイスが送信側、GPIO出力デバイスが受信側となり、両者はGPIO出力ポートを介して通信します。本機能に対応するハードウェアデバイスのモデルは、PassとThunderシリーズです。

    使用前に、関連するアクセスコントロールの設定を次のように行います。

    アラートの使用時には、具体的に手動でアラートを制御したり、オフにしたりする必要があります。コードの使い方は次のとおりです。

    照明コントロール

    「照明コントロール」とはRGBフィルライト、IRフィルライト、スクリーンバックライトなど、主にハードウェアデバイスの照明アクセサリを制御します。

    IRフィルライト

    「IRフィルライト」はIRカメラモジュールの一部で、IR画像を向上させるために使用されます。フィルライトの耐用年数を延ばすために、使用していないときは電源を切るように動的に制御できます。本機能に対応するハードウェアデバイスのモデルは、PassとThunderシリーズです。

    コードの使い方は次のとおりです。

    スクリーンバックライト

    「スクリーンバックライト」はハードウェアデバイスに付属するアクセサリで、ソフトウェアアプリケーションが休止状態(ソフトウェアアプリケーションが使われていない深夜帯など)のときにスクリーンライトを消すことで、ハードウェア機器の耐用年数を延ばし、エネルギー消費を抑えることができます。本機能に対応するハードウェアデバイスのモデルは、PassとThunderシリーズです。

    コードの使い方は次のとおりです。

    RS485 プロトコル

    「RS485 プロトコル」とはシリアル通信のプロトコル規格です。RS485インターフェースは、半二重モードでの通信に対応するためにハードウェアデバイスに用意されています。半二重データの読み取り専用および書き込み専用はファームウェアによって自動的に制御されるため、上位ビジネス層ではシリアル通信にのみ注意するだけで済みます。本機能に対応するハードウェアデバイスのモデルは、PassとThunderシリーズです。

    使用前にまずRS485をオンにしてから、ユースケースに応じてボーレート、データバッファ、およびデータトランシーバーのタイムアウト時間を設定します。コードの使い方は次のとおりです。

    データを送信するには、次のコードを使用します。

    盗難アラートボタン

    「盗難アラートボタン」はハードウェアデバイスに付属しているアクセサリで、デバイスの背面に持ち上げ型ボタンで配置されています。通常動作時にボタンを押すと、ハードウェアデバイスが取り外されたときにボタンがポップアップします。ハードウェアデバイスが不正に取り外された場合は、ファームウェアレベルで感知して、警告のために 「盗難アラート」を発します。

    ファームウェアレベルでは「盗難アラートボタン」をF2キー入力イベントに変換します。すなわち「盗難アラート」が鳴るとシステム層はF2キー入力イベントを送信します。F2キーの入力イベントであるため、F2キーが押されたかどうかをlistenすれば、「盗難アラートボタン」をlistenすることができます。コードの使い方は次のとおりです。

    センサー

    「センサー」とは照明センサーや距離センサーなど、ハードウェアデバイスに付属するセンサーを指します。通過シナリオの場合、センサーの役割は次のとおりです。

    • 照明センサー:光の強度を感知し、光量の少ない環境ではアプリケーション用に 「フィルライトモード」を設定できます。

    • 距離センサー:人の接近を感知し、特定の動作を引き起こします(例えば、人が近づくと休眠状態のデバイスを起動します)。

    センサーは次のように、AndroidネイティブSDKのSensorManagerクラスで利用できます。

    ブザー

    「ブザー」はハードウェアデバイスに付属するアクセサリで、主にハードウェアデバイスでアラートが発生したときにビープ音を鳴らすために使用されます。現在、SensePass、SenseThunderE-miniデバイスのみがこの機能をサポートしています。ブザーを使用するには、次に示すコードでオンとオフを手動で制御する必要があります。

    アプリケーションシステム署名

    SDKのサンプルプロジェクトには、システム署名ファイルsensetime.jksが配置されています。このファイルをアプリケーション署名として使用すると、プリケーションがシステム権限を取得でき、システムイベントの設定やシステム設定の変更などの高いレベルの権限を必要とする操作を実行できるようになります。

    使用するにはプロジェクト内のメインモジュールのルートにsensetime.jksをコピーしてから、次の設定をbuild.gradleファイルに追加します。

    また、次のようにシステムアプリケーション宣言android:sharedUserId="android.uid.system"をAndroidManifest.xmlファイルに追加します。

    QRコード認証

    QRコード認証機能は、通常のQRコードを認識することができる機能です。使用する際にはエンコードおよびデコードライブラリとしてZXingまたはZBarを選択できます。エンドツーサイドでのデバイス認証に適していて、より高速なZBarの使用を推奨します。使用方法については,サンプルコードをご覧ください。簡単な使い方は次のとおりです。

    バージョン

    改訂日

    改訂内容

    バージョン1.0.2

    2020/4/7

    本SDKを適用できるデバイスタイプを追加

    バージョン1.0.3

    2020/5/12

    ドアアクセス機能の紹介を追加

    バージョン1.2.0

    2020/10/14

    顔の温度検知機能の紹介を追加

    android {
         ...
         compileOptions {
             sourceCompatibility JavaVersion.VERSION_1_8
             targetCompatibility JavaVersion.VERSION_1_8
         }
    }
    dependencies {
        implementation files('libs/Thunder-android-vx.x.x.aar')
        // Third-party libraries that SDK needs
        implementation 'com.alibaba:fastjson:1.2.70'
        implementation 'com.facebook.conceal:conceal:2.0.1@aar'
        implementation 'com.google.zxing:core:3.3.3'
        implementation 'com.github.open-android:pinyin4j:2.5.0'
        implementation 'com.squareup.retrofit2:retrofit:2.9.0'
        implementation 'com.squareup.okhttp3:okhttp:4.8.0'
        implementation 'com.squareup.okhttp3:logging-interceptor:4.8.0'
        implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
        implementation 'com.liulishuo.okdownload:okdownload:1.0.7'
        implementation 'com.liulishuo.okdownload:okhttp:1.0.7'
        implementation 'com.liulishuo.okdownload:sqlite:1.0.7'
    }
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.NFC" />
    // SDK initialization
    WuKong.init(this);
    // Specify the model used by the SDK. Here, take initialization on SensePass devices as an example. For more information, please see the Sample code.
    model.mMode = SDKMode.PASS;
    model.mAlignmentModel = "model/M_Align_occlusion_106_1.20.0.model";
    model.mSmallDetectModel = "model/M_Detect_Hunter_LargeFaceSelfie_Gray_11.2.0.model";
    model.mVerifyModel = "model/M_Verify_Mobilenetv2Pruned_BGR_Surveillance_4.13.0_v2_weak.model";
    model.mDoubleHackModel = "model/pass_ext/M_Liveness_Antispoofing_Binocular_3.28.0.model";
    model.mVerifyFinanceModel = "model/M_Verify_Mobilenetv2Pruned_BGR_Surveillance_4.13.0_v2_weak.model";
    model.mAttributeModel = "model/M_Attribute_MTNet_2.1.1.model";
    
    // The name of the license file
    String licenseName = "sensepass.lic";
    String productName = null;
    
    WuKong.auth(licenseName, productName, model, new IAuthCallback() {
                @Override
                public void onSuccess() {
                    // Authorization successful
                }
    
                @Override
                public void onFail(int code, String errMsg) {
                    // Authorization failed
                }
            });
    // Release SDK resources
    WuKong.release();
    <com.sensetime.camera.view.CameraTextureView
            android:id="@+id/camera_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:scalableType="centerCrop" />
    CameraTextureView mCameraView = findViewById(R.id.camera_view);
    Camera.PreviewCallback mRgbCallback = new Camera.PreviewCallback() {
            @Override
            public void onPreviewFrame(byte[] data, Camera camera) {
                // Preview data callback, which can be passed to the Identify Manager
                // IdentifyManager.getInstance().handleRgbData(data);
            }
    };
    
    // Take setting up a face camera as an example
    CameraManager faceCameraManager = CameraManager.getInstance(CameraUtils.getFaceCameraIndex());
    // Add preview data callback
    faceCameraManager.addPreviewCallbackWithBuffer(mRgbCallback);
    // Open Camera
    faceCameraManager.openCamera(getApplicationContext());
    // Set preview-related parameters, such as preview width and height, and face orientation.
    faceCameraManager.initParameters(1280, 720, 0, mCameraView.getSurfaceTexture());
    // Start Preview
    faceCameraManager.startPreview();
    
    // Stop Preview
    faceCameraManager.stopPreview();
    
    // Release Camera
    faceCameraManager.releaseCamera();
    faceCameraManager.setPreviewTexture(null);
    faceCameraManager.removePreviewCallbackWithBuffer(mRgbCallback);
    faceCameraManager.setCameraLifecycleCallback(null);
    faceCameraManager.setCameraStatusCallback(null);
    faceCameraManager.setCameraExceptionHandler(null);
    faceCameraManager.setCameraDataUpdateCallback(null);
    // Get Thermal imaging system Type
    CameraType cameraType = TemperatureCameraUtils.getCameraType();
    // Get the instance of the corresponding Thermal imaging system by camera type
    ITemperatureCamera temperatureCamera = TemperatureCameraFactory.getTemperatureCamera(cameraType);
    Initialize Thermal imaging system
    temperatureCamera.initCamera(context);
    // Set the relevant parameters of the Thermal imaging system (needs to be executed after initialization)
    temperatureCamera.setConfig(config);
    // Set whether the shutter is enabled automatically. It is true by default (Enabling the shutter improves the accuracy of temperature measurement, but shortens the service life of the device)
    temperatureCamera.setAutoShutterEnable(true);
    ITemperaturePreviewDataCallback dataCallback = new ITemperaturePreviewDataCallback() {
    
                @Override
                public void onTemperaturePreviewData(Bitmap temperatureBitmap, float[] temperatureValue, int width, int height) {
                        // Thermodynamic Diagram and Callback of Temperature Data
                }
            };
    // Add Data Callback
    temperatureCamera.addTemperaturePreviewDataCallback(dataCallback);
    // Remove the callback when the data are not in use
    temperatureCamera.removeTemperaturePreviewDataCallback(dataCallback);
    // It is worth noting that the temperature data does not refer to Celsius degrees, which can be obtained from the temperature data by the following method
    temperatureCamera.getCentigradeFromTemperatureData(temperatureValue);
    // Alternatively, it can be converted by batch
    temperatureCamera.matrixTemperature(temperatureValue,width,height,distance,x,y,w,h,tempArray);
    // Get Body Temperature of Thermal imaging system
    temperatureCamera.getCameraBodyTemperature();
    // Start Preview of Thermal imaging system
    temperatureCamera.startPreview(textureView);
    // Stop Preview of Thermal imaging system
    temperatureCamera.stopPreview();
    // Release Camera Resources of Thermal imaging system
    temperatureCamera.releaseCamera();
    // Enable Shutter (Enabling the shutter improves the accuracy of temperature measurement, but shortens the service life of the device)
    temperatureCamera.shutter();
    // Frontal Clear Single Photo
    Bitmap avatar = BitmapFactory.decode(R.id.avatar);
    int userId = 123;
    
    if (avatar != null) {
          // Get Features of the Face in the Picture
          byte[] feature = FeatureManagerProxy.getInstance().getFeature(avatar);
          // Insert Feature Library (native memory). Data persistence requires processing by upper business.
          int result = FeatureManagerProxy.getInstance().insert(userId, feature);
          if (result == 0) {
                Log.d(TAG, "Face Feature Inserted Successfully");
          }
    }
    
    // Delete Person Characteristics
    int result = FeatureManagerProxy.getInstance().delete(userId);
    if (result == 0) {
          Log.d(TAG, "Face Feature Deleted Successfully");
    }
    Camera.PreviewCallback mRgbCallback = new Camera.PreviewCallback() {
            @Override
            public void onPreviewFrame(byte[] data, Camera camera) {
                // Transfer RGB Preview Data Callback to the Identify Manager
                IdentifyManager.getInstance().handleRgbData(data);
            }
    };
    Camera.PreviewCallback mIrCallback = new Camera.PreviewCallback() {
            @Override
            public void onPreviewFrame(byte[] data, Camera camera) {
                // Transfer IR Preview Data Callback to the Identify Manager
                IdentifyManager.getInstance().handleIrData(data);
            }
    };
     // Please configure the image related settings according to the device hardware environment
    ImageConfig imageConfig = new ImageConfig.Builder()
              .previewW(1280)
              .previewH(720)
              .faceOrientation(FaceOrientation.UP)
              .pixelFormat(MidPixelFormat.NV21)
              .build();
    
    
    // Initialize
    IdentifyManager.getInstance().init(imageConfig,identifyCallback);
    
    // Set Identification Mode of the Identify Manager
    IdentifyManager.getInstance().setVerifyMode(VerifyModeEnum.MODE_1_N);
    // Set Result Callback
    IdentifyManager.getInstance().setIdentifyCallback(identifyCallback);
    // Enable Identification
    IdentifyManager.getInstance().start();
    
    // Stop Identification
    IdentifyManager.getInstance().stop();
    
    // Release the Identify Manager
    IdentifyManager.getInstance().release();
    IdentifyConfig identifyConfig = IdentifyManager.getInstance().getIdentifyConfig();
    IdentifyConfig.hasLiveness = true; // Enable liveness detection
    identifyConfig.isSingleLiveness = DeviceInfoUtils.isSenseIDProduct();   // For monocular liveness detection, this item should be enabled only for ID series devices
    identifyConfig.isSenseGateConfig = DeviceInfoUtils.isSenseGateProduct();  // Turn this on only if the device used is SenseGate series
    identifyConfig.isContinueVerify = true; // IdentifyConfig.isContinueVerify = true; / / Whether to recognize continuously. If enabled, it will be recognized continuously (the face needs to be in the camera field of view). It is used together with the continueVerifyIntervalTime parameter.
    identifyConfig.continueVerifyIntervalTime = 3000L;  // Interval for continuous identification of the same face, which takes effect when isContinueVerify is set to true
    identifyConfig.hasTemperatureDetection = false;
    identifyConfig.isServerVerify = false;
    IdentifyManager.getInstance().setIdentifyConfig(identifyConfig);
    
    // The modifications are shown here - In 1:N matching, the matching threshold is changed to 0.83f and the liveness filtering threshold is 0.95f (if exceeded, it is non-liveness), with a minimum identification of 100 pixels of the face
    ThresholdConfig thresholdConfig = IdentifyManager.getInstance().getThresholdConfig();
    thresholdConfig.verifyScore = 0.83f;
    thresholdConfig.livenessScore = 0.95f;
    thresholdConfig.faceMinWidth = 100;
    thresholdConfig.verifyAreaRect = new RectF(0, 0, mPreviewHeight, mPreviewWidth);
    IdentifyManager.getInstance().setThresholdConfig(thresholdConfig);
    IIdentifyResultCallback identifyCallback = new IIdentifyResultCallback() {
    
        @Override
        public void onDrawFaces(@Nullable List<FaceInfo> list) {
            // Face Detection Callback, which can be used to draw a face calibration frame.
            // Please note that the callbakc occurs when identification is paused, which means that faces are still being tracked in the process, but just not recognized
        }
    
        @Override
        public void onClearScreen() {
            // Clear Screen Callback. Clear the screen with this callback when there appears no face in the field of view
        }
    
    Please note that the callbakc o
        public void onUnknown(float faceW) {
                    // If the face is too large or too small to determine whether it is liveness or not, notice is given with this method
        }
    
        @Override
        public void onIdentifyResult(List<FrameIdentifyResult> frameIdentifyResults) {
                    // Identify Result Callback
        }
    };
    
    // Set Result Callback
    IdentifyManager.getInstance().setIdentifyCallback(identifyCallback);
    // Remove Identify Callback
    IdentifyManager.getInstance().setIdentifyCallback(null);
    // Initialization of the Identify Manager is the same as that of 1:N
    // When the Identify Manager is switched from 1:N to 1:1, it is necessary to set the single identification feature first, and then switch the mode
    
    Bitmap singleTarget = BitmapFactory.decodeResource(getResource(), R.mipmap.face);
    boolean setupResult = IdentifyManager.getInstance().setIdentifyTarget(singleTarget);
    // Set Identification Mode of the Identify Manager. Before setting it, make sure that the individual identification feature is set successfully.
    if (setupResult) {
        IdentifyManager.getInstance().setVerifyMode(VerifyModeEnum.MODE_1_1);
    }
    // 1. Enable Server Verify Mode 
    IdentifyManager.getInstance().setVerifyMode(VerifyModeEnum.MODE_SERVER_1_1);
    
    // 2. Implement Server Verify Action
    IServerVerifyAction serverVerify = new IServerVerifyAction() {
            @Override
            public <T extends FaceSearchResult> T verify(@NonNull byte[] cameraData, byte[] feature, @Nullable FaceInfo rgbFace,int width, int height) {
    
                  // Upload Data via http Request and Get Identification Result (note to set a reasonable request timeout).
                // ..code
    
                // Build Face Search Result and Return It, as shown in the following example
                FaceSearchResult result = new FaceSearchResult();
                result.score = 0.93f;
                result.userID = 12345;
    
                return (T) result;
            }
    };
    
    // 3. Set Server Verify Action
    IdentifyManager.getInstance().setServerVerifyAction(serverVerify);
    // Open Wear Mask Identify
    IdentifyConfig identifyConfig = IdentifyManager.getInstance().getIdentifyConfig();
    identifyConfig.isOpenWearMaskIdentify = true;
    IdentifyManager.getInstance().setIdentifyConfig(identifyConfig);
    
    // Get Face Identify Result Through Identify Result Callback Interface
    IIdentifyResultCallback identifyCallback = new IIdentifyResultCallback() {
    
        @Override
        public void onDrawFaces(@Nullable List<FaceInfo> list) {
            // Face Detection Callback, which can be used to draw a face calibration frame.
            // Please note that this callback still occurs when identification is paused, which means that faces are still being tracked in the process, but just not recognized
        }
    
        @Override
        public void onClearScreen() {
            // Clear Screen Callback. Clear the screen with this callback when there appears no face in the field of view
        }
    
        @Override
        public void onUnknown(float faceW) {
                    // If the face is too large or too small to determine whether it is liveness or not, notice is given with this method
        }
    
        @Override
        public void onIdentifyResult(List<FrameIdentifyResult> frameIdentifyResults) {
                    // Identify Result Callback
          for (int i = 0; i < frameIdentifyResults.size(); i++) {
                FrameIdentifyResult frameIdentifyResult = frameIdentifyResults.get(i);
                List<FaceIdentifyResult> faceIdentifyResults = frameIdentifyResult.faceIdentifyResults;
                for (int j = 0; j < faceIdentifyResults.size(); j++) {
                    FaceIdentifyResult faceIdentifyResult = faceIdentifyResults.get(j);
                      // Get Face Identify Result
                      boolean mask = faceIdentifyResult.isMask();
                }
            }
        }
    };
    
    // Set Result Callback
    IdentifyManager.getInstance().setIdentifyCallback(identifyCallback);
    IdentifyConfig identifyConfig = IdentifyManager.getInstance().getIdentifyConfig();
    identifyConfig.hasTemperatureDetection = true;    // Enable Temperature Detection
    IdentifyManager.getInstance().setIdentifyConfig(identifyConfig);
    ThresholdConfig thresholdConfig = IdentifyManager.getInstance().getThresholdConfig();
    thresholdConfig.faceMinWidth = 200; // In the temperature measurement, it needs to be closer, and the width of the face needs to be set larger.
    thresholdConfig.pitch = 20;   // In the temperature measurement, the requirements are more stringent, and face facing forward helps to measure the temperature more accurately
    thresholdConfig.roll = 20;
    thresholdConfig.yaw = 20;
    thresholdConfig.verifyAreaRect = new RectF(125, 400, 565, 835); // Take the SensePass device as an example       
    IdentifyManager.getInstance().setThresholdConfig(thresholdConfig);
    // Get Camera Type
    CameraType type = TemperatureCameraUtils.getCameraType();
    // Create Thermal imaging system Object
    ITemperatureCamera mTemperatureCamera = TemperatureCameraFactory.getTemperatureCamera(type);
    // Initialize
    mTemperatureCamera.initCamera(this);
    // Initialize Temperature Comparison Algorithm (for calibration temperature)
    TemperConvertCallback temperConvertCallback = new TemperConvertCallback() {
    
                private float[] tempArray;
    
                @Override
                public float temperConvertCentigrade(float temper) {
    
                    return TemperatureCameraFactory.getTemperatureCamera(type).getCentigradeFromTemperatureData(temper);
                }
    
                @Override
                public float[] getTempMatrix(float[] y16Frame, int y16W, int y16H, float distance, int x, int y, int w, int h) {
    
                    int size = w * h;
                    if (tempArray == null || tempArray.length != size) {
                        tempArray = new float[size];
                    }
                    TemperatureCameraFactory.getTemperatureCamera(type).matrixTemperature(y16Frame, y16W, y16H, distance, x, y, w, h,                                         temperConvertCallback = tempArray);
                    return tempArray;
                }
            };
    int ret = TemperatureActionProxy.init(algorithmVersio, temperConvertCallbackn);
    if(ret == 0) {
            Log.d(TAG, "Temperature Measurement Algorithm Initialized Successfully");
    }
    ITemperatureSdkAction action = new ITemperatureSdkAction() {
    
                @Override
                public <T extends TrackAndTemperatureResult> List<T> temperCalculateAir(MatchFace[] matchFaces, @Nullable Bitmap temperatureBitmap, float[] temperatureData, int temperatureWidth, int temperatureHeight, FaceOrientation temperatureOrientation) {
                    // Ambient temperature of equipment in use 
                    // when CameraType is CameraType.GUIDE120 or CameraType.IRAY,Examples code
                       MatchFace matchFace = matchFaces[0];
                        float envTemperature = 25.1f;
                        TemperInfo temperInfo = TemperatureActionProxy.temperCalculateObtainRect(matchFace.rgbFace, temperatureData,
                                                                                         temperatureWidth, temperatureHeight, FaceOrientation.UP.getValue(), envTemperature, 0.1f);
                        TrackAndTemperatureResult trackAndTemperatureResult = new TrackAndTemperatureResult();
                        trackAndTemperatureResult.setFaceInfo(matchFace.rgbFace);
                        trackAndTemperatureResult.setIrFaceInfo(matchFace.irFace);
                        trackAndTemperatureResult.setTemperature(temperInfo.temper);
    
                        List<T> ts = new ArrayList<>();
                        ts.add((T) trackAndTemperatureResult);
                        return ts;
                }
            };
                }
            };
    // Set Temperature Sdk Action
    IdentifyManager.getInstance().setTemperatureSdkAction(action);
    ITemperaturePreviewDataCallback mPreviewDataCallback = 
              new ITemperaturePreviewDataCallback() {
    
              @Override
          public void onTemperaturePreviewData(
                Bitmap temperatureBitmap, float[] temperatureValue, int width, int height) {
    
                    // temperatureBitmap - thermodynamic diagram, which can be used to draw a temperature bitmap preview
                    // temperatureValue - Temperature Data
                    // width, height - heat Width and height of Thermodynamic Diagram
    
                    // Inject temperature data into the Identify Manager (if temperature data are not injected after the temperature measurement function is enabled, no recognition will be performed)
                    IdentifyManager.getInstance().handleTemperatureData(
                      temperatureBitmap, temperatureValue,width, height, mCameraUseConfig.faceOrientation);
                }
            };
    
    // Set Callback
    mTemperatureCamera.addTemperaturePreviewDataCallback(mPreviewDataCallback);
    // Get Face Identify Result Through Identify Result Callback Interface
    IIdentifyResultCallback identifyCallback = new IIdentifyResultCallback() {
    
        @Override
        public void onDrawFaces(@Nullable List<FaceInfo> list) {
            // Face Detection Callback, which can be used to draw a face calibration frame.
            // It should be noted that this callback still occurs when identification is paused, which means that faces are still being tracked in the process, but just not recognized
        }
    
        @Override
        public void onClearScreen() {
            // Clear Screen Callback. Clear the screen with this callback when there appears no face in the field of view
        }
    
        @Override
        public void onUnknown(float faceW) {
                    // If the face is too large or too small to determine whether it is liveness or not, notice is given with this method
        }
    
        @Override
        public void onIdentifyResult(List<FrameIdentifyResult> frameIdentifyResults) {
                    // Identify Result Callback
                  for (int i = 0; i < frameIdentifyResults.size(); i++) {
                FrameIdentifyResult frameIdentifyResult = frameIdentifyResults.get(i);
                if (frameIdentifyResult == null
                        || frameIdentifyResult.faceIdentifyResults == null
                        || frameIdentifyResult.faceIdentifyResults.size() <= 0) {
                    continue;
                }
                List<FaceIdentifyResult> faceIdentifyResults = frameIdentifyResult.faceIdentifyResults;
                for (int j = 0; j < faceIdentifyResults.size(); j++) {
                    FaceIdentifyResult faceIdentifyResult = faceIdentifyResults.get(j);
                    if (faceIdentifyResult == null || faceIdentifyResult.getIdentifyResultTypeEnum() == null) {
                        continue;
                    }
                    TrackAndTemperatureResult trackAndTemperatureResult = faceIdentifyResult.getTrackAndTemperatureResult();
                    float temperature = 0;
                    if (trackAndTemperatureResult != null) {
                        temperature = trackAndTemperatureResult.getTemperature();
                    }
                    Log.i(TAG, String.format(Locale.getDefault(), "userId-%d temperature is %f",
                                             faceIdentifyResult.getUserId(), temperature));
                }
            }
        }
    };
    
    // Set Result Callback
    IdentifyManager.getInstance().setIdentifyCallback(identifyCallback);
    // Pass access control function initialization, must be called before use of the access control function
    DoorDeviceAccessProxy.init();
    
    final DoorAccessConfig config = new DoorAccessConfig.Builder()
            // Set GPIO B port input type, which can be set to GPIO_IN_NONE by default
            .setGpioInB(DoorAccessConfig.GPIO_IN_NONE)
            // Set GPIO C port input type, which can be set to GPIO_IN_NONE by default
            .setGpioInC(DoorAccessConfig.GPIO_IN_NONE)
            // Set Open Door Time, only for local relays (here set to close after 5 seconds of opening)
            .setOpenDoorTime(5)
            // Set GPIO Output Type
            .setGpioOutA(DoorAccessConfig.GPIO_OUT_NONE)
            // Control RS485 data reading and writing by the Rom itself (Rom support is required. Please set it to false if Rom does not support)
            .setIsSupportRS485GpioAutoControl(true)
            // Set Wiegand Input Protocol Type
            .setWiegandInput(DoorAccessConfig.WIEGAND26_24_BIT)
            // Set Open Door Mode
            .setOpenDoorMode(DoorAccessConfig.OPEN_DOOR_MODE_RELAY)
            .Setthe Serial Port Baud Rate for RS485 Protocol
            .setRS485BaudRate(9600)
            .build();
    DoorDeviceAccessProxy.setConfig(config);
    // Set Open Door Mode to "Local Relay"
    DoorAccessConfig mDoorAccessConfig = DoorDeviceAccessProxy.getConfig();
    mDoorAccessConfig.setOpenDoorMode(DoorAccessConfig.OPEN_DOOR_MODE_RELAY);
    DoorDeviceAccessProxy.setConfig(mDoorAccessConfig);
    
    // This method is a global door opening method, which will automatically execute the door opening action according to the door opening method set in the config
    // The IC card number is only used when the input parameter is Wiegand Open Door. Transfer it directly here. “
    DoorDeviceAccessProxy.openDoor("");
    // Open the door until opDoorTime time before closing the door. The delayed opening time is directly determined by
    DoorDeviceAccessProxy.openDoorWithRelay(openDoorTime * 1000);
    DoorDeviceAccessProxy.closeRelayDoor();
    DoorAccessConfig mDoorAccessConfig = DoorDeviceAccessProxy.getConfig();
    // Just fill in the IP, the port has been defaulted to 12345. If it was set during initialization, no need set repeatedly here
    mDoorAccessConfig.setRelayIp("192.168.12.11");
    // Set Open Door Mode as Network Relay
    mDoorAccessConfig.setOpenDoorMode(DoorAccessConfig.OPEN_DOOR_MODE_IP_RELAY);
    DoorDeviceAccessProxy.setConfig(mDoorAccessConfig);
    
    // The parameter is the delayed closing time, which can be set freely
    DoorDeviceAccessProxy.openDoor("");
    String cardNumver = "12345678";
    // Open Door via Wiegand 26 (24bit)
    DoorDeviceAccessProxy.openDoor(cardNumber);
    String cardNumver = "1234567890";
    DoorDeviceAccessProxy.openDoor(cardNumber);
    DoorAccessConfig config = DoorDeviceAccessProxy.getConfig();
    // This is set to the Wiegand 26 standard card reader
    config.setWiegandInput(DoorAccessConfig.WIEGAND26_24_BIT);
    DoorDeviceAccessProxy.setConfig(config);
    DoorDeviceAccessProxy.setCardReaderCallback(
                new WiegandReaderDevice.CardReaderCallback() {
    
        @Override
        public void onRead(String cardNumber) {
            // The card number is read successfully, and the cardNumber is the card number
        }
    });
    DoorAccessConfig mDoorAccessConfig = DoorDeviceAccessProxy.getConfig();
    // Here it is assumed that the peripheral device is connected to port B to connect to the door button. If you use port C, please set doorAccessConfig.setGpioInC()
    mDoorAccessConfig.setGpioInB(DoorAccessConfig.GPIO_IN_DOOR_BUTTON);
    DoorDeviceAccessProxy.setConfig(mDoorAccessConfig);
    // When Using Door Button
    PassDoorDeviceAccessProxy.setOnClickDoorButtonListener(
                    new DoorButtonDevice.DoorButtonOnClickListener() {
    
            @Override
            public void onClick() {
                // Receive Door Opening Signal
            }
    });
    
    // When Using Receive Fire Sign Listener
    PassDoorDeviceAccessProxy.setReceiveFireSignListener(
                    new FireSignalDevice.ReceiveFireSignListener() {
    
            @Override
            public void onReceive() {
                // Receive Fire Signal
            }
    });
    
    // When using door sensors
    PassDoorDeviceAccessProxy.setDoorStateCallback(
                    new PassDoorDeviceAccessProxy.DoorMagnetismStateCallback() {
    
            @Override
            public void onDoorStateChanged(int state) {
                if (state == '0') {
                    // Door Magnetism State- Off
                } else {
                    // Door Magnetism State- On
                }
            }
    });
    DoorAccessConfig sgDoorAccessConfig = DoorDeviceAccessProxy.getConfig();
    // It is assumed here that the doorbell is used
    sgDoorAccessConfig.setGpioOutA(DoorAccessConfig.GPIO_OUT_DOOR_BELL);
    DoorDeviceAccessProxy.setConfig(sgDoorAccessConfig);
    
    // When the doorbell rings, the parameter is the time (the actual ringing time may have errors, because the doorbell manufacturer may set the ringing according to the number of times, rather than the specific length of time)
    PassDoorDeviceAccessProxy.pressDoorBell(2000);
    // Alarm goes off
    PassDoorDeviceAccessProxy.pressAlarmBell();
    // Manually turn off the alarm
    PassDoorDeviceAccessProxy.releaseAlarmBell();
    // Turn on IR fill light
    PassDoorDeviceAccessProxy.turnOnIrLight();
    
    // Turn off IR fill light
    PassDoorDeviceAccessProxy.turnOffIrLight();
    // Turn off screen backlight
    PassDoorDeviceAccessProxy.closeBackLight();
    
    // Turn on screen backlight
    PassDoorDeviceAccessProxy.openBackLight();
    // Start rs485, baud rate 9600, read buffer size 32, timeout 3s
    PassDoorDeviceAccessProxy..enableRS485(9600, 32, 
                new RS485Device.RS485ReceiveListener() {
    
                @Override
                public void onReceive(byte[] data, long dataLength) {
                    // Received data
                }
    
            }, 3000, new SerialPortReader.OnReadTimeOutListener() {
    
                @Override
                public void onTimeout(byte[] data, long dataLength) {
                    // Data read timeout
                }
            }
    });
    PassDoorDeviceAccessProxy.sendDataByRS485(data);
    // Listen to it in the Activity via the onKeyUp() event
    public class ForceDisassemblyDemoActivity extends AppCompatActivity {
    
        // Omit redundant code
    
        @Override
        public boolean onKeyUp(int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_F2) {
                // Listen to tamper alarm
            }
            return super.onKeyUp(keyCode, event);
        }
    }
    SensorManager mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    // Use the light sensor. To use a distance sensor, use the parameter Sensor.TYPE_PROXIMITY
    Sensor lightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
    if (lightSensor != null) {
    
        mSensorManager.registerListener(new SensorEventListener() {
            @Override
            public void onSensorChanged(SensorEvent event) {
                // Get the specific value via event.value[0] and do specific processing
            }
    
            @Override
            public void onAccuracyChanged(Sensor sensor, int accuracy) {
    
            }
        }, lightSensor, SensorManager.SENSOR_DELAY_NORMAL);
    
    } else {
         // Sensor not available
    }
    // Turn on Buzzer
    PassDoorDeviceAccessProxy.pressBuzzer();
    
    // Turn off Buzzer
    PassDoorDeviceAccessProxy.releaseBuzzer();
    android {
    
        signingConfigs {
            system {
                keyAlias 'sensetime'
                keyPassword 'sensetime'
                storeFile file('./sensetime.jks')
                storePassword 'sensetime'
            }
        }
    
        buildTypes {
            debug {
                signingConfig signingConfigs.system
                // ...
            }
            release {
                signingConfig signingConfigs.system
                // ...
            }
        }    
    }
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.sensetime.wksample"
        android:sharedUserId="android.uid.system">
    </manifest>
    QRCodeDecoderProxy qRCodeDecoder = new QRCodeDecoderProxy(new ZBarDecoderImpl());
    // previewData is the camera preview frame data
    qRCodeDecoder.decodeQRCode(previewData, 1280, 720);
    android {
         ...
         compileOptions {
             sourceCompatibility JavaVersion.VERSION_1_8
             targetCompatibility JavaVersion.VERSION_1_8
         }
    }
    dependencies {
        implementation files('libs/Thunder-android-vx.x.x.aar')
        //SDKで必要なサードパーティのライブラリ
        implementation 'com.alibaba:fastjson:1.2.70'
        implementation 'com.facebook.conceal:conceal:2.0.1@aar'
        implementation 'com.google.zxing:core:3.3.3'
        implementation 'com.github.open-android:pinyin4j:2.5.0'
        implementation 'com.squareup.retrofit2:retrofit:2.9.0'
        implementation 'com.squareup.okhttp3:okhttp:4.8.0'
        implementation 'com.squareup.okhttp3:logging-interceptor:4.8.0'
        implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
        implementation 'com.liulishuo.okdownload:okdownload:1.0.7'
        implementation 'com.liulishuo.okdownload:okhttp:1.0.7'
        implementation 'com.liulishuo.okdownload:sqlite:1.0.7'
    }
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.NFC" />
    //SDKを初期化します
    WuKong.init(this);
    //SDKで使用されているモデルを指定します。ここでは、SensePass デバイスでの初期化を例にとります。詳細については、サンプルコードをご覧ください。
    model.mMode = SDKMode.PASS;
    model.mAlignmentModel = "model/M_Align_occlusion_106_1.20.0.model";
    model.mSmallDetectModel = "model/M_Detect_Hunter_LargeFaceSelfie_Gray_11.2.0.model";
    model.mVerifyModel = "model/M_Verify_Mobilenetv2Pruned_BGR_Surveillance_4.13.0_v2_weak.model";
    model.mDoubleHackModel = "model/pass_ext/M_Liveness_Antispoofing_Binocular_3.28.0.model";
    model.mVerifyFinanceModel = "model/M_Verify_Mobilenetv2Pruned_BGR_Surveillance_4.13.0_v2_weak.model";
    model.mAttributeModel = "model/M_Attribute_MTNet_2.1.1.model";
    
    // assets ディレクトリ内のライセンスファイルの名前
    String licenseName = "sensepass.lic";
    String productName = null;
    
    WuKong.auth(licenseName, productName, model, new IAuthCallback(){
                @Override
                public void onSuccess(){
                    // アクティベーションに成功
                }
    
                @Override
                public void onFail(int code, String errMsg){
                    // アクティベーションに失敗
                }
            });
    //SDKリソースを解放します
    WuKong.release();
    <com.sensetime.camera.view.CameraTextureView
            android:id="@+id/camera_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:scalableType="centerCrop" />
    CameraTextureView mCameraView = findViewById(R.id.camera_view);
    Camera.PreviewCallback mRgbCallback = new Camera.PreviewCallback(){
            @Override
            public void onPreviewFrame(byte[] data, Camera camera){
                // Identify Manager に渡すことができる、データをプレビューするコールバック
                // IdentifyManager.getInstance().handleRgbData(data);
            }
    };
    
    // 顔カメラの設定を例にとります
    CameraManager faceCameraManager = CameraManager.getInstance(CameraUtils.getFaceCameraIndex());
    // データをプレビューするコールバックを追加します
    faceCameraManager.addPreviewCallbackWithBuffer(mRgbCallback);
    // カメラを有効化します
    faceCameraManager.openCamera(getApplicationContext());
    // プレビューの幅や高さ、顔の方向など、プレビュー関連のパラメーターを設定します
    faceCameraManager.initParameters(1280, 720, 0, mCameraView.getSurfaceTexture());
    // プレビューを開始します
    faceCameraManager.startPreview();
    
    // プレビューを停止します
    faceCameraManager.stopPreview();
    
    // カメラを解放します
    faceCameraManager.releaseCamera();
    faceCameraManager.setPreviewTexture(null);
    faceCameraManager.removePreviewCallbackWithBuffer(mRgbCallback);
    faceCameraManager.setCameraLifecycleCallback(null);
    faceCameraManager.setCameraStatusCallback(null);
    faceCameraManager.setCameraExceptionHandler(null);
    faceCameraManager.setCameraDataUpdateCallback(null);
    // サーマルイメージングシステムタイプを取得します
    CameraType cameraType = TemperatureCameraUtils.getCameraType();
    // カメラタイプに応じて、関連するサーマルイメージングシステムのインスタンスを取得します
    ITemperatureCamera temperatureCamera = TemperatureCameraFactory.getTemperatureCamera(cameraType);
    Initialize Thermal imaging system
    temperatureCamera.initCamera(context);
    // サーマルイメージングシステムの関連パラメーターを設定します(初期化後に実行する必要があります)
    temperatureCamera.setConfig(config);
    // シャッターを自動的に有効にするかどうかを設定します。デフォルトではtrueです(シャッターを有効にすると温度検知の精度が向上しますが、デバイスの耐用年数が短くなります)。
    temperatureCamera.setAutoShutterEnable(true);
    ITemperaturePreviewDataCallback dataCallback = new ITemperaturePreviewDataCallback(){
    
                @Override
                public void onTemperaturePreviewData(Bitmap temperatureBitmap, float[] temperatureValue, int width, int height){
                        // 熱力学線図および温度データのコールバック
                }
            };
    // データコールバックを追加します
    temperatureCamera.addTemperaturePreviewDataCallback(dataCallback);
    // データが使用されていない場合、コールバックを削除します。
    temperatureCamera.removeTemperaturePreviewDataCallback(dataCallback);
    // 温度データは、摂氏で表示されないことに注意する必要があります。摂氏でデータを取得する場合は、次の方法で求めることができます。
    temperatureCamera.getCentigradeFromTemperatureData(temperatureValue);
    // または一括で変換することも可能です。
    temperatureCamera.matrixTemperature(temperatureValue,width,height,distance,x,y,w,h,tempArray);
    // サーマルイメージングシステムから体温を取得します
    temperatureCamera.getCameraBodyTemperature();
    // サーマルイメージングシステムのプレビューを開始します
    temperatureCamera.startPreview(textureView);
    // サーマルイメージングシステムのプレビューを停止します
    temperatureCamera.stopPreview();
    // サーマルイメージングシステムのカメラリソースを解放します
    temperatureCamera.releaseCamera();
    // シャッターを有効にします(シャッターを有効にすると温度検知の精度が向上しますが、デバイスの耐用年数が短くなります)
    temperatureCamera.shutter();
    // 正面からの鮮明な写真1枚
    Bitmap avatar = BitmapFactory.decode(R.id.avatar);
    int userId =123;
    
    if(avatar != null){
          // 写真から顔フィーチャーを取得します
          byte[] feature = FeatureManagerProxy.getInstance().getFeature(avatar);
          // フィーチャーライブラリを挿入します(ネイティブメモリ)。データの永続化には、上位ビジネス層での処理が必要です。
          int result = FeatureManagerProxy.getInstance().insert(userId, feature);
          if(result == 0){
                Log.d(TAG, "Face Feature Inserted Successfully");
          }
    }
    
    // 人物のフィーチャーを削除します
    int result = FeatureManagerProxy.getInstance().delete(userId);
    if(result == 0){
          Log.d(TAG, "Face Feature Deleted Successfully");
    }
    Camera.PreviewCallback mRgbCallback = new Camera.PreviewCallback(){
            @Override
            public void onPreviewFrame(byte[] data, Camera camera){
                // Identity Manager に RGB データのプレビューコールバックを転送します
                IdentifyManager.getInstance().handleRgbData(data);
            }
    };
    Camera.PreviewCallback mIrCallback = new Camera.PreviewCallback(){
            @Override
            public void onPreviewFrame(byte[] data, Camera camera){
                // Identity Manager に IR データのプレビューコールバックを転送します
                IdentifyManager.getInstance().handleIrData(data);
            }
    };
     // デバイスのハードウェア環境に応じた、画像関連の設定を構成します
    ImageConfig imageConfig = new ImageConfig.Builder()
              .previewW(1280)
              .previewH(720)
              .faceOrientation(FaceOrientation.UP)
              .pixelFormat(MidPixelFormat.NV21)
              .build();
    
    
    // 初期化します
    IdentifyManager.getInstance().init(imageConfig,identifyCallback);
    
    // Identify Manager の認証モードを設定します
    IdentifyManager.getInstance().setVerifyMode(VerifyModeEnum.MODE_1_N);
    // 結果のコールバックを設定します
    IdentifyManager.getInstance().setIdentifyCallback(identifyCallback);
    //認証を有効にします
    IdentifyManager.getInstance().start();
    
    //認証を停止します
    IdentifyManager.getInstance().stop();
    
    // Identify Manager を解放します
    IdentifyManager.getInstance().release();
    IdentifyConfig identifyConfig = IdentifyManager.getInstance().getIdentifyConfig();
    IdentifyConfig.hasLiveness = true; // 生体検知を有効にします
    identifyConfig.isSingleLiveness = DeviceInfoUtils.isSenseIDProduct();   // モノキュラカメラによる生体検知では、本項目はIDシリーズのデバイスのみで有効にする必要があります
    identifyConfig.isSenseGateConfig = DeviceInfoUtils.isSenseGateProduct();  // 使用しているデバイスが SenseGateシリーズの場合のみ、オンにします
    identifyConfig.isContinueVerify = true; // IdentifyConfig.isContinueVerify = true; / / 連続して認証するかどうか。有効にすると、連続して認識されます(顔がカメラの視野に入っている必要があります)。continueVerifyIntervalTimeパラメーターと一緒に使用します。
    identifyConfig.continueVerifyIntervalTime = 3000L;  // 同じ顔を続けて認証する間隔。isContinueVerifyがtrueに設定されている場合に有効になります。
    identifyConfig.hasTemperatureDetection = false;
    identifyConfig.isServerVerify = false;
    IdentifyManager.getInstance().setIdentifyConfig(identifyConfig);
    
    // 修正点は次のとおりです。1:N認証で、照合閾値が0.83fに、生体フィルタリング閾値が0.95f(超える場合は非生体になります)に変更されました。顔認証の最小値は、100ピクセルです。
    ThresholdConfig thresholdConfig = IdentifyManager.getInstance().getThresholdConfig();
    thresholdConfig.verifyScore = 0.83f;
    thresholdConfig.livenessScore = 0.95f;
    thresholdConfig.faceMinWidth =100;
    thresholdConfig.verifyAreaRect = new RectF(0, 0, mPreviewHeight, mPreviewWidth);
    IdentifyManager.getInstance().setThresholdConfig(thresholdConfig);
    IIdentifyResultCallback identifyCallback = new IIdentifyResultCallback(){
    
        @Override
        public void onDrawFaces(@Nullable List<FaceInfo> list){
            // 顔検知のコールバック。顔設定フレームの描画に使用されます。
            // 認証が一時停止されても、このコールバックは発生することに注意する必要があります。その場合、プロセス内で顔はトラッキングされているものの、認識されていない状態となります。
        }
    
        @Override
        public void onClearScreen(){
            // スクリーンを消去するコールバック。カメラの視野に顔が入っていない場合、本コールバックでスクリーンを消去します。
        }
    
        @Override
        public void onUnknown(float faceW){
                    // 顔が大きすぎたり、小さすぎたりして、生体であるかどうか判断できない場合は、本メソッドで通知されます
        }
    
        @Override
        public void onIdentifyResult(List<FrameIdentifyResult> frameIdentifyResults){
                    //認証結果のコールバック
        }
    };
    
    // 結果を設定するコールバック
    IdentifyManager.getInstance().setIdentifyCallback(identifyCallback);
    // 結果のコールバックを削除します
    IdentifyManager.getInstance().setIdentifyCallback(null);
    // Identify Managerの初期化は、1:N認証の場合と同様です
    // Identify Managerを1:Nから1:1に切り替える場合、まず単一の認証機能を設定してから、モードを切り替える必要があります
    
    Bitmap singleTarget = BitmapFactory.decodeResource(getResource(), R.mipmap.face);
    boolean setupResult = IdentifyManager.getInstance().setIdentifyTarget(singleTarget);
    // Identify Managerの認証モードを設定します。設定する前に、各認証機能が正常に設定されているか確認します。
    if(setupResult){
        IdentifyManager.getInstance().setVerifyMode(VerifyModeEnum.MODE_1_1);
    }
    //1. サーバー認証モードを有効にします
    IdentifyManager.getInstance().setVerifyMode(VerifyModeEnum.MODE_SERVER_1_1);
    
    //2. サーバー認証操作を実行します
    IServerVerifyAction serverVerify = new IServerVerifyAction(){
            @Override
            public <T extends FaceSearchResult> T verify(@NonNull byte[] cameraData, byte[] feature, @Nullable FaceInfo rgbFace,int width, int height){
    
                  // HTTPリクエストを介してデータをアップロードし、認証結果を取得します(適切なリクエストのタイムアウトを設定するようにご注意ください)
                // ..コード
    
                // 次の例のように、顔の検索結果を構築して取得します
                FaceSearchResult result = new FaceSearchResult();
                result.score = 0.93f;
                result.userID =12345;
    
                return(T)result;
            }
    };
    
    // 3. サーバー認証操作を設定します
    IdentifyManager.getInstance().setServerVerifyAction(serverVerify);
    // マスク着用認証を有効化します
    IdentifyConfig identifyConfig = IdentifyManager.getInstance().getIdentifyConfig();
    identifyConfig.isOpenWearMaskIdentify = true;
    IdentifyManager.getInstance().setIdentifyConfig(identifyConfig);
    
    // 認証結果のコールバックインターフェースを介して、顔認証結果を取得します
    IIdentifyResultCallback identifyCallback = new IIdentifyResultCallback(){
    
        @Override
        public void onDrawFaces(@Nullable List<FaceInfo> list){
            // 顔検知のコールバック。顔設定フレームの描画に使用されます。
            // 認証が一時停止されても、このコールバックは発生することに注意する必要があります。その場合、プロセス内で顔はトラッキングされているものの、認識されていない状態となります。
        }
    
        @Override
        public void onClearScreen(){
            // スクリーンを消去するコールバック。カメラの視野に顔が入っていない場合、本コールバックでスクリーンを消去します。
        }
    
        @Override
        public void onUnknown(float faceW){
                    // 顔が大きすぎたり、小さすぎたりして、生体であるかどうか判断できない場合は、本メソッドで通知されます
        }
    
        @Override
        public void onIdentifyResult(List<FrameIdentifyResult> frameIdentifyResults){
                    //認証結果のコールバック
          for(int i = 0; i < frameIdentifyResults.size(); i++){
                FrameIdentifyResult frameIdentifyResult = frameIdentifyResults.get(i);
                List<FaceIdentifyResult> faceIdentifyResults = frameIdentifyResult.faceIdentifyResults;
                for(int j = 0; j < faceIdentifyResults.size(); j++){
                    FaceIdentifyResult faceIdentifyResult = faceIdentifyResults.get(j);
                      // 顔認証結果を取得します
                      boolean mask = faceIdentifyResult.isMask();
                }
            }
        }
    };
    
    // 結果を設定するコールバック
    IdentifyManager.getInstance().setIdentifyCallback(identifyCallback);
    IdentifyConfig identifyConfig = IdentifyManager.getInstance().getIdentifyConfig();
    identifyConfig.hasTemperatureDetection = true;    // 温度検知を有効にします
    IdentifyManager.getInstance().setIdentifyConfig(identifyConfig);
    ThresholdConfig thresholdConfig = IdentifyManager.getInstance().getThresholdConfig();
    thresholdConfig.faceMinWidth = 200; // 温度検知では、近距離で、顔の幅を大きめに設定する必要があります
    thresholdConfig.pitch = 20;   // 温度検知ではより厳しい条件が求められますが、前を向く顔であれば、より正確に温度を計測できます
    thresholdConfig.roll = 20;
    thresholdConfig.yaw = 20;
    thresholdConfig.verifyAreaRect = new RectF(125, 400, 565, 835); // SensePassデバイスを例にとります       
    IdentifyManager.getInstance().setThresholdConfig(thresholdConfig);
    // カメラタイプを取得します
    CameraType type = TemperatureCameraUtils.getCameraType();
    // サーマルイメージングシステムオブジェクトを作成します
    ITemperatureCamera mTemperatureCamera = TemperatureCameraFactory.getTemperatureCamera(type);
    // 初期化します
    mTemperatureCamera.initCamera(this);
    // 温度比較アルゴリズムを初期化します(温度の調整用)
    TemperConvertCallback temperConvertCallback = new TemperConvertCallback(){
    
                private float[] tempArray;
    
                @Override
                public float temperConvertCentigrade(float temper){
    
                    return TemperatureCameraFactory.getTemperatureCamera(type).getCentigradeFromTemperatureData(temper);
                }
    
                @Override
                public float[] getTempMatrix(float[] y16Frame, int y16W, int y16H, float distance, int x, int y, int w, int h){
    
                    int size = w * h;
                    if(tempArray == null || tempArray.length != size){
                        tempArray = new float[size];
                    }
                    TemperatureCameraFactory.getTemperatureCamera(type).matrixTemperature(y16Frame, y16W, y16H, distance, x, y, w, h,                                         temperConvertCallback = tempArray);
                    return tempArray;
                }
            };
    int ret = TemperatureActionProxy.init(algorithmVersio, temperConvertCallbackn);
    if(ret == 0){
            Log.d(TAG, "Temperature Measurement Algorithm Initialized Successfully");
    }
    ITemperatureSdkAction action = new ITemperatureSdkAction(){
    
                @Override
                public <T extends TrackAndTemperatureResult> List<T> temperCalculateAir(MatchFace[] matchFaces, @Nullable Bitmap temperatureBitmap, float[] temperatureData, int temperatureWidth, int temperatureHeight, FaceOrientation temperatureOrientation){
                    // 使用している機器の周囲の温度
                    // CameraType が CameraType.GUIDE120 または CameraType.IRAY の場合のコード例は次のとおりです
                       MatchFace matchFace = matchFaces[0];
                        float envTemperature = 25.1f;
                        TemperInfo temperInfo = TemperatureActionProxy.temperCalculateObtainRect(matchFace.rgbFace, temperatureData,
                                                                                         temperatureWidth, temperatureHeight, FaceOrientation.UP.getValue(), envTemperature, 0.1f);
                        TrackAndTemperatureResult trackAndTemperatureResult = new TrackAndTemperatureResult();
                        trackAndTemperatureResult.setFaceInfo(matchFace.rgbFace);
                        trackAndTemperatureResult.setIrFaceInfo(matchFace.irFace);
                        trackAndTemperatureResult.setTemperature(temperInfo.temper);
    
                        List<T> ts = new ArrayList<>();
                        ts.add((T)trackAndTemperatureResult);
                        return ts;
                }
            };
                }
            };
    // Temperature Sdk Action を設定します
    IdentifyManager.getInstance().setTemperatureSdkAction(action);
    ITemperaturePreviewDataCallback mPreviewDataCallback =
              new ITemperaturePreviewDataCallback(){
    
              @Override
          public void onTemperaturePreviewData(
                Bitmap temperatureBitmap, float[] temperatureValue, int width, int height){
    
                    // temperatureBitmap - 温度ビットマッププレビューの描画に使用できる熱力学線図
                    // temperatureValue - 温度データ
                    // 幅、高さ - 熱力学線図の熱の幅および高さ
    
                    // Identify Manager に温度データを挿入します(温度検知機能を有効化後に温度データが挿入されない場合、認証は実行されません)
                    IdentifyManager.getInstance().handleTemperatureData(
                      temperatureBitmap, temperatureValue,width, height, mCameraUseConfig.faceOrientation);
                }
            };
    
    // コールバックを設定します
    mTemperatureCamera.addTemperaturePreviewDataCallback(mPreviewDataCallback);
    //認証結果コールバックインターフェースを介して、顔認証結果を取得します
    IIdentifyResultCallback identifyCallback = new IIdentifyResultCallback(){
    
        @Override
        public void onDrawFaces(@Nullable List<FaceInfo> list){
            // 顔検知コールバック。顔設定フレームの描画に使用できます。
            // 認証が一時停止されてもこのコールバックは発生することに注意する必要があります。その場合、プロセス内で顔はトラッキングされているものの、認識されていない状態となります。
        }
    
        @Override
        public void onClearScreen(){
            // スクリーンを消去するコールバック。カメラの視野に顔が入っていない場合、本コールバックでスクリーンを消去します。
        }
    
        @Override
        public void onUnknown(float faceW){
                    // 顔が大きすぎたり、小さすぎたりして、生体であるかどうか判断できない場合は、本メソッドで通知されます
        }
    
        @Override
        public void onIdentifyResult(List<FrameIdentifyResult> frameIdentifyResults){
                    //認証結果のコールバック
                  for(int i = 0; i < frameIdentifyResults.size(); i++){
                FrameIdentifyResult frameIdentifyResult = frameIdentifyResults.get(i);
                if(frameIdentifyResult == null
                        || frameIdentifyResult.faceIdentifyResults == null
                        || frameIdentifyResult.faceIdentifyResults.size()<= 0){
                    continue;
                }
                List<FaceIdentifyResult> faceIdentifyResults = frameIdentifyResult.faceIdentifyResults;
                for(int j = 0; j < faceIdentifyResults.size(); j++){
                    FaceIdentifyResult faceIdentifyResult = faceIdentifyResults.get(j);
                    if(faceIdentifyResult == null || faceIdentifyResult.getIdentifyResultTypeEnum()== null){
                        continue;
                    }
                    TrackAndTemperatureResult trackAndTemperatureResult = faceIdentifyResult.getTrackAndTemperatureResult();
                    float temperature = 0;
                    if(trackAndTemperatureResult != null){
                        temperature = trackAndTemperatureResult.getTemperature();
                    }
                    Log.i(TAG, String.format(Locale.getDefault(), "userId-%d temperature is %f",
                                             faceIdentifyResult.getUserId(), temperature));
                }
            }
        }
    };
    
    // 結果を設定するコールバック
    IdentifyManager.getInstance().setIdentifyCallback(identifyCallback);
    // Passアクセスコントロール機能を使用する前に、本機能の初期化を呼び出す必要があります
    DoorDeviceAccessProxy.init();
    
    final DoorAccessConfig config = new DoorAccessConfig.Builder()
            // GPIO の B ポートの入力タイプを設定します。デフォルトでは GPIO_IN_NONE に設定されます。
            .setGpioInB(DoorAccessConfig.GPIO_IN_NONE)
            // GPIO の C ポートの入力タイプを設定します。デフォルトでは GPIO_IN_NONE に設定されます。
            .setGpioInC(DoorAccessConfig.GPIO_IN_NONE)
            // ドアオープン時間を設定します。ローカルリレーのみ(ここでは、開いた後、5 秒で閉じるように設定しています)。
            .setOpenDoorTime(5)
            // GPIO 出力タイプを設定します
            .setGpioOutA(DoorAccessConfig.GPIO_OUT_NONE)
            // RS485 データの読み書きをファームウェアで制御します(ファームウェアに対応している必要があります。対応していない場合は、false に設定してください)
            .setIsSupportRS485GpioAutoControl(true)
            // Wiegand 入力プロトコルタイプを設定します
            .setWiegandInput(DoorAccessConfig.WIEGAND26_24_BIT)
            // ドアオープンモードを設定します
            .setOpenDoorMode(DoorAccessConfig.OPEN_DOOR_MODE_RELAY)
            .Setthe Serial Port Baud Rate for RS485 Protocol
            .setRS485BaudRate(9600)
            .build();
    DoorDeviceAccessProxy.setConfig(config);
    // オープンドアモードを「ローカルリレー」に設定します
    DoorAccessConfig mDoorAccessConfig = DoorDeviceAccessProxy.getConfig();
    mDoorAccessConfig.setOpenDoorMode(DoorAccessConfig.OPEN_DOOR_MODE_RELAY);
    DoorDeviceAccessProxy.setConfig(mDoorAccessConfig);
    
    // 本メソッドはグローバルなドアオープンメソッドで、設定された方法に応じて自動的にドアオープン操作を実行します
    // IC カード番号は入力パラメーターがWiegand Open Doorの場合のみ使用します。ここに直接転送します。
    DoorDeviceAccessProxy.openDoor("");
    // opDoorTime で設定した時間が経過したらドアを閉めます。遅延時間は次の方法で直接決まります
    DoorDeviceAccessProxy.openDoorWithRelay(openDoorTime *1000);
    DoorDeviceAccessProxy.closeRelayDoor();
    DoorAccessConfig mDoorAccessConfig = DoorDeviceAccessProxy.getConfig();
    // IP 番号を入力するだけです。デフォルトでポートは12345 に設定されています。初期化時に設定されている場合は、ここでは繰り返し設定不要です。
    mDoorAccessConfig.setRelayIp("192.168.12.11");
    // オープンドアモードをネットワークリレーに設定します
    mDoorAccessConfig.setOpenDoorMode(DoorAccessConfig.OPEN_DOOR_MODE_IP_RELAY);
    DoorDeviceAccessProxy.setConfig(mDoorAccessConfig);
    
    // パラメーターは、クローズ遅延時間です。自由に設定できます。
    DoorDeviceAccessProxy.openDoor("");
    String cardNumver = "12345678";
    // Wiegand 26(24 ビット)経由でドアを開きます
    DoorDeviceAccessProxy.openDoor(cardNumber);
    String cardNumver = "1234567890";
    DoorDeviceAccessProxy.openDoor(cardNumber);
    DoorAccessConfig config = DoorDeviceAccessProxy.getConfig();
    // Wiegand 26標準カードリーダーを設定します
    config.setWiegandInput(DoorAccessConfig.WIEGAND26_24_BIT);
    DoorDeviceAccessProxy.setConfig(config);
    DoorDeviceAccessProxy.setCardReaderCallback(
                new WiegandReaderDevice.CardReaderCallback(){
    
        @Override
        public void onRead(String cardNumber){
            // カード番号の読み取りに成功しました。cardNumberがカード番号です。
        }
    });
    DoorAccessConfig mDoorAccessConfig = DoorDeviceAccessProxy.getConfig();
    // ここでは、周辺機器がBポートを介して、ドアボタンに接続されていると仮定します。Cポートを使用する場合は、doorAccessConfig.setGpioInC()を設定してください。
    mDoorAccessConfig.setGpioInB(DoorAccessConfig.GPIO_IN_DOOR_BUTTON);
    DoorDeviceAccessProxy.setConfig(mDoorAccessConfig);
    // ドアボタンを使用する場合
    PassDoorDeviceAccessProxy.setOnClickDoorButtonListener(
                    new DoorButtonDevice.DoorButtonOnClickListener(){
    
            @Override
            public void onClick(){
                // ドアオープン信号を受け取ります
            }
    });
    
    // 消防アラートシグナル受信リスナーを使用する場合
    PassDoorDeviceAccessProxy.setReceiveFireSignListener(
                    new FireSignalDevice.ReceiveFireSignListener(){
    
            @Override
            public void onReceive(){
                // 消防アラートシグナルを受け取ります
            }
    });
    
    // ドアセンサーを使用する場合
    PassDoorDeviceAccessProxy.setDoorStateCallback(
                    new PassDoorDeviceAccessProxy.DoorMagnetismStateCallback(){
    
            @Override
            public void onDoorStateChanged(int state){
                if(state == '0'){
                    // ドアの磁器ステータス: オフ
                } else {
                    // ドアの磁器ステータス: オン
                }
            }
    });
    DoorAccessConfig sgDoorAccessConfig = DoorDeviceAccessProxy.getConfig();
    // ここでは、ドアベルを使用していると仮定しています
    sgDoorAccessConfig.setGpioOutA(DoorAccessConfig.GPIO_OUT_DOOR_BELL);
    DoorDeviceAccessProxy.setConfig(sgDoorAccessConfig);
    
    // ドアベルを鳴らす場合のパラメーターは時間です(ドアベルのメーカーは鳴動時間を指定するのではなく、回数を指定して鳴らすように設定している場合があるため、実際の鳴動時間には誤差が生じる可能性があります)
    PassDoorDeviceAccessProxy.pressDoorBell(2000);
    // アラートが鳴ります
    PassDoorDeviceAccessProxy.pressAlarmBell();
    // 手動でアラートをオフにします
    PassDoorDeviceAccessProxy.releaseAlarmBell();
    // IRフィルライトをオンにします
    PassDoorDeviceAccessProxy.turnOnIrLight();
    
    // IRフィルライトをオフにします
    PassDoorDeviceAccessProxy.turnOffIrLight();
    // スクリーンバックライトをオフにします
    PassDoorDeviceAccessProxy.closeBackLight();
    
    // スクリーンバックライトをオンにします
    PassDoorDeviceAccessProxy.openBackLight();
    // RS485を開始し、ボーレートを9600、読み取りバッファーサイズを32、タイムアウト時間を3秒にそれぞれ設定します
    PassDoorDeviceAccessProxy..enableRS485(9600, 32,
                new RS485Device.RS485ReceiveListener(){
    
                @Override
                public void onReceive(byte[] data, long dataLength){
                    // 受信データ
                }
    
            }, 3000, new SerialPortReader.OnReadTimeOutListener(){
    
                @Override
                public void onTimeout(byte[] data, long dataLength){
                    // データ読み取りタイムアウト
                }
            }
    });
    PassDoorDeviceAccessProxy.sendDataByRS485(data);
    // onKeyUp()イベントを介してアクティビティでリッスンします
    public class ForceDisassemblyDemoActivity extends AppCompatActivity {
    
        // 冗長コードは省略します
    
        @Override
        public boolean onKeyUp(int keyCode, KeyEvent event){
            if(keyCode == KeyEvent.KEYCODE_F2){
                // 盗難アラートをlistenします
            }
            return super.onKeyUp(keyCode, event);
        }
    }
    SensorManager mSensorManager =(SensorManager)getSystemService(Context.SENSOR_SERVICE);
    // 照明センサーを使用します。距離センターを使用するには、Sensor.TYPE_PROXIMITY パラメーターを使用します。
    Sensor lightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
    if(lightSensor != null){
    
        mSensorManager.registerListener(new SensorEventListener(){
            @Override
            public void onSensorChanged(SensorEvent event){
                // event.value[0]を介して特定の値を取得し、特定の処理を実行します
            }
    
            @Override
            public void onAccuracyChanged(Sensor sensor, int accuracy){
    
            }
        }, lightSensor, SensorManager.SENSOR_DELAY_NORMAL);
    
    } else {
         // センサーを使用できません
    }
    // ブザーをオンにします
    PassDoorDeviceAccessProxy.pressBuzzer();
    
    // ブザーをオフにします
    PassDoorDeviceAccessProxy.releaseBuzzer();
    android {
    
        signingConfigs {
            system {
                keyAlias 'sensetime'
                keyPassword 'sensetime'
                storeFile file('./sensetime.jks')
                storePassword 'sensetime'
            }
        }
    
        buildTypes {
            debug {
                signingConfig signingConfigs.system
                // ...
            }
            release {
                signingConfig signingConfigs.system
                // ...
            }
        }
    }
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.sensetime.wksample"
        android:sharedUserId="android.uid.system">
    </manifest>
    QRCodeDecoderProxy qRCodeDecoder = new QRCodeDecoderProxy(new ZBarDecoderImpl());
    // previewData は、カメラのプレビューフレームデータです
    qRCodeDecoder.decodeQRCode(previewData,1280, 720);

    ✓

    ×

    ✓

    ×

    ✓

    ×

    ✓

    ×

    ✓

    ✓

    ✓

    ×

    ✓

    ✓

    ✓

    ×

    ✓

    ✓

    ✓

    ✓

    SenseThunderE

    ✓

    ✓

    ✓

    ✓

    ✓

    SenseThunderAir

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    SenseThunderE

    ✓

    ✓

    ✓

    ✓

    SenseThunderAir

    ✓

    ✓

    ✓

    ✓

    ×

    ✓

    ✓

    ✓

    SenseThunderE

    ×

    ×

    ✓

    ✓

    ✓

    SenseThunderAir

    ×

    ×

    ✓

    ✓

    ✓

    ✓

    ×

    ✓

    ×

    SenseThunderE

    ×

    ✓

    ✓

    ✓

    ×

    SenseThunderAir

    ×

    ✓

    ✓

    ✓

    ×

    RGB 顔 + IR + サーモ

    SenseThunerE-Mini

    Thunder シリーズ

    RK3399-arm64-v8a

    Android 7.1

    RGB 顔 + IR + サーモ

    SenseThunderAir

    Thunder シリーズ

    RK3399-arm64-v8a

    Android 7.1

    RGB 顔 + IR + サーモ

    垂直方向の画像

    左向き

    いいえ

    SenseThunderAir

    垂直方向の画像

    左向き

    いいえ

    Door Access

    Door Access Device Controling Pass and Thunder series devices

    Description of functional types

    DoorDeviceAccessProxy

    Control the overall initialization, configuration, and resource release operations of communication devices such as GPIO ports and serial ports of the control device, and perform specific door opening operations.

    Description of Member Function

    DoorAccessConfig getConfig()

    Get Door Access Configuration

    Parameter

    None

    Return

    Exception

    None

    DoorAccessDevice getDevice(int deviceType)

    Get device reference according to device type

    Parameter

    Return

    Exception

    None

    void changeOpenDoorDevice(int mode)

    Change Open Door Mode

    Parameter

    Return

    None

    Exception

    None

    void closeRelayDoor()

    Close Relay Door

    Parameter

    None

    Return

    None

    Exception

    None

    void init()

    Initialization without serial port number, refer to [void init(String uartName)](#void init(String uartName))

    Parameter

    None

    Return

    None

    Exception

    None

    void init(String uartName)

    Initialization with serial port number

    Parameter

    Return

    None

    Exception

    None

    void openDoor(String cardNumber)

    Open the door, execute the door opening action according to the set open door mode

    Parameter

    Return

    No

    Exception

    No

    void release()

    Release Resource

    Parameter

    None

    Return

    None

    Exception

    None

    void setConfig(DoorAccessConfig config)

    Set Door Access Configuration

    Parameter

    Return

    None

    Exception

    None

    void setCardReaderCallback(WiegandReaderDevice.CardReaderCallback cardReaderCallback)

    Set Card Read Callback

    Parameter

    Return

    None

    Exception

    None

    void setCustomWiegandDataReceivedCallback(WiegandReaderDevice.OnDataReceivedCallback dataReceivedCallback)

    Set Custom Wiegand Data Interface Callback

    Parameter

    Return

    No

    Exception

    No

    void setICardNumberAnalysis(WiegandDoorDevice.ICardNumberAnalysis cardNumberAnalysis)

    Set Wiegand Card Number String Parsing Method

    Parameter

    Return

    No

    Exception

    No

    PassDoorDeviceAccessProxy

    Control some door access devices of Pass and Thunder series

    Description of Member Function

    void closeBackLight()

    Close Back Light

    Parameter

    None

    Return

    None

    Exception

    None

    void enableRS485(RS485Device.RS485ReceiveListener listener)

    Enable RS485

    Parameter

    Return

    None

    Exception

    None

    void enableRS485(int baudrate, int readBufferSize, RS485Device.RS485ReceiveListener listener)

    Enable RS485

    Parameter

    Return

    None

    Exception

    None

    void enableRS485(int baudrate, int readBufferSize, RS485Device.RS485ReceiveListener listener, int readTimeout, SerialPortReader.OnReadTimeOutListener timeOutListener)

    Enable RS485

    Parameter

    Return

    None

    Exception

    None

    void openBackLight()

    Open Back Light

    Parameter

    None

    Return

    None

    Exception

    None

    void pressBuzzer()

    press Buzzer (Only support SensePass and SenseThunderE-mini)

    Parameter

    None

    Return

    None

    Exception

    None

    void pressDoorBell(int pressDownDuration)

    press Door Bell

    Parameter

    Return

    None

    Exception

    None

    void pressAlarmBell()

    Press Alarm Bell to Turn the Alarm On

    Parameter

    None

    Return

    None

    Exception

    None

    void releaseAlarmBell()

    Release Alarm Bell

    Parameter

    None

    Return

    None

    Exception

    None

    void releaseBuzzer()

    Buzzer Off (Only supports SensePass020)

    Parameter

    None

    Return

    None

    Exception

    None

    void setDoorStateCallback(DoorMagnetismStateCallback callback)

    Set Door State Callback, Door Open/Close Status Listener

    Parameter

    Return

    None

    Exception

    None

    void setOnClickDoorButtonListener(DoorButtonDevice.DoorButtonOnClickListener listener)

    Door Button On Click Listener

    Parameter

    Return

    None

    Exception

    None

    void setReceiveFireSignListener(FireSignalDevice.ReceiveFireSignListener listener)

    Receive Fire Sign Listener

    Parameter

    Return

    None

    Exception

    None

    void sendDataByRS485(byte[] data)

    Send Data By RS485

    Parameter

    Return

    None

    Exception

    None

    void turnOnIrLight()

    Turn on IR Light, Support Pass and Thunder series

    Parameter

    None

    Return

    None

    Exception

    None

    void turnOffIrLight()

    Turn off IR Light, Support Pass and Thunder series

    Parameter

    None

    Return

    None

    Exception

    None

    Description of Entities

    DoorAccessConfig

    Door Access Configuration

    Description of Properties

    OPEN_DOOR_MODE

    Wiegand Input

    GPIO Configuration

    Settable Properties

    Description of Method

    DoorAccessDevice

    Door Access Device

    Description of Method

    CardReaderCallback

    WIEGAND Device Card Reader Callback

    Description of Method

    OnDataReceivedCallback

    Wiegand Passthough Data Received Callback

    Description of Method

    ICardNumberAnalysis

    Analysis of Customized Wiegand Card Number Data

    Description of Method

    DoorMagnetismStateCallback

    Door Magnetism State Callback

    Description of Method

    ReceiveFireSignListener

    Fire Sign Listener

    Description of Method

    ReceiveDismantleSignListener

    Dismantle Sign Listener

    Description of Method

    SensorListener

    Sensor Data change interface

    Description of Method

    OnSensorChangedListener

    Ir Listener

    Description of Method

    RS485ReceiveListener

    RS485 Data Read Listener

    Description of Method

    OnReadTimeOutListener

    RS485 Data Read Time Out Callback

    Description of Method

    DoorButtonOnClickListener

    Door Button On Click Listener

    Description of Method

    2.0.0

    void init()

    Initialization

    2.0.0

    void init(String uartName)

    Initialization

    2.0.0

    void openDoor(String cardNumber)

    Open Door

    2.0.0

    void release()

    Release Resouce

    2.0.0

    void setConfig(DoorAccessConfig config)

    set Door Access Configuration

    2.0.0

    void setCardReaderCallback

    (WiegandReaderDevice.CardReaderCallback cardReaderCallback)

    set Wiegand Card Reader Callback

    2.0.0

    void setCustomWiegandDataReceivedCallback

    (WiegandReaderDevice.OnDataReceivedCallback dataReceivedCallback)

    Set Custom Wiegand Data Interface Callback

    2.0.0

    void setICardNumberAnalysis

    (WiegandDoorDevice.ICardNumberAnalysis cardNumberAnalysis)

    Set Wiegand Card Number Analysis Mode

    2.0.0

    2.0.0

    void openBackLight()

    Open Back Light

    2.0.0

    void pressBuzzer()

    press Buzzer

    2.0.0

    void pressDoorBell(int pressDownDuration)

    press Door Bell

    2.0.0

    void pressAlarmBell()

    press Alarm Bell

    2.0.0

    void releaseAlarmBell()

    release Alarm Bell

    2.0.0

    void releaseBuzzer()

    release Buzzer

    2.0.0

    void setDoorStateCallback(DoorMagnetismStateCallback callback)

    set Door State Callback

    2.0.0

    void setOnClickDoorButtonListener

    (DoorButtonDevice.DoorButtonOnClickListener listener)

    Door Button On Click Listener

    2.0.0

    void setReceiveFireSignListener

    (FireSignalDevice.ReceiveFireSignListener listener)

    Fire Sign Listener

    2.0.0

    void sendDataByRS485(byte[] data)

    send Data By RS485

    2.0.0

    void turnOnIrLight()

    turn On IR Light

    2.0.0

    void turnOffIrLight()

    turn Off IR Light

    2.0.0

    listener

    RS485Device.RS485ReceiveListener

    Data Receive Callback

    None

    2.0.0

    listener

    RS485Device.RS485ReceiveListener

    Data Receive Callback

    None

    2.0.0

    readTimeout

    int

    Data read timeout period

    None

    2.0.0

    timeOutListener

    SerialPortReader.OnReadTimeOutListener

    Data read timeout callback

    None

    2.0.0

    constant

    2.0.0

    static final int OPEN_DOOR_MODE_WIEGAND26_8_16_BIT

    WIEGAND26(8 + 16 bit)

    constant

    2.0.0

    static final int OPEN_DOOR_MODE_WIEGAND32

    WIEGAND32

    constant

    2.0.0

    static final int OPEN_DOOR_MODE_WIEGAND34

    WIEGAND34

    Constant

    2.0.0

    static final int OPEN_DOOR_MODE_CUSTOM

    Wiegand Custom (Output)

    Constant

    2.0.0

    Constant

    2.0.0

    static final int WIEGAND34

    WIEGAND34

    Constant

    2.0.0

    static final int WIEGAND_INPUT_CUSTOM

    WIEGAND CUSTOM (INPUT)

    Constant

    2.0.0

    Constant

    2.0.0

    static final int GPIO_IN_FIRE_SIGNAL

    GPIO Input Configuration FIRE SIGNAL

    Constant

    2.0.0

    static final int GPIO_OUT_NONE

    GPIO Output not configured

    Constant

    2.0.0

    static final int GPIO_OUT_DOOR_BELL

    GPIO Output Configuration DOOR BELL

    Constant

    2.0.0

    static final int GPIO_OUT_ALARM

    GPIO Output Configuration ALARM

    Constant

    2.0.0

    None

    2.0.0

    int mGpioInA

    GPIO Input A

    None

    2.0.0

    int mGpioInB

    GPIO Input B

    None

    2.0.0

    int mWiegandInput

    Wiegand Input

    None

    2.0.0

    int mDoorMagnetismTimeout

    Door Magnetism Timeout

    None

    2.0.0

    String mRelayIp

    Network Relay IP

    None

    2.0.0

    int mRS485BaudRate

    RS485 Serial Port Baud Rate

    Default 9600

    2.0.0

    int mRS485BufferSize

    RS485 buffer size

    Default 64

    2.0.0

    boolean mIsSupportRS485GpioAutoControl

    Support RS485 GPIO Auto Control

    None

    2.0.0

    int mPulseCycle

    Pulse Cycle

    Default 2400

    2.0.0

    int mPulseWidth

    Pulse Width

    Default 380

    2.0.0

    boolean mReverseCardNumber

    Reverse Card Number

    None

    2.0.0

    None

    2.0.0

    boolean isDeviceCreated()

    Device Created

    None

    2.0.0

    void createDevice()

    Create Device

    None

    2.0.0

    Member Function

    Description

    Version Introduced

    DoorAccessConfig getConfig()

    Get Door Access Configuration

    2.0.0

    DoorAccessDevice getDevice(int deviceType)

    Get Device

    2.0.0

    void changeOpenDoorDevice(int mode)

    Change Open Door Mode

    2.0.0

    void closeRelayDoor()

    Returned Value

    Description

    Note

    Version Introduced

    DoorAccessConfig

    Door Access Configuration Instance

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    deviceType

    int

    Device Type

    None

    2.0.0

    Returned Value

    Description

    Note

    Version Introduced

    DoorAccessDevice

    Door Access Device

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    mode

    int

    Open Door Mode

    DoorAccessConfig Door Access Configuration

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    uartName

    String

    Serial port name

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    cardNumber

    String

    IC Card Number

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    config

    DoorAccessConfig

    Door Access Configuration

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    cardReaderCallback

    WiegandReaderDevice.CardReaderCallback

    Wiegand Card Reader Callback

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    dataReceivedCallback

    WiegandReaderDevice.OnDataReceivedCallback

    Wiegand Passthough Data Received Callback

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    cardNumberAnalysis

    WiegandDoorDevice.ICardNumberAnalysis

    Card Number String Parsing Method

    None

    2.0.0

    Member Function

    Description

    Version Introduced

    void closeBackLight()

    Close Back Light

    2.0.0

    void enableRS485(RS485Device.RS485ReceiveListener listener)

    enable RS485

    2.0.0

    void enableRS485(int baudrate, int readBufferSize, RS485Device.RS485ReceiveListener listener)

    enable RS485

    2.0.0

    void enableRS485(int baudrate, int readBufferSize, RS485Device.RS485ReceiveListener listener, int readTimeout, SerialPortReader.OnReadTimeOutListener timeOutListener)

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    listener

    RS485Device.RS485ReceiveListener

    Data Receive Callback

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    baudrate

    int

    baudrate

    None

    2.0.0

    readBufferSize

    int

    The length of the data to be read

    None

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    baudrate

    int

    baudrate

    None

    2.0.0

    readBufferSize

    int

    The length of the data to be read

    None

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    pressDownDuration

    int

    press Down Duration, unit millisecond

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    callback

    DoorMagnetismStateCallback

    State Callback

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    listener

    DoorButtonDevice.DoorButtonOnClickListener

    Door Button On Click Listener

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    listener

    FireSignalDevice.ReceiveFireSignListener

    Fire Sign Listener

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    data

    byte[]

    Data to be Sent

    None

    2.0.0

    Member

    Description

    Note

    Version Introduced

    static final int OPEN_DOOR_MODE_RELAY

    Open Local Relay Door,

    constant

    2.0.0

    static final int OPEN_DOOR_MODE_IP_RELAY

    network relay

    constant

    2.0.0

    static final int OPEN_DOOR_MODE_WIEGAND26_24_BIT

    Member

    Description

    Note

    Version Introduced

    static final int WIEGAND26_24_BIT

    WIEGAND26(24bit)

    Constant

    2.0.0

    static final int WIEGAND26_8_16_BIT

    WIEGAND26(8 + 16bit)

    Constant

    2.0.0

    static final int WIEGAND32

    Member

    Description

    Note

    Version Introduced

    static final int GPIO_IN_NONE

    GPIO Input not Configured

    Constant

    2.0.0

    static final int GPIO_IN_DOOR_MAGNETISM

    GPIO Input Configuration DOOR MAGNETISM

    Constant

    2.0.0

    static final int GPIO_IN_DOOR_BUTTON

    Member

    Description

    Note

    Version Introduced

    int mOpenDoorTime

    Open Door Time

    None

    2.0.0

    int mOpenDoorMode

    Open Door Mode

    None

    2.0.0

    int mGpioOut

    Member Function

    Description

    Note

    Version Introduced

    DoorAccessConfig build()

    Build an Instance of DoorAccessConfig

    None

    2.0.0

    Member Function

    Description

    Note

    Version Introduced

    int getDeviceId()

    Return Device ID

    None

    2.0.0

    void setConfig(DoorAccessConfig config)

    add Device Configuration

    None

    2.0.0

    void destroyDevice()

    Member Function

    Description

    Note

    Version Introduced

    void onRead(String cardNumber)

    Card Read Successful and Get Card Number

    None

    2.0.0

    Member Function

    Description

    Note

    Version Introduced

    void onDataReceived(byte[] cardData)

    Data Receive Callback

    cardData: Customized Wiegand Card Number Data

    2.0.0

    Member Function

    Description

    Note

    Version Introduced

    byte[] analysis(String cardDataString)

    The card string is parsed into byte[] data

    cardDataString card Data String Return the custom Wiegand data corresponding to the card

    2.0.0

    Member Function

    Description

    Note

    Version Introduced

    void onDoorStateChanged(int state)

    Door Magnetism State Callback

    state 0-OFF, 1-ON

    2.0.0

    Member Function

    Description

    Note

    Version Introduced

    void onReceive()

    Fire Sign Listener

    None

    2.0.0

    Member Function

    Description

    Note

    Version Introduced

    void onReceive()

    Dismantle Sign Listener

    None

    2.0.0

    Member Function

    Description

    Note

    Version Introduced

    void onSensorChanged(String value)

    Data Change Callback

    None

    2.0.0

    Member Function

    Description

    Note

    Version Introduced

    void onInfraredSignalRead()

    Ir Callback

    None

    2.0.0

    Member Function

    Description

    Note

    Version Introduced

    void onReceive(byte[] data,long dataLength)

    RS485 Data Read Listener

    dataLength: Data Length; data: Data Read

    2.0.0

    Member Function

    Description

    Note

    Version Introduced

    void onTimeout(byte[] data,long dataLength)

    RS485 Data Read Time Out Callback

    dataLength: Data Length; data: Data read when timeout

    2.0.0

    Member Function

    Description

    Note

    Version Introduced

    void onClick()

    Door Button On Click Callback

    None

    2.0.0

    Close Relay Door

    enable RS485

    2.0.0

    2.0.0

    WIEGAND26(24bit)

    WIEGAND32

    GPIO Input Configuration DOOR BUTTON

    GPIO Output Port

    Destroy Device

    識別エンジン

    人間の顔1:1 比較、ローカル1:N 識別、サーバ1:N識別、マスク検知にサポート

    機能類の説明

    IdentifyManager

    識別エンジンを操作する入り口

    メンバー関数の説明

    boolean setIdentifyTarget(Bitmap avatar)

    個人の識別フィーチャーを設定

    パラメータ

    戻り値

    例外

    なし

    ImageConfig getImageConfig()

    画像構成を取得

    パラメータ

    なし

    戻り値

    ImageConfig

    例外

    なし

    IdentifyConfig getIdentifyConfig()

    識別エンジンのワークフロー構成を取得

    パラメータ

    なし

    戻り値

    IdentifyConfig

    例外

    なし

    ThresholdConfig getThresholdConfig()

    しきい値構成を取得

    パラメータ

    なし

    戻り値

    ThresholdConfig

    例外

    なし

    void addFaceFilterInterceptor(IFaceFilterInterceptor faceFilterInterceptor)

    顔フィルターインターセプターを追加

    パラメータ

    戻り値

    なし

    例外

    なし

    void handleRgbData(byte[] data)

    RGBデータをハンドル

    パラメータ

    戻り値

    なし

    例外

    なし

    void handleIrData(byte[] data)

    IRデータをハンドル

    パラメータ

    戻り値

    なし

    例外

    なし

    void handleTemperatureData(Bitmap temperatureBitmap,float[] temperatureValue, int width, int height, FaceOrientation temperatureOrientation)

    ヒートマップと関連データをハンドル

    パラメータ

    戻り値

    なし

    例外

    なし

    void init(ImageConfig imageConfig, IIdentifyResultCallback identifyResultCallback)

    初期化

    パラメータ

    戻り値

    なし

    例外

    なし

    void pause()

    顔認識を中止

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void resume()

    顔認識を回復

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void release()

    リソースを解放

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void removeFaceFilterInterceptor(IFaceFilterInterceptor faceFilterInterceptor)

    顔フィルターインターセプターを削除

    パラメータ

    戻り値

    なし

    例外

    なし

    void removeIdentifyTarget()

    設定した個人の識別フィーチャーを削除

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void start()

    識別を開始

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void stop()

    識別を停止

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void setIdentifyCallback(IIdentifyResultCallback iIdentifyCallback)

    識別結果コールバックを設定

    パラメータ

    戻り値

    なし

    例外

    なし

    void setVerifyMode(VerifyModeEnum verifyMode)

    識別エンジンの検証モードを設定

    パラメータ

    戻り値

    なし

    例外

    なし

    void setThresholdConfig(ThresholdConfig thresholdConfig)

    しきい値構成を設定

    パラメータ

    戻り値

    なし

    例外

    なし

    void setIdentifyConfig(IdentifyConfig identifyConfig)

    識別エンジンワークフロー構成を設定

    パラメータ

    戻り値

    なし

    例外

    なし

    void setServerVerifyAction(IServerVerifyAction serverVerifyAction)

    サーバの検証ロジックを設定

    パラメータ

    戻り値

    なし

    例外

    なし

    void setTemperatureSdkAction(ITemperatureSdkAction temperatureSdkAction)

    温度検知アルゴリズムの動作を設定

    パラメータ

    戻り値

    なし

    例外

    なし

    エンティティの説明

    ImageConfig

    プロパティの説明

    MidPixelFormat

    プロパティの説明

    FaceOrientation

    プロパティの説明

    IdentifyConfig

    プロパティの説明

    ThresholdConfig

    プロパティの説明

    IFaceFilterInterceptor

    メソッドの説明

    FaceInfo

    プロパティの説明

    VerifyModeEnum

    プロパティの説明

    IIdentifyResultCallback

    メソッドの説明

    FaceFilterResult

    プロパティの説明

    AttributeFilterResult

    プロパティの説明

    AttributeResult

    プロパティの説明

    FrameIdentifyResult

    プロパティの説明

    FaceIdentifyResult

    プロパティの説明

    TrackAndTemperatureResult

    プロパティの説明

    IdentifyResultTypeEnum

    プロパティの説明

    FaceSearchResult

    プロパティの説明

    IServerVerifyAction

    メソッドの説明

    ITemperatureSdkAction

    プロパティの説明

    void addFaceFilterInterceptor(IFaceFilterInterceptor faceFilterInterceptor)

    顔フィルターインターセプターを追加

    2.0.0

    void handleRgbData(byte[] data)

    RGB画像データをハンドル

    2.0.0

    void handleIrData(byte[] data)

    IR画像データをハンドル

    2.0.0

    void handleTemperatureData(Bitmap temperatureBitmap,float[] temperatureValue, int width, int height, FaceOrientation temperatureOrientation)

    ヒートマップと関連データをハンドル

    2.0.0

    void init(ImageConfig imageConfig, IIdentifyResultCallback identifyResultCallback)

    初期化

    2.0.0

    void pause()

    顔認識を中止

    2.0.0

    void resume()

    顔認識を回復

    2.0.0

    void release()

    リソースを解放

    2.0.0

    void removeFaceFilterInterceptor(IFaceFilterInterceptor faceFilterInterceptor)

    顔フィルターインターセプターを削除

    2.0.0

    void removeIdentifyTarget()

    設定した個人の識別フィーチャーを削除

    2.0.0

    void start()

    識別を開始

    2.0.0

    void stop()

    識別を停止

    2.0.0

    void setIdentifyCallback(IIdentifyResultCallback iIdentifyCallback)

    識別コールバックを設定

    2.0.0

    void setVerifyMode(VerifyModeEnum verifyMode)

    識別エンジンの検証モードを設定

    2.0.0

    void setThresholdConfig(ThresholdConfig thresholdConfig)

    しきい値構成を設定

    2.0.0

    void setIdentifyConfig(IdentifyConfig identifyConfig)

    識別エンジンワークフロー構成を設定

    2.0.0

    void setServerVerifyAction(IServerVerifyAction serverVerifyAction)

    サーバの検証ロジックを設定

    2.0.0

    void setTemperatureSdkAction([ITemperatureSdkAction] temperatureSdkAction)

    温度検知アルゴリズムSDKの動作を設定

    2.0.0

    width

    int

    ヒートマップの幅

    なし

    2.0.0

    height

    int

    ヒートマップの高さ

    なし

    2.0.0

    temperatureOrientation

    FaceOrientation

    顔の方向

    なし

    2.0.0

    pixelFormat

    MidPixelFormat

    カメラプレビューフレームデータのフォーマット

    なし

    2.0.0

    faceOrientation

    FaceOrientation

    カメラプレビューフレームデータでの顔の向き

    なし

    2.0.0

    なし

    2.0.0

    NV21

    YUV 4:2:0

    なし

    2.0.0

    BGRA8888

    BGRA 8:8:8:8

    なし

    2.0.0

    BGR888

    BGR 8:8:8

    なし

    2.0.0

    RGBA8888

    RGBA 8:8:8:8

    なし

    2.0.0

    RGB888

    RGB 8:8:8

    なし

    2.0.0

    GRAY16

    特殊な画像フォーマット

    回転および他フォーマットへの変換を提供しません

    2.0.0

    RGB565

    RGB 5:6:5

    なし

    2.0.0

    ABGR8888

    ABGR 8:8:8:8

    なし

    2.0.0

    なし

    2.0.0

    RIGHT

    顔の向きが右

    なし

    2.0.0

    thresholdConfig

    ThresholdConfig

    識別しきい値構成

    なし

    2.0.0

    hasLiveness

    boolean

    生体検知のON/OFF

    なし

    2.0.0

    isAlwaysLiveness

    boolean

    同じTrack IDに対して常に生体検知を実行するかを判定

    なし

    2.0.0

    isSingleLiveness

    boolean

    シングルカメラによる生体検知かを判定

    なし

    2.0.0

    hasTemperatureDetection

    boolean

    温度検知のON/OFF

    なし

    2.0.0

    isMultiTemperatureDetection

    boolean

    複数人の温度検知のON/OFF

    なし

    2.0.0

    hackNoPassCountThreshold

    int

    非生体と判定するための生体検知回数

    なし

    2.0.0

    strangerCountThreshold

    int

    未登録者と判定するための比較回数

    なし

    2.0.0

    irNoFaceCountThreshold

    int

    連続Nフレームで非生体と判定

    なし

    2.0.0

    irAndRgbFaceMinDist

    float

    RGBカメラとIRカメラの最小距離しきい値

    なし

    2.0.0

    isContinueVerify

    boolean

    同じTrack IDに対し識別結果を出した後識別を継続か

    なし

    2.0.0

    irAndRgbFaceSizeThreshold

    float

    RGBとIR顔の差異しきい値

    なし

    2.0.0

    continueVerifyIntervalTime

    long

    同じTrack IDに対し識別結果を出した後の時間間隔

    なし

    2.0.0

    samePersonContinuousRecognitionInterval

    long

    同じユーザーIDに対する連続識別の間隔

    このパラメータは個体に対するもので、continueVerifyIntervalTime によるコントロールより上層に位置する

    2.0.0

    isServerVerify

    boolean

    サーバ検証かを判定

    なし

    2.0.0

    isMultiFaceVerify

    boolean

    複数人の顔識別シナリオかを判定

    なし

    2.0.0

    detectSerialMultiFace

    int

    Trackingの際に何回のフレームごとに検知を1回実行するか

    なし

    2.0.0

    isSenseGateConfig

    boolean

    SenseGateデバイスかを判定

    SenseGateBDのBaseline 距離計算はPassシリーズとは異なる

    2.0.0

    isCheckCameraRotate

    boolean

    カメラの回転をチェックするかを判定

    なし

    2.0.0

    isDoVerify

    boolean

    顔認識するかを判定

    なし

    2.0.0

    isOpenWearMaskIdentify

    boolean

    マスク検知をオンにするかを判定

    なし

    2.0.0

    isInnerEyeTempDetect

    boolean

    目元による温度検知するかを判定

    なし

    2.0.0

    unSuccessTimeoutTimeThreshold

    int

    識別が成功できていないタイムオーバーの時間。すなわち、成功時にのみすぐ結果を返し、成功しない場合、タイムオーバーになってから失敗結果を返す

    デフォルトは-1とし、この機能がオフにしていることを表す

    2.0.0

    faceMaxWidth

    int

    識別できる最大の顔の幅

    なし

    2.0.0

    alignmentScore

    float

    マークされた顔のアラインメントスコア

    なし

    2.0.0

    sharpness

    float

    顔の不鮮明さ

    なし

    2.0.0

    yaw

    float

    横向き角度

    横顔

    2.0.0

    pitch

    float

    上向き・下向きの角度

    上向き、下向き

    2.0.0

    roll

    float

    傾きの角度

    頭の傾き

    2.0.0

    livenessScore

    float

    生体検知のしきい値

    なし

    2.0.0

    verifyScore

    float

    比較のしきい値

    なし

    2.0.0

    maskVerifyScore

    float

    マスクつけた状態の比較しきい値

    なし

    2.0.0

    occlusion

    int[]

    顔の遮蔽

    なし

    2.0.0

    id

    int

    track id

    なし

    2.0.0

    detectionScore

    float

    検知スコア

    なし

    2.0.0

    alignmentScore

    float

    アラインメントスコア

    なし

    2.0.0

    pointsCount

    int

    顔のポイントの数

    なし

    2.0.0

    yaw

    float

    横向き角度

    なし

    2.0.0

    pitch

    float

    上向き・下向き角度

    なし

    2.0.0

    roll

    float

    傾きの角度

    なし

    2.0.0

    なし

    2.0.0

    なし

    2.0.0

    void onDrawFaces(List<FaceInfo> faceInfoList)

    スクリーンから顔を描画するコールバック

    なし

    2.0.0

    void onUnknown(float faceW)

    異常の顔をコールバック

    人物が遠く立ち、生体検知が不正確の際にコールバック

    void onCameraRotate(FaceOrientation forwardOrientation)

    カメラローテーションのためのコールバックAPI

    なし

    2.0.0

    void onFaceFilterResult(List<FaceFilterResult> faceFilterResults)

    顔フィルターのコールバック

    なし

    2.0.0

    void onAttributeFilterResult(List<AttributeFilterResult> attributeFilterResults)

    属性フィルター結果

    なし

    2.0.0

    void onIdentifyResult(List<FrameIdentifyResult> frameIdentifyResults)

    顔識別のコールバック

    なし

    2.0.0

    void onTrackAndTemperatureResult

    (List<TrackAndTemperatureResult> results)

    Trackと温度検知結果

    なし

    2.0.0

    faceInfo

    FaceInfo

    顔情報

    なし

    2.0.0

    attributeResult

    AttributeResult

    属性結果

    なし

    2.0.0

    wearEyeGlass

    boolean

    メガネをつけているかを判定

    なし

    2.0.0

    wearSunGlass

    boolean

    サングラスをつけているかを判定

    なし

    2.0.0

    w

    int

    フレームの幅

    なし

    2.0.0

    h

    int

    フレームの高さ

    なし

    2.0.0

    orientation

    FaceOrientation

    顔の向き

    なし

    2.0.0

    irCameraNv21Data

    byte[]

    認識結果に対応するIRフレームデータ

    なし

    2.0.0

    temperatureValue

    float[]

    温度データ

    なし

    2.0.0

    temperatureBitmap

    Bitmap

    温度ビットマップ

    なし

    2.0.0

    temperatureWidth

    int

    温度ビットマップの幅

    なし

    2.0.0

    temperatureHeight

    int

    温度ビットマップの高さ

    なし

    2.0.0

    temperatureOrientation

    FaceOrientation

    温度ビットマップの顔向き

    なし

    2.0.0

    faceIdentifyResults

    List<FaceIdentifyResult>

    認識結果リスト

    なし

    2.0.0

    feature

    byte[]

    フィーチャー

    なし

    2.0.0

    verifyScore

    float

    識別スコア

    なし

    2.0.0

    livenessScore

    float

    生体検知スコア

    なし

    2.0.0

    userId

    int

    ユーザーID

    なし

    2.0.0

    trackAndTemperatureResult

    TrackAndTemperatureResult

    温度結果

    なし

    2.0.0

    isMask

    boolean

    マスクをつけているかを判定

    なし

    2.0.0

    identifyResultTypeEnum

    IdentifyResultTypeEnum

    認識結果

    なし

    2.0.0

    faceSearchResult

    FaceSearchResult

    検索結果

    なし

    2.0.0

    temperature

    float

    温度値

    なし

    2.0.0

    なし

    2.0.0

    VERIFY_SUCCESS

    認識成功

    なし

    2.0.0

    メンバー関数

    説明

    導入バージョン

    boolean setIdentifyTarget(Bitmap avatar)

    個人の識別フィーチャーを設定

    2.0.0

    ImageConfig getImageConfig()

    画像構成を取得

    2.0.0

    IdentifyConfig getIdentifyConfig()

    識別エンジンのワークフロー構成を取得

    2.0.0

    ThresholdConfig getThresholdConfig()

    しきい値構成を取得

    パラメータ名

    型

    説明

    備考

    導入バージョン

    avatar

    Bitmap

    個人のID写真

    なし

    2.0.0

    戻り値

    説明

    備考

    導入バージョン

    true

    設定が成功しました

    なし

    2.0.0

    false

    設定に失敗しました

    なし

    2.0.0

    パラメータ名

    型

    説明

    備考

    導入バージョン

    faceFilterInterceptor

    IFaceFilterInterceptor

    顔フィルターインターセプター

    なし

    2.0.0

    パラメータ名

    型

    説明

    備考

    導入バージョン

    data

    byte[]

    画像データ

    なし

    2.0.0

    パラメータ名

    型

    説明

    備考

    導入バージョン

    data

    byte[]

    画像データ

    なし

    2.0.0

    パラメータ名

    型

    説明

    備考

    導入バージョン

    temperatureBitmap

    Bitmap

    ヒートマップ

    なし

    2.0.0

    temperatureValue

    float[]

    温度データ

    なし

    パラメータ名

    型

    説明

    備考

    導入バージョン

    imageConfig

    ImageConfig

    画像構成

    なし

    2.0

    identifyResultCallback

    IIdentifyResultCallback

    識別結果コールバック

    なし

    パラメータ名

    型

    説明

    備考

    導入バージョン

    faceFilterInterceptor

    IFaceFilterInterceptor

    顔フィルターインターセプター

    なし

    2.0

    パラメータ名

    型

    説明

    備考

    導入バージョン

    iIdentifyCallback

    IIdentifyResultCallback

    識別結果コールバック

    なし

    2.0

    パラメータ名

    型

    説明

    備考

    導入バージョン

    verifyMode

    VerifyModeEnum

    検証モード

    なし

    2.0

    パラメータ名

    型

    説明

    備考

    導入バージョン

    thresholdConfig

    ThresholdConfig

    しきい値構成

    なし

    2.0

    パラメータ名

    型

    説明

    備考

    導入バージョン

    identifyConfig

    IdentifyConfig

    識別エンジンワークフロー構成

    なし

    2.0

    パラメータ名

    型

    説明

    備考

    導入バージョン

    serverVerifyAction

    IServerVerifyAction

    サーバの検証ロジック

    なし

    2.0

    パラメータ名

    型

    説明

    備考

    導入バージョン

    temperatureSdkAction

    ITemperatureSdkAction

    温度測定アルゴリズムの動作

    なし

    2.0

    Member

    型

    説明

    備考

    導入バージョン

    int previewW

    int

    カメラプレビュー解像度の幅

    なし

    2.0.0

    int previewH

    int

    カメラプレビュー解像度の高さ

    なし

    Member

    説明

    備考

    導入バージョン

    GRAY8

    Y 1

    なし

    2.0.0

    YUV420P

    YUV 4:2:0

    なし

    2.0.0

    NV12

    Member

    説明

    備考

    導入バージョン

    UP

    顔の向きが上

    なし

    2.0.0

    LEFT

    顔の向きが左

    なし

    2.0.0

    DOWN

    Member

    型

    説明

    備考

    導入バージョン

    debug

    boolean

    デバッグのON/OFF

    なし

    2.0.0

    imageConfig

    ImageConfig

    識別フレーム情報構成

    なし

    Member

    型

    説明

    備考

    導入バージョン

    verifyAreaRect

    RectF

    顔の枠

    なし

    2.0.0

    faceMinWidth

    int

    識別できる最小の顔の幅

    なし

    メンバー関数

    説明

    備考

    導入バージョン

    T filterFace(FaceInfo faceInfo, byte[] data, MidPixelFormat midPixelFormat, int width, int height, FaceOrientation faceOrientation)

    顔フィルター

    なし

    2.0.0

    Member

    型

    説明

    備考

    導入バージョン

    faceRect

    Rect

    顔の枠

    なし

    2.0.0

    facePoints

    PointF[]

    顔のポイント

    なし

    Member

    説明

    備考

    導入バージョン

    MODE_1_N

    1:N 比較モード

    なし

    2.0.0

    MODE_1_1

    1:1 比較モード

    なし

    2.0.0

    MODE_SERVER_1_N

    メンバー関数

    説明

    備考

    導入バージョン

    void onTrackResult(FaceInfo[] faces, byte[] rgbCameraData, byte[] irCameraData)

    Track結果をコールバック

    なし

    2.0.0

    void onNoFaceOverTime(byte[] rgbCameraData, byte[] irCameraData)

    指定期間内に検知できた顔コールバックがない

    なし

    2.0.0

    void onClearScreen()

    Member

    型

    説明

    備考

    導入バージョン

    code

    int

    結果コード

    0は通過。0ではない場合フィルターされたことを意味。 フィルターされた場合、開発者はインターセプターapiでカスタマイズが必要

    2.0.0

    interceptorId

    int

    インターセプターID

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    code

    int

    結果コード

    0は通過。0ではない場合フィルターされたことを意味。 具体的には各インターセプターでカスタマイズする

    2.0.0

    interceptorId

    int

    インターセプターID

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    rgbFace

    FaceInfo

    顔の情報

    なし

    2.0.0

    wearMask

    boolean

    マスクをつけているかを判定

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    frameId

    int

    フレームID

    なし

    2.0.0

    rgbCameraNv21Data

    byte[]

    認識結果に対応するRGBフレームデータ

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    faceInfo

    FaceInfo

    RGB 顔の情報

    なし

    2.0.0

    irFaceInfo

    FaceInfo

    IR 顔の情報

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    faceInfo

    FaceInfo

    RGB顔の情報

    なし

    2.0.0

    irFaceInfo

    FaceInfo

    IR顔の情報

    なし

    Member

    説明

    備考

    導入バージョン

    NON_LIVENESS

    非生体

    なし

    2.0.0

    LIVENESS

    生体

    なし

    2.0.0

    STRANGER

    Member

    Type

    説明

    備考

    導入バージョン

    userID

    int

    データベースに追加するときに定義したインデックス値

    なし

    2.0.0

    score

    float

    最も似ているフィーチャー値スコア

    なし

    メンバー関数

    説明

    備考

    導入バージョン

    T verify( byte[] cameraData, byte[] feature,FaceInfo rgbFace, int width, int height)

    顔の検索と認識

    なし

    2.0.0

    メンバー関数

    説明

    備考

    導入バージョン

    List temperCalculateAir(MatchFace[] matchFaces, Bitmap temperatureBitmap, float[] temperatureData, int temperatureWidth, int temperatureHeight, FaceOrientation temperatureOrientation)

    複数人温度検知アルゴリズム

    なし

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    YUV 4:2:0

    顔の向きが下

    2.0.0

    2.0.0

    2.0.0

    サーバ認識 1:N モード

    顔コールバックがない

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    未登録者

    2.0.0

    Identify Manager

    Support Human Face 1:1 Verification, Local 1:N Identification, Server 1:N Identification and Face Mask Detection.

    Description of functional types

    IdentifyManager

    Entrance for the Identify Manager

    Description of Member Function

    boolean setIdentifyTarget(Bitmap avatar)

    Set Individual Identification Feature

    Parameter

    Return

    Exception

    None

    ImageConfig getImageConfig()

    Get Image Configuration

    Parameter

    None

    Return

    ImageConfig

    Exception

    None

    IdentifyConfig getIdentifyConfig()

    Get Identify Manager Workflow Configuration

    Parameter

    None

    Return

    IdentifyConfig

    Exception

    None

    ThresholdConfig getThresholdConfig()

    Get Threshold Configuration

    Parameter

    None

    Return

    ThresholdConfig

    Exception

    None

    void addFaceFilterInterceptor(IFaceFilterInterceptor faceFilterInterceptor)

    Add Face Filter Interceptor

    Parameter

    Return

    None

    Exception

    None

    void handleRgbData(byte[] data)

    Handle rgb Data

    Parameter

    Return

    None

    Exception

    None

    void handleIrData(byte[] data)

    Handle irb Data

    Parameter

    Return

    None

    Exception

    None

    void handleTemperatureData(Bitmap temperatureBitmap,float[] temperatureValue, int width, int height, FaceOrientation temperatureOrientation)

    Handle Thermodynamic Diagram and Related Data

    Parameter

    Return

    None

    Exception

    None

    void init(ImageConfig imageConfig, IIdentifyResultCallback identifyResultCallback)

    Initialize

    Parameter

    Return

    None

    Exception

    None

    void pause()

    Pause Face Identification

    Parameter

    None

    Return

    None

    Exception

    None

    void resume()

    Resume Face Identification

    Parameter

    None

    Return

    None

    Exception

    None

    void release()

    Release Resource

    Parameter

    None

    Return

    None

    Exception

    None

    void removeFaceFilterInterceptor(IFaceFilterInterceptor faceFilterInterceptor)

    Remove Face Filter Interceptor

    Parameter

    Return

    None

    Exception

    None

    void removeIdentifyTarget()

    Remove the Set Individual Identification Feature

    Parameter

    None

    Return

    None

    Exception

    None

    void start()

    Start Identification

    Parameter

    None

    Return

    None

    Exception

    None

    void stop()

    Stop Identification

    Parameter

    None

    Return

    None

    Exception

    None

    void setIdentifyCallback(IIdentifyResultCallback iIdentifyCallback)

    Set Identification Result Callback

    Parameter

    Return

    None

    Exception

    None

    void setVerifyMode(VerifyModeEnum verifyMode)

    Set the Verification Mode for the Identification Manager

    Parameter

    Return

    None

    Exception

    None

    void setThresholdConfig(ThresholdConfig thresholdConfig)

    Set Threshold Configuration

    Parameter

    Return

    None

    Exception

    None

    void setIdentifyConfig(IdentifyConfig identifyConfig)

    Set Identification Manager Workflow Configuration

    Parameter

    Return

    None

    Exception

    None

    void setServerVerifyAction(IServerVerifyAction serverVerifyAction)

    Set Server Verification Logic

    Parameter

    Return

    None

    Exception

    None

    void setTemperatureSdkAction(ITemperatureSdkAction temperatureSdkAction)

    Set Temperature Measurement Sdk Action

    Parameter

    Return

    None

    Exception

    None

    Description of Entities

    ImageConfig

    Description of Properties

    MidPixelFormat

    Description of Properties

    FaceOrientation

    Description of Properties

    IdentifyConfig

    Description of Properties

    ThresholdConfig

    Description of Properties

    IFaceFilterInterceptor

    Description of Method

    FaceInfo

    Description of Properties

    VerifyModeEnum

    Description of Properties

    IIdentifyResultCallback

    Description of Method

    FaceFilterResult

    Description of Properties

    AttributeFilterResult

    Description of Properties

    AttributeResult

    Description of Properties

    FrameIdentifyResult

    Description of Properties

    FaceIdentifyResult

    Description of Properties

    TrackAndTemperatureResult

    Description of Properties

    IdentifyResultTypeEnum

    Description of Properties

    FaceSearchResult

    Description of Properties

    IServerVerifyAction

    Description of Method

    ITemperatureSdkAction

    Description of Properties

    2.0.0

    void addFaceFilterInterceptor(IFaceFilterInterceptor faceFilterInterceptor)

    add Face Filter Interceptor

    2.0.0

    void handleRgbData(byte[] data)

    Handle rgb Image Data

    2.0.0

    void handleIrData(byte[] data)

    Handle ir Image Data

    2.0.0

    void handleTemperatureData(Bitmap temperatureBitmap,float[] temperatureValue, int width, int height, FaceOrientation temperatureOrientation)

    Handle Thermodynamic Diagram and Related Data

    2.0.0

    void init(ImageConfig imageConfig, IIdentifyResultCallback identifyResultCallback)

    Initialize

    2.0.0

    void pause()

    Pause Face Identification

    2.0.0

    void resume()

    Resume Face Identification

    2.0.0

    void release()

    Release Resouce

    2.0.0

    void removeFaceFilterInterceptor(IFaceFilterInterceptor faceFilterInterceptor)

    Remove Face Filter Interceptor

    2.0.0

    void removeIdentifyTarget()

    Remove the Set Individual Identification Feature

    2.0.0

    void start()

    Start Identification

    2.0.0

    void stop()

    Stop Identification

    2.0.0

    void setIdentifyCallback(IIdentifyResultCallback iIdentifyCallback)

    Set Identify Callback

    2.0.0

    void setVerifyMode(VerifyModeEnum verifyMode)

    Set the Verification Mode for the Identification Manager

    2.0.0

    void setThresholdConfig(ThresholdConfig thresholdConfig)

    Set Threshold Configuration

    2.0.0

    void setIdentifyConfig(IdentifyConfig identifyConfig)

    Set Identification Manager Workflow Configuration

    2.0.0

    void setServerVerifyAction(IServerVerifyAction serverVerifyAction)

    Set Server Verification Logic

    2.0.0

    void setTemperatureSdkAction(ITemperatureSdkAction temperatureSdkAction)

    Set Temperature Measurement Sdk Action

    2.0.0

    2.0.0

    void addFaceFilterInterceptor(IFaceFilterInterceptor faceFilterInterceptor)

    add Face Filter Interceptor

    2.0.0

    void handleRgbData(byte[] data)

    Handle rgb Image Data

    2.0.0

    void handleIrData(byte[] data)

    Handle ir Image Data

    2.0.0

    void handleTemperatureData(Bitmap temperatureBitmap,float[] temperatureValue, int width, int height, FaceOrientation temperatureOrientation)

    Handle Thermodynamic Diagram and Related Data

    2.0.0

    void init(ImageConfig imageConfig, IIdentifyResultCallback identifyResultCallback)

    Initialize

    2.0.0

    void pause()

    Pause Face Identification

    2.0.0

    void resume()

    Resume Face Identification

    2.0.0

    void release()

    Release Resouce

    2.0.0

    void removeFaceFilterInterceptor(IFaceFilterInterceptor faceFilterInterceptor)

    Remove Face Filter Interceptor

    2.0.0

    void removeIdentifyTarget()

    Remove the Set Individual Identification Feature

    2.0.0

    void start()

    Start Identification

    2.0.0

    void stop()

    Stop Identification

    2.0.0

    void setIdentifyCallback(IIdentifyResultCallback iIdentifyCallback)

    Set Identify Callback

    2.0.0

    void setVerifyMode(VerifyModeEnum verifyMode)

    Set the Verification Mode for the Identification Manager

    2.0.0

    void setThresholdConfig(ThresholdConfig thresholdConfig)

    Set Threshold Configuration

    2.0.0

    void setIdentifyConfig(IdentifyConfig identifyConfig)

    Set Identification Manager Workflow Configuration

    2.0.0

    void setServerVerifyAction(IServerVerifyAction serverVerifyAction)

    Set Server Verification Logic

    2.0.0

    void setTemperatureSdkAction(ITemperatureSdkAction temperatureSdkAction)

    Set Temperature Measurement Sdk Action

    2.0.0

    width

    int

    Thermodynamic Diagram Width

    None

    2.0.0

    height

    int

    Thermodynamic Diagram Height

    None

    2.0.0

    temperatureOrientation

    FaceOrientation

    Face Orientation

    None

    2.0.0

    pixelFormat

    MidPixelFormat

    Camera Preview Frame Data Format

    None

    2.0.0

    faceOrientation

    FaceOrientation

    Face Direction in Camera Preview Frame Data

    None

    2.0.0

    None

    2.0.0

    NV21

    YUV 4:2:0

    None

    2.0.0

    BGRA8888

    BGRA 8:8:8:8

    None

    2.0.0

    BGR888

    BGR 8:8:8

    None

    2.0.0

    RGBA8888

    RGBA 8:8:8:8

    None

    2.0.0

    RGB888

    RGB 8:8:8

    None

    2.0.0

    GRAY16

    Special Image Format

    Rotation and Conversion to Other Formats are not Provided

    2.0.0

    RGB565

    RGB 5:6:5

    None

    2.0.0

    ABGR8888

    ABGR 8:8:8:8

    None

    2.0.0

    None

    2.0.0

    RIGHT

    Face Right

    None

    2.0.0

    thresholdConfig

    ThresholdConfig

    Identify Threshold Configuration

    None

    2.0.0

    hasLiveness

    boolean

    Liveness ON/OFF

    None

    2.0.0

    isAlwaysLiveness

    boolean

    Will the Liveness Identification Always be Conducted for the Same trackID

    None

    2.0.0

    isSingleLiveness

    boolean

    Is it Single Liveness

    None

    2.0.0

    hasTemperatureDetection

    boolean

    Temperature Detection ON/OFF

    None

    2.0.0

    isMultiTemperatureDetection

    boolean

    Multi Person Temperature Detection ON/OFF

    None

    2.0.0

    hackNoPassCountThreshold

    int

    Number of Liveness Identifications Required to Determine Non-liveness

    None

    2.0.0

    strangerCountThreshold

    int

    Number of Comparisons Required to Determine a Stranger

    None

    2.0.0

    irNoFaceCountThreshold

    int

    Non-liveness can be Determined After Successive N Frames

    None

    2.0.0

    irAndRgbFaceMinDist

    float

    Threshold for the minimum distance between RGB camera and IR camera

    None

    2.0.0

    isContinueVerify

    boolean

    Will the Identification be Continued after the Recognition Result of the Same trackID Comes Out

    None

    2.0.0

    irAndRgbFaceSizeThreshold

    float

    RGB and IR Face SizeThreshold

    None

    2.0.0

    continueVerifyIntervalTime

    long

    The Time Interval to Continue the Recognition after the Recognition Result of the Same trackID Comes Out

    None

    2.0.0

    samePersonContinuousRecognitionInterval

    long

    Continuous Identification Interval of the Same userID()

    This parameter is personnel targeted, and is higher than the continueVerifyIntervalTime control

    2.0.0

    isServerVerify

    boolean

    is it Server Verification

    None

    2.0.0

    isMultiFaceVerify

    boolean

    is it Multi Face Verification Senario

    None

    2.0.0

    detectSerialMultiFace

    int

    An Interval of How Many Frames is Kept for Detection While Tracking

    None

    2.0.0

    isSenseGateConfig

    boolean

    is it SenseGate Device

    SenseGateBD Baseline Distance Calculation is Different from Pass Series

    2.0.0

    isCheckCameraRotate

    boolean

    is Camera Rotation Checked

    None

    2.0.0

    isDoVerify

    boolean

    Face Identification Yes or No

    None

    2.0.0

    isOpenWearMaskIdentify

    boolean

    Open Wear Mask Identification

    None

    2.0.0

    isInnerEyeTempDetect

    boolean

    is Inner Eye Temperature Detected

    None

    2.0.0

    unSuccessTimeoutTimeThreshold

    int

    The timeout period of unsuccessful recognition, that is, only successful recognition will return the result immediately, otherwise it will return the failed result after the timeout

    Default-1, means this function is closed

    2.0.0

    faceMaxWidth

    int

    Recognizable maximum face width

    None

    2.0.0

    alignmentScore

    float

    Marked Face Alignment Score

    None

    2.0.0

    sharpness

    float

    Face Ambiguity

    None

    2.0.0

    yaw

    float

    yaw angle

    Profile

    2.0.0

    pitch

    float

    pitch angle

    Look down and up

    2.0.0

    roll

    float

    roll angle

    Tilt head

    2.0.0

    livenessScore

    float

    Recognition of liveness threshold

    None

    2.0.0

    verifyScore

    float

    Comparison threshold

    None

    2.0.0

    maskVerifyScore

    float

    Comparison threshold for wearing a mask

    None

    2.0.0

    occlusion

    int[]

    Face Occlusion

    None

    2.0.0

    id

    int

    track id

    None

    2.0.0

    detectionScore

    float

    Detection Score

    None

    2.0.0

    alignmentScore

    float

    Alignment Score

    None

    2.0.0

    pointsCount

    int

    Face Points Count

    None

    2.0.0

    yaw

    float

    yaw angle

    None

    2.0.0

    pitch

    float

    pitch angle

    None

    2.0.0

    roll

    float

    roll angle

    None

    2.0.0

    None

    2.0.0

    None

    2.0.0

    void onDrawFaces(List<FaceInfo> faceInfoList)

    Callback for drawing faces in the screen

    None

    2.0.0

    void onUnknown(float faceW)

    Callback Abnormal Faces

    Callback when a Person Stands Far Away and the Liveness Judgment is Inaccurate

    void onCameraRotate(FaceOrientation forwardOrientation)

    Callback API for camera rotation

    None

    2.0.0

    void onFaceFilterResult(List<FaceFilterResult> faceFilterResults)

    Face Filter Callback

    None

    2.0.0

    void onAttributeFilterResult(List<AttributeFilterResult> attributeFilterResults)

    Attribute Filter Result

    None

    2.0.0

    void onIdentifyResult(List<FrameIdentifyResult> frameIdentifyResults)

    Face Identify Callback

    None

    2.0.0

    void onTrackAndTemperatureResult(List<TrackAndTemperatureResult> results)

    Track and Temperature Detection Result

    None

    2.0.0

    faceInfo

    FaceInfo

    Face Info

    None

    2.0.0

    attributeResult

    AttributeResult

    Attribute Result

    None

    2.0.0

    wearEyeGlass

    boolean

    Wear eye glass or not

    None

    2.0.0

    wearSunGlass

    boolean

    Wear sun glass or not

    None

    2.0.0

    w

    int

    Frame Width

    None

    2.0.0

    h

    int

    Frame Height

    None

    2.0.0

    orientation

    FaceOrientation

    Face Orientation

    None

    2.0.0

    irCameraNv21Data

    byte[]

    IR frame data corresponding to the recognition result

    None

    2.0.0

    temperatureValue

    float[]

    Temperature Value

    None

    2.0.0

    temperatureBitmap

    Bitmap

    temperatureBitmap

    None

    2.0.0

    temperatureWidth

    int

    Width temperatureBitmap

    None

    2.0.0

    temperatureHeight

    int

    Height temperatureBitmap

    None

    2.0.0

    temperatureOrientation

    FaceOrientation

    temperatureBitmap Face Orientation

    None

    2.0.0

    faceIdentifyResults

    List<FaceIdentifyResult>

    List of Identification Result

    None

    2.0.0

    feature

    byte[]

    Feature

    None

    2.0.0

    verifyScore

    float

    Verify Score

    None

    2.0.0

    livenessScore

    float

    Liveness Score

    None

    2.0.0

    userId

    int

    User ID

    None

    2.0.0

    trackAndTemperatureResult

    TrackAndTemperatureResult

    Temperature Result

    None

    2.0.0

    isMask

    boolean

    Whether a mask is wore or not

    None

    2.0.0

    identifyResultTypeEnum

    IdentifyResultTypeEnum

    Identification Result

    None

    2.0.0

    faceSearchResult

    FaceSearchResult

    Search Result

    None

    2.0.0

    temperature

    float

    Temperature

    None

    2.0.0

    None

    2.0.0

    VERIFY_SUCCESS

    VERIFY_SUCCESS

    None

    2.0.0

    Member Function

    Description

    Version Introduced

    boolean setIdentifyTarget(Bitmap avatar)

    Set Individual Identification Feature

    2.0.0

    ImageConfig getImageConfig()

    get Image Configuration

    2.0.0

    IdentifyConfig getIdentifyConfig()

    Get Identify Manager Workflow Configuration

    2.0.0

    ThresholdConfiggetThresholdConfig]()

    Member Function

    Description

    Version Introduced

    boolean setIdentifyTarget(Bitmap avatar)

    Set Individual Identification Feature

    2.0.0

    ImageConfig getImageConfig()

    get Image Configuration

    2.0.0

    IdentifyConfig getIdentifyConfig()

    Get Identify Manager Workflow Configuration

    2.0.0

    ThresholdConfig getThresholdConfig()

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    avatar

    Bitmap

    Individual ID Photo

    None

    2.0.0

    Returned Value

    Description

    Note

    Version Introduced

    true

    Set Success

    None

    2.0.0

    false

    Set Fail

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    faceFilterInterceptor

    IFaceFilterInterceptor

    Face Filter Interceptor

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    data

    byte[]

    Image Data

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    data

    byte[]

    Image Data

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    temperatureBitmap

    Bitmap

    Thermodynamic Diagram

    None

    2.0.0

    temperatureValue

    float[]

    Temperature Value

    None

    Type

    Parameter Name

    Description

    Note

    Version Introduced

    ImageConfig

    imageConfig

    Image Configuration

    None

    2.0

    IIdentifyResultCallback

    identifyResultCallback

    Identification Result Callback

    None

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    faceFilterInterceptor

    IFaceFilterInterceptor

    Face Filter Interceptor

    None

    2.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    iIdentifyCallback

    IIdentifyResultCallback

    Identification Result Callback

    None

    2.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    verifyMode

    VerifyModeEnum

    Verification Mode

    None

    2.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    thresholdConfig

    ThresholdConfig

    Threshold Configuration

    None

    2.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    identifyConfig

    IdentifyConfig

    Identification Manager Workflow Configuration

    None

    2.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    serverVerifyAction

    IServerVerifyAction

    Server Verification Logic

    None

    2.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    temperatureSdkAction

    ITemperatureSdkAction

    Temperature Measurement Sdk Action

    None

    2.0

    Member

    Type

    Description

    Note

    Version Introduced

    int previewW

    int

    Camera Preview Resolution Width

    None

    2.0.0

    int previewH

    int

    Camera Preview Resolution Height

    None

    Member

    Description

    Note

    Version Introduced

    GRAY8

    Y 1

    None

    2.0.0

    YUV420P

    YUV 4:2:0

    None

    2.0.0

    NV12

    Member

    Description

    Note

    Version introduced

    UP

    Face up

    None

    2.0.0

    LEFT

    Face Left

    None

    2.0.0

    DOWN

    Member

    Type

    Description

    Note

    Version Introduced

    debug

    boolean

    Debug ON/OFF

    None

    2.0.0

    imageConfig

    ImageConfig

    Identify Frame Information Configuration

    None

    Member

    Type

    Description

    Note

    Version Introduced

    verifyAreaRect

    RectF

    Masked rectangle Area

    None

    2.0.0

    faceMinWidth

    int

    Recognizable minimum face width

    None

    Member Function

    Description

    Note

    Version Introduced

    T filterFace(FaceInfo faceInfo, byte[] data, MidPixelFormat midPixelFormat, int width, int height, FaceOrientation faceOrientation)

    Face Filter

    None

    2.0.0

    Member

    Type

    Description

    Note

    Version Introduced

    faceRect

    Rect

    Face Rectangle

    None

    2.0.0

    facePoints

    PointF[]

    Face Points

    None

    Member

    Description

    Note

    Version Introduced

    MODE_1_N

    1:N Comparison Mode

    None

    2.0.0

    MODE_1_1

    1:1 Comparison Mode

    None

    2.0.0

    MODE_SERVER_1_N

    Member Function

    Description

    Note

    Version Introduced

    void onTrackResult(FaceInfo[] faces, byte[] rgbCameraData, byte[] irCameraData)

    Callback Track Result

    None

    2.0.0

    void onNoFaceOverTime(byte[] rgbCameraData, byte[] irCameraData)

    No Face Callback Detected within the Specified Time

    None

    2.0.0

    void onClearScreen()

    Member

    Type

    Description

    Note

    Version Introduced

    code

    int

    Result Code

    0-Pass, Filtered if it is not 0. If it is filtered, then the developer should customize it in the interceptor API

    2.0.0

    interceptorId

    int

    Interceptor ID

    None

    Member

    Type

    Description

    Note

    Version Introduced

    code

    int

    Result Code

    0-Pass, Filtered if it is not 0, specifically customized by each interceptor

    2.0.0

    interceptorId

    int

    Interceptor ID

    None

    Member

    Type

    Description

    Note

    Version Introduced

    rgbFace

    FaceInfo

    Face Info

    None

    2.0.0

    wearMask

    boolean

    Wear Mask

    None

    Member

    Type

    Description

    Note

    Version Introduced

    frameId

    int

    Frame ID

    None

    2.0.0

    rgbCameraNv21Data

    byte[]

    RGB frame data corresponding to the recognition result

    None

    Member

    Type

    Description

    Note

    Version Introduced

    faceInfo

    FaceInfo

    RGB Face Info

    None

    2.0.0

    irFaceInfo

    FaceInfo

    IR Face Info

    None

    Member

    Type

    Description

    Note

    Version Introduced

    faceInfo

    FaceInfo

    RGB Face Info

    None

    2.0.0

    irFaceInfo

    FaceInfo

    IR Face Info

    None

    Member

    Description

    Note

    Version Introduced

    NON_LIVENESS

    NON_LIVENESS

    None

    2.0.0

    LIVENESS

    LIVENESS

    None

    2.0.0

    STRANGER

    Member

    Type

    Description

    Note

    Version Introduced

    userID

    int

    Index value defined when inserting into the database

    None

    2.0.0

    score

    float

    The score of the most similar eigenvalue

    None

    Member Function

    Description

    Note

    Version Introduced

    T verify( byte[] cameraData, byte[] feature,FaceInfo rgbFace, int width, int height)

    Face Search Identification

    None

    2.0.0

    Member Function

    Description

    Note

    Version Introduced

    List temperCalculateAir(MatchFace[] matchFaces, Bitmap temperatureBitmap, float[] temperatureData, int temperatureWidth, int temperatureHeight, FaceOrientation temperatureOrientation)

    Multi-person temperature measurement algorithm

    None

    2.0.0

    get Threshold Configuration

    get Threshold Configuration

    2.0.0

    2.0.0

    2.0.0

    YUV 4:2:0

    Face Down

    2.0.0

    2.0.0

    2.0.0

    Server identification 1:N Mode

    No Face Callback

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    STRANGER

    2.0.0

    ドアアクセス

    PassとThunderシリーズのドアアクセスデバイスをコントロール

    機能類の説明

    DoorDeviceAccessProxy

    制御デバイスのGPIOポートやシリアルポートなどの通信デバイスの全体的な初期化、構成、およびリソース解放操作を制御し、特定のドアオープン操作を実行

    メンバー関数の説明

    DoorAccessConfig getConfig()

    ドアアクセス構成を取得

    パラメータ

    なし

    戻り値

    例外

    なし

    DoorAccessDevice getDevice(int deviceType)

    デバイスタイプによってデバイス引数を取得

    パラメータ

    戻り値

    例外

    なし

    void changeOpenDoorDevice(int mode)

    ドアオープンモードを変更

    パラメータ

    戻り値

    なし

    例外

    なし

    void closeRelayDoor()

    リレードアを閉じます

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void init()

    シリアルポートナンバーなしの初期化。[void init(String uartName)]\を参照

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void init(String uartName)

    シリアルポートナンバーがある場合の初期化

    パラメータ

    戻り値

    なし

    例外

    なし

    void openDoor(String cardNumber)

    ドアをオープン。設定したドアオープンモードに従いオープンを実行

    パラメータ

    戻り値

    なし

    例外

    なし

    void release()

    リソースを解放

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void setConfig(DoorAccessConfig config)

    ドアアクセス構成を設定

    パラメータ

    戻り値

    なし

    例外

    なし

    void setCardReaderCallback(WiegandReaderDevice.CardReaderCallback cardReaderCallback)

    カード読み取りコールバックを設定

    パラメータ

    戻り値

    なし

    例外

    なし

    void setCustomWiegandDataReceivedCallback(WiegandReaderDevice.OnDataReceivedCallback dataReceivedCallback)

    カスタムWiegandデータインタフェースコールバックを設定

    パラメータ

    戻り値

    なし

    例外

    なし

    void setICardNumberAnalysis(WiegandDoorDevice.ICardNumberAnalysis cardNumberAnalysis)

    Wiegandカードナンバー解析方式を設定

    パラメータ

    戻り値

    なし

    例外

    なし

    PassDoorDeviceAccessProxy

    SensePassとSenseThunderシリーズの一部ドアアクセスデバイスをコントロール

    メンバー関数の説明

    void closeBackLight()

    バックライトをオフ

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void enableRS485(RS485Device.RS485ReceiveListener listener)

    RS485を有効

    パラメータ

    戻り値

    なし

    例外

    なし

    void enableRS485(int baudrate, int readBufferSize, RS485Device.RS485ReceiveListener listener)

    RS485を有効

    パラメータ

    戻り値

    なし

    例外

    なし

    void enableRS485(int baudrate, int readBufferSize, RS485Device.RS485ReceiveListener listener, int readTimeout, SerialPortReader.OnReadTimeOutListener timeOutListener)

    RS485を有効

    パラメータ

    戻り値

    なし

    例外

    なし

    void openBackLight()

    バックライトをオン

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void pressBuzzer()

    ブザーをオン(SensePassとSenseThunderE-miniにのみ対応)

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void pressDoorBell(int pressDownDuration)

    ドアベルを押す

    パラメータ

    戻り値

    なし

    例外

    なし

    void pressAlarmBell()

    アラートをオンにするためにアラートベルを押下

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void releaseAlarmBell()

    アラートベルを解除

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void releaseBuzzer()

    ブザーをオフに(SensePass020にのみサポート)

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void setDoorStateCallback(DoorMagnetismStateCallback callback)

    ドアステータスのコールバックを設定し、ドアの開閉ステータスをモニタリング

    パラメータ

    戻り値

    なし

    例外

    なし

    void setOnClickDoorButtonListener(DoorButtonDevice.DoorButtonOnClickListener listener)

    ドアボタンのクリック状態のリスナー

    パラメータ

    戻り値

    なし

    例外

    なし

    void setReceiveFireSignListener(FireSignalDevice.ReceiveFireSignListener listener)

    Receive 消防シグナルのリスナー

    パラメータ

    戻り値

    なし

    例外

    なし

    void sendDataByRS485(byte[] data)

    RS485でデータ送信

    パラメータ

    戻り値

    なし

    例外

    なし

    void turnOnIrLight()

    IRライトをオン。SensePassとSenseThunderシリーズをサポート

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void turnOffIrLight()

    IRライトをオフに。SensePassとSenseThunderシリーズをサポート

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    エンティティの説明

    DoorAccessConfig

    ドアアクセス構成

    プロパティの説明

    ドアオープンモード

    Wiegand入力

    GPIO構成

    設定可能なプロパティ

    メソッドの説明

    DoorAccessDevice

    ドアアクセスデバイス

    メソッドの説明

    CardReaderCallback

    WIEGANDデバイスカードリーダーのコールバック

    メソッドの説明

    OnDataReceivedCallback

    Wiegandパススルーデータ受信のコールバック

    メソッドの説明

    ICardNumberAnalysis

    カスタマイズされたWiegandカードナンバーデータの解析

    メソッドの説明

    DoorMagnetismStateCallback

    ドアマグネットステータスのコールバック

    メソッドの説明

    ReceiveFireSignListener

    消防シグナルのリスナー

    メソッドの説明

    ReceiveDismantleSignListener

    盗難アラートのリスナー

    メソッドの説明

    SensorListener

    センサーデータ変更インターフェース

    メソッドの説明

    OnSensorChangedListener

    IRリスナー

    メソッドの説明

    RS485ReceiveListener

    RS485データ読み取りリスナー

    メソッドの説明

    OnReadTimeOutListener

    RS485データ読み取りタイムアウトのコールバック

    メソッドの説明

    DoorButtonOnClickListener

    ドアボタンのクリック状態をモニタリング

    メソッドの説明

    void init()

    初期化

    2.0.0

    void init(String uartName)

    初期化

    2.0.0

    void openDoor(String cardNumber)

    ドアをオープン

    2.0.0

    void release()

    リソースを解放

    2.0.0

    void setConfig(DoorAccessConfig config)

    ドアアクセス構成を設定

    2.0.0

    void setCardReaderCallback

    (WiegandReaderDevice.CardReaderCallback cardReaderCallback)

    Wiegandカードリーダーコールバックを設定

    2.0.0

    void setCustomWiegandDataReceivedCallback

    (WiegandReaderDevice.OnDataReceivedCallback dataReceivedCallback)

    カスタムWiegandデータインタフェースコールバックを設定

    2.0.0

    void setICardNumberAnalysis

    (WiegandDoorDevice.ICardNumberAnalysis cardNumberAnalysis)

    Wiegandカード番号解析方式を設定

    2.0.0

    2.0.0

    void openBackLight()

    バックライトをオン

    2.0.0

    void pressBuzzer()

    ブザーをオン

    2.0.0

    void pressDoorBell(int pressDownDuration)

    ドアベルを押す

    2.0.0

    void pressAlarmBell()

    アラームベルを押す

    2.0.0

    void releaseAlarmBell()

    アラームベルを解除

    2.0.0

    void releaseBuzzer()

    ブザーを解除

    2.0.0

    void setDoorStateCallback(DoorMagnetismStateCallback callback)

    ドアステータスコールバックを設定

    2.0.0

    void setOnClickDoorButtonListener

    (DoorButtonDevice.DoorButtonOnClickListener listener)

    ドアボタンのクリック状態をモニタリング

    2.0.0

    void setReceiveFireSignListener

    (FireSignalDevice.ReceiveFireSignListener listener)

    消防シグナルのモニタリング

    2.0.0

    void sendDataByRS485(byte[] data)

    RS485でデータ送信

    2.0.0

    void turnOnIrLight()

    IRライトをオン

    2.0.0

    void turnOffIrLight()

    IRライトをオフ

    2.0.0

    listener

    RS485Device.RS485ReceiveListener

    データ受信コールバック

    なし

    2.0.0

    listener

    RS485Device.RS485ReceiveListener

    データ受信コールバック

    なし

    2.0.0

    readTimeout

    int

    データ読み取りのタイムアウト期間

    なし

    2.0.0

    timeOutListener

    SerialPortReader.OnReadTimeOutListener

    データ読み取りのタイムアウトコールバック

    なし

    2.0.0

    constant

    2.0.0

    static final int OPEN_DOOR_MODE_WIEGAND26_8_16_BIT

    WIEGAND26(8 + 16 bit)

    constant

    2.0.0

    static final int OPEN_DOOR_MODE_WIEGAND32

    WIEGAND32

    constant

    2.0.0

    static final int OPEN_DOOR_MODE_WIEGAND34

    WIEGAND34

    Constant

    2.0.0

    static final int OPEN_DOOR_MODE_CUSTOM

    Wiegand カスタム(出力)

    Constant

    2.0.0

    Constant

    2.0.0

    static final int WIEGAND34

    WIEGAND34

    Constant

    2.0.0

    static final int WIEGAND_INPUT_CUSTOM

    WIEGAND カスタム(入力)

    Constant

    2.0.0

    Constant

    2.0.0

    static final int GPIO_IN_FIRE_SIGNAL

    GPIO入力構成は消防シグナル

    Constant

    2.0.0

    static final int GPIO_OUT_NONE

    GPIO出力を構成していません

    Constant

    2.0.0

    static final int GPIO_OUT_DOOR_BELL

    GPIO出力構成はドアベル

    Constant

    2.0.0

    static final int GPIO_OUT_ALARM

    GPIO出力構成はアラーム

    Constant

    2.0.0

    なし

    2.0.0

    int mGpioInA

    GPIO入力A

    なし

    2.0.0

    int mGpioInB

    GPIO入力B

    なし

    2.0.0

    int mWiegandInput

    Wiegand入力

    なし

    2.0.0

    int mDoorMagnetismTimeout

    ドアマグネットタイムアウト

    なし

    2.0.0

    String mRelayIp

    ネットワークリレーIP

    なし

    2.0.0

    int mRS485BaudRate

    RS485シリアルポートボードレート

    Default 9600

    2.0.0

    int mRS485BufferSize

    RS485バッファーサイズ

    Default 64

    2.0.0

    boolean mIsSupportRS485GpioAutoControl

    RS485 GPIO自動制御をサポートするかを判定

    なし

    2.0.0

    int mPulseCycle

    パルス周期

    Default 2400

    2.0.0

    int mPulseWidth

    パルス幅

    Default 380

    2.0.0

    boolean mReverseCardNumber

    カードナンバーを逆順にするかを判定

    なし

    2.0.0

    なし

    2.0.0

    boolean isDeviceCreated()

    デバイスが生成されたかを判定

    なし

    2.0.0

    void createDevice()

    デバイスを生成

    なし

    2.0.0

    メンバー関数

    説明

    導入バージョン

    DoorAccessConfig getConfig()

    ドアアクセス構成を取得

    2.0.0

    DoorAccessDevice getDevice(int deviceType)

    デバイスを取得

    2.0.0

    void changeOpenDoorDevice(int mode)

    ドアオープンモードを変更

    2.0.0

    void closeRelayDoor()

    リレードアを閉じます

    戻り値

    説明

    備考

    導入バージョン

    DoorAccessConfig

    ドアアクセス構成のインスタンス

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    deviceType

    int

    デバイスタイプ

    なし

    2.0.0

    戻り値

    説明

    備考

    導入バージョン

    DoorAccessDevice

    ドアアクセスデバイス

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    mode

    int

    ドアオープンモード

    DoorAccessConfig Door Access Configuration )

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    uartName

    String

    シリアルポート名

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    cardNumber

    String

    ICカードナンバー

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    config

    DoorAccessConfig

    ドアアクセス構成

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    cardReaderCallback

    WiegandReaderDevice.CardReaderCallback

    Wiegandカード読み取りコールバック

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    dataReceivedCallback

    WiegandReaderDevice.OnDataReceivedCallback

    Wiegandパススルーデータ受信コールバック

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    cardNumberAnalysis

    WiegandDoorDevice.ICardNumberAnalysis

    Wiegandカードナンバー解析方式

    なし

    2.0.0

    メンバー関数

    説明

    導入バージョン

    void closeBackLight()

    バックライトをオフ

    2.0.0

    void enableRS485(RS485Device.RS485ReceiveListener listener)

    RS485を有効

    2.0.0

    void enableRS485(int baudrate, int readBufferSize, RS485Device.RS485ReceiveListener listener)

    RS485を有効

    2.0.0

    void enableRS485(int baudrate, int readBufferSize, RS485Device.RS485ReceiveListener listener, int readTimeout, SerialPortReader.OnReadTimeOutListener timeOutListener)

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    listener

    RS485Device.RS485ReceiveListener

    データ受信コールバック

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    baudrate

    int

    ボーレート

    なし

    2.0.0

    readBufferSize

    int

    読み取る必要のあるデータ長

    なし

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    baudrate

    int

    ボーレート

    なし

    2.0.0

    readBufferSize

    int

    読み取る必要のあるデータ長

    なし

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    pressDownDuration

    int

    押下した期間で、単位がミリ秒

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    callback

    DoorMagnetismStateCallback

    ドアステータスのコールバック

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    listener

    DoorButtonDevice.DoorButtonOnClickListener

    ドアボタンのクリック状態のリスナー

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    listener

    FireSignalDevice.ReceiveFireSignListener

    消防シグナルのリスナー

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    data

    byte[]

    送信待ちのデータ

    なし

    2.0.0

    Member

    説明

    備考

    導入バージョン

    static final int OPEN_DOOR_MODE_RELAY

    ローカルリレードアをオープン

    constant

    2.0.0

    static final int OPEN_DOOR_MODE_IP_RELAY

    ネットワークリレー

    constant

    2.0.0

    static final int OPEN_DOOR_MODE_WIEGAND26_24_BIT

    Member

    説明

    備考

    導入バージョン

    static final int WIEGAND26_24_BIT

    WIEGAND26(24bit)

    Constant

    2.0.0

    static final int WIEGAND26_8_16_BIT

    WIEGAND26(8 + 16bit)

    Constant

    2.0.0

    static final int WIEGAND32

    Member

    説明

    備考

    導入バージョン

    static final int GPIO_IN_NONE

    GPIO入力を構成していません

    Constant

    2.0.0

    static final int GPIO_IN_DOOR_MAGNETISM

    GPIO入力構成はドアマグネット

    Constant

    2.0.0

    static final int GPIO_IN_DOOR_BUTTON

    Member

    説明

    備考

    導入バージョン

    int mOpenDoorTime

    ドアオープン時間

    なし

    2.0.0

    int mOpenDoorMode

    ドアオープンモード

    なし

    2.0.0

    int mGpioOut

    メンバー関数

    説明

    備考

    導入バージョン

    DoorAccessConfig build()

    DoorAccessConfigインスタンスを構築

    なし

    2.0.0

    メンバー関数

    説明

    備考

    導入バージョン

    int getDeviceId()

    デバイスIDを返

    なし

    2.0.0

    void setConfig(DoorAccessConfig config)

    デバイス構成を追加

    なし

    2.0.0

    void destroyDevice()

    メンバー関数

    説明

    備考

    導入バージョン

    void onRead(String cardNumber)

    カード読み取りが成功し、カードナンバーを取得

    なし

    2.0.0

    メンバー関数

    説明

    備考

    導入バージョン

    void onDataReceived(byte[] cardData)

    データ受信コールバック

    cardData:カスタマイズされたWiegandカードナンバーデータ

    2.0.0

    メンバー関数

    説明

    備考

    導入バージョン

    byte[] analysis(String cardDataString)

    カードstringはbyte[]データに解析されます

    cardDataString:カードナンバーデータString カードナンバーに対応するカスタムWiegandデータを返す

    2.0.0

    メンバー関数

    説明

    備考

    導入バージョン

    void onDoorStateChanged(int state)

    ドアマグネットステータスのコールバック

    State 0-OFF, 1-ON

    2.0.0

    メンバー関数

    説明

    備考

    導入バージョン

    void onReceive()

    消防シグナルのリスナー

    なし

    2.0.0

    メンバー関数

    説明

    備考

    導入バージョン

    void onReceive()

    盗難アラートのリスナー

    なし

    2.0.0

    メンバー関数

    説明

    備考

    導入バージョン

    void onSensorChanged(String value)

    データ変更コールバック

    なし

    2.0.0

    メンバー関数

    説明

    備考

    導入バージョン

    void onInfraredSignalRead()

    IRコールバック

    なし

    2.0.0

    メンバー関数

    説明

    備考

    導入バージョン

    void onReceive(byte[] data,long dataLength)

    RS485データ読み取りリスナー

    dataLength:データ長; data: 読み取るデータ

    2.0.0

    メンバー関数

    説明

    備考

    導入バージョン

    void onTimeout(byte[] data,long dataLength)

    RS485データ読み取りタイムアウトのコールバック

    dataLength:データ長; data: タイムアウト時に読み取るデータ

    2.0.0

    メンバー関数

    説明

    備考

    導入バージョン

    void onClick()

    ドアボタンのクリック状態のコールバック

    なし

    2.0.0

    2.0.0

    RS485を有効

    2.0.0

    2.0.0

    WIEGAND26(24bit)

    WIEGAND32

    GPIO入力構成はドアボタン

    GPIO出力ポート

    デバイスを廃棄

    MqttApiClient

    MQTT Interface implementation

    MqttApiClient

    Member Function

    Description

    Version introduced

    void connectMqtt(IMqttActionListener listener, IConnectionLost connectionLost, boolean useTokenConnect, SocketFactory socketFactory)

    Connect MQTT

    Description of Member Function

    void connectMqtt(IMqttActionListener listener, IConnectionLost connectionLost, boolean useTokenConnect, SocketFactory socketFactory)

    Connect MQTT

    Parameter

    Return

    None

    Exception

    None

    void disConnectMqtt(IMqttActionListener listener)

    Disconnect MQTT

    Parameter

    Return

    None

    Exception

    None

    void getUserListInGroup(int groupId, MessageCallback callback)

    Get User List In a Group

    Parameter

    Return

    None

    Exception

    None

    void registerGroupChangeListener(MessageCallback callback)

    Register Device and User In Group Change Callback

    Parameter

    Return

    None

    Exception

    None

    void registerUserInGroupChangeListener(int groupId, MessageCallback callback)

    Register User In Group Change Callback

    Parameter

    Return

    None

    Exception

    None

    void registerWarningAction(MessageCallback callback)

    Register Warning Action Change Callback

    Parameter

    Return

    None

    Exception

    None

    void registerAccessStrategy(MessageCallback callback)

    Register Access Strategy Change Callback

    Parameter

    Return

    None

    Exception

    None

    void registerUpgrade(MessageCallback callback)

    Register APP and ROM Update Callback

    Parameter

    Return

    None

    Exception

    None

    void registerDeviceStatus(MessageCallback callback)

    Register Device Status Change Callback

    Parameter

    Return

    None

    Exception

    None

    void registerDeviceConfig(MessageCallback callback)

    Register Device Configuration Change Callback

    Parameter

    Return

    None

    Exception

    None

    void registerDeviceNotify(MessageCallback callback)

    Register Device Server End Notification Push Callback

    Parameter

    Return

    None

    Exception

    None

    void registerKeepDoorOpenOrCloseSchedule(MessageCallback callback)

    Register Device Keep Door Open Or Close Schedule Push Callback

    Parameter

    Return

    None

    Exception

    None

    void unRegisterGroupChangeListener()

    Unregister Device and User In Group Change Callback

    Parameter

    None

    Return

    None

    Exception

    None

    void unegisterUserInGroupChangeListener(int groupId)

    Unregister User In Group Change Callback

    Parameter

    Return

    None

    Exception

    None

    void unegisterGetUserListInGroup(int groupId)

    Unregister User List of a Group

    Parameter

    Return

    No

    Exception

    No

    void unRegisterWarningAction()

    Unregister Warning Action Change Callback

    Parameter

    None

    Return

    None

    Exception

    None

    void unRegisterAccessStrategy()

    Unregister Access Strategy Change Callback

    Parameter

    None

    Return

    None

    Exception

    None

    void unRegisterUpgrade()

    Unregister APP and ROM Update Callback

    Parameter

    No

    Return

    No

    Exception

    No

    void unRegisterDeviceStatus()

    Unregister Device Status Change Callback

    Parameter

    None

    Return

    None

    Exception

    None

    void unRegisterDeviceConfig()

    Unregister Device Configuration Change Callback

    Parameter

    None

    Return

    None

    Exception

    None

    void unRegisterDeviceNotify()

    Unregister Device Server End Notification Push Callback

    Parameter

    None

    Return

    None

    Exception

    None

    void unRegisterKeepDoorOpenOrCloseSchedule()

    Unregister Device Keep Door Open Or Close Schedule Push Callback

    Parameter

    None

    Return

    None

    Exception

    None

    Description of Entities

    LanguageTypeEnum

    Description of Properties

    ConnectConfigEntity

    Description of Properties

    Result

    Description of Properties

    Description of Method

    AlarmReportParameter

    Description of Properties

    VerticesItem

    Description of Properties

    GuestDetailInfo

    Description of Properties

    GroupsItem

    Description of Properties

    TslCheckExistResult

    Description of Properties

    TslLanguageCheckExistResult

    Description of Properties

    FaceSearchResult

    Description of Properties

    SearchResultItem

    Description of Properties

    Content

    Description of Properties

    FaceSearchParameter

    Description of Properties

    ImagesItem

    Description of Properties

    TargetInfo

    Description of Properties

    Angle

    Description of Properties

    Rectangle

    Description of Properties

    VerticesItem

    Description of Properties

    LandmarksItem

    Description of Properties

    CameraInfo

    Description of Properties

    GroupIndex

    Description of Properties

    UserIndex

    Description of Properties

    UserInfoResult

    Description of Properties

    UserInfoParameter

    Description of Properties

    DeviceGroups

    Description of Properties

    DeviceDetailInfo

    Description of Properties

    DeviceTypeMaxOnline

    Description of Properties

    ServiceConfigItem

    Description of Properties

    Options

    Description of Properties

    Company

    Description of Properties

    RsaResult

    Description of Properties

    UserDetailInfo

    Description of Properties

    DeptItem

    Description of Properties

    ServerVersion

    Description of Properties

    TimeTable

    Description of Properties

    SpecialDay

    Description of Properties

    QRResult

    Description of Properties

    IdentifyQRCodeParameter

    Description of Properties

    LoginResult

    Description of Properties

    UserRspVO

    Description of Properties

    DepartmentRouteItem

    Description of Properties

    Device

    Description of Properties

    MisrecognitionRecordParameter

    Description of Properties

    RegisterResult

    Description of Properties

    RegisterParameter

    Description of Properties

    UserStatusParameter

    Description of Properties

    ExceptionListItem

    Description of Properties

    UserSyncStatusParameter

    Description of Properties

    UserStatusListItem

    Description of Properties

    DeviceReportEventParamer

    Description of Properties

    DoorMagnetismReportEventContent

    Description of Properties

    BluetoothReportEventContent

    Description of Properties

    ThermalImagerReportEventContent

    Description of Properties

    RecordResult

    Description of Properties

    RecordParameter

    Description of Properties

    DeviceVersionInfoParameter

    Description of Properties

    IdentifyDataParameter

    Description of Properties

    Depth

    Description of Properties

    TslUploadParameter

    Description of Properties

    TslLanguageUploadParameter

    Description of Properties

    MessageParameter

    Description of Properties

    MessageEventEnum

    Description of Properties

    IConnectionLost

    Description of Method

    MessageCallback

    Description of Method

    useTokenConnect

    boolean

    Use Token Connect

    None

    2.0.0

    socketFactory

    SocketFactory

    The verification method used to build https

    certificate not verified by default

    2.0.0

    None

    2.0.0

    JP

    Japanese

    None

    2.0.0

    KO

    Korean

    None

    2.0.0

    identifier

    String

    Device Identifier

    None

    2.0.0

    duid

    String

    Device SN

    None

    2.0.0

    token

    String

    Device Token

    None

    2.0.0

    ldid

    String

    Device Background Identification Number

    None

    2.0.0

    companyId

    int

    Company ID

    None

    2.0.0

    isNewDevice

    boolean

    Is New Device

    None

    2.0.0

    message

    String

    message

    None

    2.0.0

    desc

    String

    Description

    None

    2.0.0

    originData

    String

    Origin Data

    None

    2.0.0

    rawData

    byte[]

    Binary Data

    None

    2.0.0

    None

    2.0.0

    N

    code

    int

    Alarm Code

    10001 stands for disassembly alarm, 10002 stands for forced door open alarm, 10003 stands for door magnetism overtime alarm, 10004 is password attack alarm, 10005 is Bluetooth power shortage, 10006 indicates thermal imager connection exception, 20001 shows camera contamination, 20002 means a non-liveness attack, 20003 is fire alarm and 40001 stands for feature extraction failure

    2.0.0

    If the parameter "status" is 1, then the parameter "code" is necessary, otherwise it is optional

    description

    String

    Alarm Description

    None

    2.0.0

    N

    eventTime

    Long

    Event Time

    millisecond precision

    2.0.0

    Y

    status

    int

    Alarm Report Event

    1 means there is an alarm, 2 means alarm clearance failed, 3 means alarm clearance successful

    2.0.0

    Y

    rectangle

    List<VerticesItem>

    rectangle coordinate

    The first is the upper left corner coordinates, the second is the lower right corner coordinates

    2.0.0

    N

    userId

    long

    User ID

    None

    2.0.0

    N

    None

    2.0.0

    Y

    showAvatar

    String

    Show Avatar

    None

    2.0.0

    name

    String

    Name

    None

    2.0.0

    groups

    List<GroupsItem>

    Group

    None

    2.0.0

    mobile

    String

    Contact Info

    None

    2.0.0

    guestCompany

    String

    Guest Company

    None

    2.0.0

    birthday

    String

    Birthday

    None

    2.0.0

    position

    String

    Position

    None

    2.0.0

    idNumber

    String

    ID Number

    None

    2.0.0

    icNumber

    String

    ic Card Number

    None

    2.0.0

    mail

    String

    Mail

    None

    2.0.0

    guestPurpose

    String

    Guest Purpose

    None

    2.0.0

    receptionUserId

    long

    reception User id

    None

    2.0.0

    receptionUserName

    String

    reception User Name

    None

    2.0.0

    dateTimeFrom

    String

    Effective Time From

    None

    2.0.0

    dateTimeTo

    String

    Effective Time To

    None

    2.0.0

    level

    int

    level

    None

    2.0.0

    remark

    String

    Note

    None

    2.0.0

    type

    int

    Group Type

    1:User Group, 2: Guest Group, 5: deny list Group

    2.0.0

    personCount

    int

    person Count

    None

    2.0.0

    timestamp

    long

    Timestamp uploaded when requested by the client

    None

    2.0.0

    passRuleType

    int

    Pass Rule Type

    0: Local Pass Rule 1: Server Pass Rule

    2.0.0

    sign

    String

    md5, check note for detail

    The md5 Value of {timestamp}-{ldid}-{gateCtrl}-{passRuleType}

    2.0.0

    userId

    int

    User ID

    None

    2.0.0

    userCardId

    String

    User Door Access Card ID

    None

    2.0.0

    userImage

    Content

    User Library Image

    None

    2.0.0

    trackId

    int

    id for Face Tracking

    None

    2.0.0

    userName

    String

    User Name

    None

    2.0.0

    displayMsg

    String

    display Msg

    None

    2.0.0

    displayColor

    String

    display Color

    None

    2.0.0

    verifyCode

    int

    Verification Code

    1: Unactivated, 2: activated, 3: Unauthorized 4: Match failed, 5: Not within the passable time range

    2.0.0

    type

    int

    Type

    None

    2.0.0

    idNumber

    String

    id Number

    None

    2.0.0

    sign

    String

    md5

    the md5 Value of {verifyCode}-{timestamp}-{ldid}-{userId}

    2.0.0

    extra

    String

    Extra String

    None

    2.0.0

    url

    String

    Image url

    choose it or data

    2.0.0

    None

    2.0.0

    N

    receiveTime

    long

    receive Timestamp

    millisecond class

    2.0.0

    N

    fullImage

    Content

    full picture

    full picture is not required if a caputured small picture is uploaded

    2.0.0

    Y

    captureTime

    long

    Capture Timestamp

    millisecond class

    2.0.0

    N

    cameraInfo

    CameraInfo

    Camera Common Info

    None

    2.0.0

    N

    timestamp

    long

    Timestamp

    millisecond class

    2.0.0

    N

    content

    Content

    Image Content

    None

    2.0.0

    imageType

    int

    Image Type

    1: rgb Image, 2: ir Image

    2.0.0

    mask

    int

    Wear Mask

    0 Not pass in, 1 No,2 Yes

    2.0.0

    bodyTemperature

    float

    body Temperature

    None

    2.0.0

    rectangle

    Rectangle

    Rectangle

    None

    2.0.0

    landmarks

    List<LandmarksItem>

    Object key point coordinate

    None

    2.0.0

    quality

    float

    Target detection quality

    [0.0, 1.0]

    2.0.0

    yaw

    int

    Face yaw angle

    None

    2.0.0

    tollgateId

    String

    id of the toll gate where the camera is located

    None

    2.0.0

    tollgateName

    String

    Name of the toll gate where the camera is located

    None

    2.0.0

    cameraId

    String

    Camera id

    None

    2.0.0

    deviceType

    String

    Camera HardwareType

    None

    2.0.0

    placeCode

    String

    code of the place where the camera is located

    None

    2.0.0

    groupName

    String

    Group Name

    None

    2.0.0

    createdAt

    long

    Created Timestamp

    None

    2.0.0

    mail

    String

    Mail

    None

    2.0.0

    gender

    int

    Gender

    0-Unknown, 1-Female, 2-Male

    userName

    String

    User Name

    None

    2.0.0

    phoneSuffix

    String

    Mobile Number Suffix

    None

    2.0.0

    createdAt

    long

    Create Timestamp

    None

    2.0.0

    remark

    String

    Remark

    None

    2.0.0

    addChannel

    int

    add Channel

    1: web; 2: senseid; 3: QR Code; 4: openapi 5: SenseHi App Self-modification 6: batch tool

    type

    int

    User Type

    1:User 2:Guest 3 deny list

    avatarShow

    String

    Art Photo ID

    None

    2.0.0

    dateTimeTo

    long

    End Timestamp

    None

    2.0.0

    guestCompany

    String

    Guest Company

    None

    2.0.0

    guestLevel

    String

    Guest Level

    None

    2.0.0

    feature

    String

    Face Feature

    None

    2.0.0

    updatedAt

    long

    Update Timestamp

    None

    2.0.0

    jobNumber

    String

    Job Number

    None

    2.0.0

    icNumber

    String

    IC Card Number

    None

    2.0.0

    dateTimeFrom

    long

    Start Timestamp

    None

    2.0.0

    entryTime

    long

    Entry Time

    None

    2.0.0

    idNumber

    String

    ID Number

    None

    2.0.0

    companyId

    int

    User Company ID

    None

    2.0.0

    departmentId

    int

    User Department ID

    None

    2.0.0

    departmentName

    String

    Department Name

    None

    2.0.0

    areaCode

    String

    Area Code

    None

    2.0.0

    mobile

    String

    Mobile Number

    None

    2.0.0

    permission

    int

    Access permission

    0-Permitted, 1-Not Permitted

    2.0.0

    receptionUserId

    int

    User id for Guest Reception

    None

    2.0.0

    avatar

    String

    Avatar ID

    None

    2.0.0

    countryCode

    String

    Country Code

    None

    2.0.0

    staffType

    int

    Staff Type

    1-Staff, 2Intern

    2.0.0

    userId

    int

    User ID

    None

    2.0.0

    guestPurpose

    String

    guest Purpose

    None

    2.0.0

    location

    String

    Location

    None

    2.0.0

    position

    String

    Position

    None

    2.0.0

    placeCode

    String

    Place Code

    None

    2.0.0

    prompt

    String

    Personalized Prompt

    None

    2.0.0

    guestGroups

    List<GroupsItem>

    Guest Group

    None

    2.0.0

    denyListGroup

    List<GroupsItem>

    deny list group

    None

    2.0.0

    typeName

    String

    Device Type Name

    None

    2.0.0

    userGroup

    List<GroupsItem>

    User Group

    None

    2.0.0

    guestGroup

    List<GroupsItem>

    Guest Group

    None

    2.0.0

    typeId

    int

    Device TypeID

    None

    2.0.0

    name

    String

    Device Name

    None

    2.0.0

    description

    String

    Device Description Info

    None

    2.0.0

    location

    String

    Device Location

    None

    2.0.0

    id

    int

    Device ID

    None

    2.0.0

    state

    int

    Device State

    1 - Online, 0-Offline

    2.0.0

    direction

    int

    Device In and Out Direction

    0-Default, 1-In, 2-Out

    2.0.0

    typeId

    int

    Device Type ID

    None

    2.0.0

    maxOnlineNum

    int

    Device Max Online Number

    None

    2.0.0

    id

    String

    Device ID

    None

    2.0.0

    createBy

    String

    Creator ID

    None

    2.0.0

    background

    String

    Background

    None

    2.0.0

    contact

    String

    Contact

    None

    2.0.0

    validTo

    String

    Valid To

    None

    2.0.0

    name

    String

    Company Name

    None

    2.0.0

    updateAt

    String

    Update Time

    None

    2.0.0

    logo

    String

    Company logo

    None

    2.0.0

    id

    int

    Company ID

    None

    2.0.0

    createAt

    String

    Create Time

    None

    2.0.0

    welcome

    String

    Welcome Message

    None

    2.0.0

    introduction

    String

    Company Introduction

    None

    2.0.0

    userGroupId

    int

    User Group ID

    None

    2.0.0

    rsaId

    String

    Key ID

    None

    2.0.0

    entryTime

    String

    Entry Time

    None

    2.0.0

    idNumber

    String

    ID Number

    None

    2.0.0

    mail

    String

    Mail

    None

    2.0.0

    areaCode

    String

    Area Code

    None

    2.0.0

    phoneSuffix

    String

    Mobile Number Suffix

    None

    2.0.0

    mobile

    String

    Mobile Number

    None

    2.0.0

    groups

    List<GroupsItem>

    Group Info

    None

    2.0.0

    remark

    String

    Remark

    None

    2.0.0

    avatar

    String

    Avatar ID

    None

    2.0.0

    avatarShow

    String

    Art Photo ID

    None

    2.0.0

    countryCode

    String

    Country Code

    None

    2.0.0

    name

    String

    User Name

    None

    2.0.0

    location

    String

    Location

    None

    2.0.0

    departmentRoute

    List<DeptItem>

    Department

    None

    2.0.0

    id

    long

    User ID

    None

    2.0.0

    position

    String

    Position

    None

    2.0.0

    jobNumber

    String

    job Number

    None

    2.0.0

    placeCode

    String

    Place Code

    None

    2.0.0

    department

    int

    Department ID

    None

    2.0.0

    prompt

    String

    Personalized Prompt

    None

    2.0.0

    type

    int

    Department Type

    None

    2.0.0

    provider

    String

    Provider

    ST-BI, ST-JCV

    2.0.0

    product

    String

    Product Name

    SenseLink, SenseLink GE

    2.0.0

    coreEdition

    String

    core Edition

    None

    2.0.0

    appEdition

    String

    Show app Edition

    None

    2.0.0

    name

    String

    Pass Time Table Name

    None

    2.0.0

    groupId

    int

    Pass Group ID

    None

    2.0.0

    monday

    String

    Monday 24h Access Strategy

    None

    2.0.0

    mondayPeriod

    String

    Monday Pass Time Period

    None

    2.0.0

    tuesday

    String

    Tuesday 24h Access Strategy

    None

    2.0.0

    tuesdayPeriod

    String

    Tuesday Pass Time Period

    None

    2.0.0

    wednesday

    String

    Wednesday 24h Access Strategy

    None

    2.0.0

    wednesdayPeriod

    String

    Wednesday Pass Time Period

    None

    2.0.0

    thursday

    String

    Thursday 24h Access Strategy

    None

    2.0.0

    thursdayPeriod

    String

    Thursday Pass Time Period

    None

    2.0.0

    friday

    String

    Friday 24h Access Strategy

    None

    2.0.0

    fridayPeriod

    String

    Friday Pass Time Period

    None

    2.0.0

    saturday

    String

    Saturday 24h Access Strategy

    None

    2.0.0

    saturdayPeriod

    String

    Saturday Pass Time Period

    None

    2.0.0

    sunday

    String

    Sunday 24h Access Strategy

    None

    2.0.0

    sundayPeriod

    String

    Sunday Pass Time Period

    None

    2.0.0

    holiday

    String

    Holiday 24h Access Strategy

    None

    2.0.0

    holidayPeriod

    String

    Holiday Pass Time Period

    None

    2.0.0

    startTimestamp

    long

    Start Timestamp

    millisecond precision

    2.0.0

    endTimestamp

    long

    End Timestamp

    millisecond precision

    2.0.0

    specialDayList

    List<SpecialDay>

    Special Date

    None

    2.0.0

    remark

    String

    Note

    None

    2.0.0

    idNumber

    String

    ID Number

    None

    2.0.0

    userId

    int

    User ID

    None

    2.0.0

    userImage

    Content

    User Library Image

    None

    2.0.0

    userCardId

    String

    User Door Access Card ID

    None

    2.0.0

    userName

    String

    User Name

    None

    2.0.0

    entryStatus

    int

    Status code

    1-Pass; 2-QR code illegal; 3-QR code decryption failed; 4-QR code content error; 5-QR code invalid; 6-QR code is not within the validity period; 7-QR code has no passes; 8-The user corresponding to the QR code is invalid

    2.0.0

    sign

    String

    md5

    The md5 Value of {entryStatus}-{timestamp}-{ldid}-{userId}-{passRuleType}

    2.0.0

    type

    int

    User Type

    1:Staff; 2:Guest;3:Stranger; 4:Non-liveness; 5-denyList

    2.0.0

    timestamp

    long

    Timestamp Uploaded by the Client

    None

    2.0.0

    passRuleType

    int

    Pass Rule Type

    None

    2.0.0

    None

    2.0.0

    Y

    companyId

    int

    Company ID

    None

    2.0.0

    defaultGuestGroupId

    int

    default User Group ID

    None

    2.0.0

    threshold

    int

    Face Detection Threshold

    None

    2.0.0

    newDeviceKey

    boolean

    New Device

    None

    2.0.0

    token

    String

    Token

    None

    2.0.0

    deviceTypeMaxOnline

    DeviceTypeMaxOnline

    Maximum online device information

    None

    2.0.0

    accountId

    int

    Account ID

    None

    2.0.0

    name

    String

    Name

    None

    2.0.0

    userRspVO

    UserRspVO

    User Info

    None

    2.0.0

    company

    Company

    Company Info

    None

    2.0.0

    lang

    String

    Language

    None

    2.0.0

    device

    Device

    Device Info

    None

    2.0.0

    account

    String

    Account Name

    None

    2.0.0

    entryTime

    String

    entry Time

    None

    2.0.0

    idNumber

    String

    ID Number

    None

    2.0.0

    mail

    String

    Mail

    None

    2.0.0

    areaCode

    String

    Place Code

    None

    2.0.0

    phoneSuffix

    String

    Mobile Number Suffix

    None

    2.0.0

    mobile

    String

    Mobile Number

    None

    2.0.0

    groups

    List<GroupsItem>

    User Group ID

    None

    2.0.0

    remark

    String

    Note

    None

    2.0.0

    avatar

    String

    Avatar ID

    None

    2.0.0

    avatarShow

    String

    Art Photo ID

    None

    2.0.0

    countryCode

    String

    Country Code

    None

    2.0.0

    name

    String

    Name

    None

    2.0.0

    departmentRoute

    List<DepartmentRouteItem>

    Department

    None

    2.0.0

    location

    String

    Location

    None

    2.0.0

    id

    Integer

    User ID

    None

    2.0.0

    jobNumber

    String

    Job Number

    None

    2.0.0

    placeCode

    String

    Area Code

    None

    2.0.0

    position

    String

    Position

    None

    2.0.0

    department

    Integer

    Department ID

    None

    2.0.0

    type

    int

    Department Type

    None

    2.0.0

    typeId

    int

    Device Type

    None

    2.0.0

    name

    String

    Device Name

    None

    2.0.0

    updateAt

    String

    Update Time

    None

    2.0.0

    description

    String

    Description

    None

    2.0.0

    location

    String

    Device Location

    None

    2.0.0

    id

    int

    Device ID

    None

    2.0.0

    softwareVersion

    String

    Device Software Version

    None

    2.0.0

    createAt

    String

    Create Time

    None

    2.0.0

    direction

    int

    Device In and Out Direction

    None

    2.0.0

    info

    String

    Info

    None

    2.0.0

    content

    String

    Remark

    None

    2.0.0

    typeId

    int

    Device TypeID

    None

    2.0.0

    name

    String

    Device Name

    None

    2.0.0

    updateAt

    String

    Update Time

    None

    2.0.0

    description

    String

    Device Description

    None

    2.0.0

    location

    String

    Device Location

    None

    2.0.0

    id

    int

    Device ID

    None

    2.0.0

    softwareVersion

    String

    Device Software Version

    None

    2.0.0

    createAt

    String

    Create Time

    None

    2.0.0

    direction

    int

    Device In and Out Direction

    None

    2.0.0

    info

    String

    Device Info

    None

    2.0.0

    0-Default, 1-In, 2-Out

    2.0.0

    Y

    location

    String

    Device Location Description

    None

    2.0.0

    N

    description

    String

    Device Description

    None

    2.0.0

    N

    softwareVersion

    String

    Software Version

    None

    2.0.0

    N

    info

    String

    Other Info

    None

    2.0.0

    N

    totalUserCount

    int

    Total User Count

    None

    2.0.0

    None

    2.0.0

    Y

    totalUserCount

    int

    Total User Count

    None

    2.0.0

    Y

    action

    int

    Type

    0-Upload the Status of All Device Users, 1-Upload the Status of Abnormal Device Users

    2.0.0

    Y

    1: DoorMagnetismReportEventContent, 2: BluetoothReportEventContent, 3: ThermalImagerReportEventContent

    2.0.0

    Y

    millisecond precision

    2.0.0

    Y

    None

    2.0.0

    N

    signAvatar

    String

    Facial Image

    None

    2.0.0

    N

    signBgAvatar

    String

    Background Image

    None

    2.0.0

    N

    signTime

    long

    Clock Time

    None

    2.0.0

    Y

    type

    int

    Personnel Type

    1:Staff; 2:Guest; 3: Stranger; 4: Non Liveness; 999: Others

    2.0.0

    Y

    abnormalType

    int

    Abnormal Record Type

    0-No; 10001-Person and ID mismatch;10002-Person and Card mismatch;10003-Person and Code mismatch;20001-The guest is not within the validity period; 20002-Not within the passable time range; 30001-Invalid id card; 30002-Invalid IC Card; 30003-Invalid QR Code

    2.0.0

    N

    idNumber

    String

    ID Number

    None

    2.0.0

    N

    icNumber

    String

    work card

    None

    2.0.0

    N

    idInfo

    String

    other information of ID card

    Json String

    2.0.0

    N

    inTime

    int

    Whether uploaded timely

    Yes: 1; No: 0

    2.0.0

    Y

    mode

    int

    Device Mode

    1: Swipe Face or Card; 2: Swipe Face+Card; 3: Swipe Face or ID Card; 4: Swipe Face+ID Card; 5: Swipe Face+ID Card for Appointment; 6: Swipe Face or QR Code; 7: Swipe Face and QR Code; 8: Bluetooth; 9: Face; 10: Face or QR Code or Swipe Card

    2.0.0

    Y

    rectangle

    List<VerticesItem>

    rectangle

    Coordinates of the upper left corner, coordinates of the lower right corner

    2.0.0

    N

    entryMode

    int

    Entry Mode

    1: Swipe Face; 2: QR Code; 3: Swipe Card; 4: Swipe Face+Card; 5: Swipe ID Card; 6: Swipe Face+ID Card; 7: Swipe Face+ID Card for Appointment; 8: Swipe Face and QR Code; 9: Bluetooth

    2.0.0

    N

    pushOption

    int

    Push Record

    1, Yes, 0 No

    2.0.0

    N

    wearMaskType

    int

    Mask Status

    0: No Status (Mask Identification not activated) 1: Without Mask 2: With Mask

    2.0.0

    N

    verifyScore

    float

    Verify Score

    None

    2.0.0

    N

    docPhoto

    String

    ID card photo

    None

    2.0.0

    N

    heatAvatar

    String

    thermodynamic diagram

    None

    2.0.0

    N

    bodyTemperature

    float

    Body Temperatur

    None

    2.0.0

    N

    remark

    String

    Note

    None

    2.0.0

    N

    None

    2.0.0

    Y

    apkVersionCode

    String

    apk Version Code

    None

    2.0.0

    Y

    packageName

    String

    package Name

    None

    2.0.0

    Y

    model

    String

    Model

    None

    2.0.0

    Y

    serialNumber

    String

    Device serial Number

    None

    2.0.0

    Y

    romSoftwareVersion

    String

    ROM Software Version

    None

    2.0.0

    Y

    manufacturer

    String

    manufacturer

    None

    2.0.0

    Y

    userId

    int

    User ID

    None

    2.0.0

    recordId

    int

    Recordid

    None

    2.0.0

    type

    int

    Data Type

    1-In the Library, 2-Stranger, 3-Liveness, 4-Non-liveness

    2.0.0

    height

    int

    Depth Data Height

    None

    2.0.0

    en,zh,zh-tw

    2.0.0

    Y

    event

    MessageEventEnum

    Event

    None

    2.0.0

    captcha

    String

    authentication code

    None

    2.0.0

    None

    2.0.0

    2.0.0

    void disConnectMqtt(IMqttActionListener listener)

    Disconnect MQTT

    2.0.0

    void getUserListInGroup

    (int groupId, MessageCallback callback)

    Get User List In a Group

    2.0.0

    void registerGroupChangeListener

    (MessageCallback callback)

    Register Device and User In Group Change Callback

    2.0.0

    void registerUserInGroupChangeListener

    (int groupId, MessageCallback callback)

    Register User In Group Change Callback

    2.0.0

    void registerWarningAction(MessageCallback callback)

    Register Warning Action Change Callback

    2.0.0

    void registerAccessStrategy

    (MessageCallback callback)

    Register Access Strategy Change Callback

    2.0.0

    void registerUpgrade

    (MessageCallback callback)

    Register APP and ROM Update Callback

    2.0.0

    void registerDeviceStatus

    (MessageCallback callback)

    Register Device Status Change Callback

    2.0.0

    void registerDeviceConfig(MessageCallback callback)

    Register Device Configuration Change Callback

    2.0.0

    void registerDeviceNotify(MessageCallback callback)

    Register Device Server End Notification Push Callback

    2.0.0

    void registerKeepDoorOpenOrCloseSchedule

    (MessageCallback callback)

    Register Device Keep Door Open Or Close Schedule Push Callback

    2.0.0

    void unRegisterGroupChangeListener()

    Unregister Device and User In Group Change Callback

    2.0.0

    void unegisterUserInGroupChangeListener(int groupId)

    Unregister User In Group Change Callback

    2.0.0

    void unegisterGetUserListInGroup(int groupId)

    Unregister User List of a Group

    2.0.0

    void unRegisterWarningAction()

    Unregister Warning Action Change Callback

    2.0.0

    void unRegisterAccessStrategy()

    Unregister Access Strategy Change Callback

    2.0.0

    void unRegisterUpgrade()

    Unregister APP and ROM Update Callback

    2.0.0

    void unRegisterDeviceStatus()

    Unregister Device Status Change Callback

    2.0.0

    void unRegisterDeviceConfig()

    Unregister Device Configuration Change Callback

    2.0.0

    void unRegisterDeviceNotify()

    Unregister Device Server End Notification Push Callback

    2.0.0

    void unRegisterKeepDoorOpenOrCloseSchedule()

    Unregister Device Keep Door Open Or Close Schedule Push Callback

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    listener

    IMqttActionListener

    Callback

    None

    2.0.0

    connectionLost

    IConnectionLost

    Connection Lost Callback

    None

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    listener

    IMqttActionListener

    Callback

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    groupId

    int

    Group ID

    None

    2.0.0

    callback

    MessageCallback

    Callback

    None

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    callback

    MessageCallback

    Callback

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    groupId

    int

    Group ID

    None

    2.0.0

    callback

    MessageCallback

    Callback

    None

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    callback

    MessageCallback

    Callback

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    callback

    MessageCallback

    Callback

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    callback

    MessageCallback

    Callback

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    callback

    MessageCallback

    Callback

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    callback

    MessageCallback

    Callback

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    callback

    MessageCallback

    Callback

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    callback

    MessageCallback

    Callback

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    groupId

    int

    Group ID

    None

    2.0.0

    Parameter Name

    Type

    Description

    Note

    Version Introduced

    groupId

    int

    Group ID

    None

    2.0.0

    Member

    Description

    Note

    Version Introduced

    ZH

    Simplified Chinese

    None

    2.0.0

    ZH_TW

    Traditional Chinese

    None

    2.0.0

    EN

    Member

    Type

    Description

    Note

    Version Introduced

    account

    String

    Account

    None

    2.0.0

    password

    String

    Password

    None

    Member

    Type

    Description

    Note

    Version Introduced

    code

    int

    Status Code

    None

    2.0.0

    data

    T

    Data

    None

    Member Function

    Description

    Note

    Version Introduced

    boolean isSuccess()

    Request Success

    true-success, false-fail

    2.0.0

    Member

    Type

    Description

    Note

    Version Introduced

    is it necessary

    traceId

    String

    Alarm Serial Number

    None

    2.0.0

    Y

    alarmPhoto

    String

    Member

    Type

    Description

    Note

    Version Introduced

    is it necessary

    x

    int

    x Coordinate

    None

    2.0.0

    Y

    y

    int

    Member

    Type

    Description

    Note

    Version Introduced

    id

    long

    Guest id

    None

    2.0.0

    avatar

    String

    Compare Avatar

    None

    Member

    Type

    Description

    Note

    Version Introduced

    id

    int

    Group ID

    None

    2.0.0

    name

    String

    Group Name

    None

    Member

    Type

    Description

    Note

    Version Introduced

    flag

    int

    Flag

    0 Not Exist, 1 Exist

    2.0.0

    Member

    Type

    Description

    Note

    Version Introduced

    flag

    int

    Flag

    0 Not Exist, 1 Exist

    2.0.0

    md5

    String

    File md5

    None

    Member

    Type

    Description

    Note

    Version Introduced

    searchResult

    List<SearchResultItem>

    Search Result

    None

    2.0.0

    gateCtrl

    boolean

    Door Open

    None

    Member

    Type

    Description

    Note

    Version Introduced

    faceCutImage

    Content

    Face Cut Image

    None

    2.0.0

    score

    float

    Verify Score

    None

    Member

    Type

    Description

    Note

    Version Introduced

    data

    String

    Original Image Data

    Choose it or url

    2.0.0

    format

    String

    Image Type

    IMAGE_UNKNOWN, IMAGE_JPEG, IMAGE_PNG, IMAGE_BMP, IMAGE_TIFF, IMAGE_GIF

    Member

    Type

    Description

    Note

    Version Introduced

    Is it necessary

    targetImages

    ImagesItem

    Capture several groups of small pictures

    small picture is not required if a full picture is uploaded

    2.0.0

    N

    extraInfo

    String

    Member

    Type

    Description

    Note

    Version Introduced

    detectionMode

    String

    detection Mode

    DETECT_MODE_AUTO: Automatically select the detection frame according to TargetAnnotation.rectangle and the size of the captured image.DETECT_MODE_BOUNDING_ONLY: Only use TargetAnnotation.rectangle.Rectangle must be passed in, otherwise it is an invalid target.DETECT_MODE_FORCE_DETECTION: Mandatory use of detection model for detection

    2.0.0

    targetInfo

    TargetInfo

    general capture target information structure

    None

    Member

    Type

    Description

    Note

    Version Introduced

    trackId

    int

    Track id

    None

    2.0.0

    angle

    Angle

    Face Angle Info

    None

    Member

    Type

    Description

    Note

    Version Introduced

    roll

    int

    Face roll angle

    None

    2.0.0

    pitch

    int

    Face pitch angle

    None

    Member

    Type

    Description

    Note

    Version Introduced

    vertices

    List<VerticesItem>

    Target rectangular area

    coordinates of the upper left corner, coordinates of the lower right corner

    2.0.0

    Member

    Type

    Description

    Note

    Version Introduced

    x

    int

    x Coordinate

    None

    2.0.0

    y

    int

    y Coordinate

    None

    Member

    Type

    Description

    Note

    Version Introduced

    x

    int

    x Coordinate

    None

    2.0.0

    y

    int

    y Coordinate

    None

    Member

    Type

    Description

    Note

    Version Introduced

    placeName

    String

    Name of the place where the camera is located

    None

    2.0.0

    deviceId

    String

    Camera Hardware id

    None

    Member

    Type

    Description

    Note

    Version Introduced

    updatedAt

    long

    Update Timestamp

    None

    2.0.0

    groupId

    int

    Group ID

    None

    Member

    Type

    Description

    Note

    Version Introduced

    userUpdatedAt

    long

    User Update Time

    None

    2.0.0

    userId

    int

    User ID

    None

    Member

    Type

    Description

    Note

    Version Introduced

    birthday

    String

    Birthday

    None

    2.0.0

    modelVersion

    String

    Model Version

    None

    Member

    Type

    Description

    Note

    Version Introduced

    userIds

    List

    User id Arrays

    Up to 20,000 arrays at a time

    2.0.0

    modelVersion

    String

    Model Version

    None

    Member

    Type

    Description

    Note

    Version Introduced

    id

    String

    Device ID

    None

    2.0.0

    userGroups

    List<GroupsItem>

    User Group

    None

    Member

    Type

    Description

    Note

    Version Introduced

    deviceTypeMaxOnline

    DeviceTypeMaxOnline

    Device Type Max Online

    None

    2.0.0

    ldid

    String

    Device LDID

    None

    Member

    Type

    Description

    Note

    Version Introduced

    companyId

    int

    Device Company ID

    None

    2.0.0

    serviceConfig

    List<ServiceConfigItem>

    Server Configuration

    None

    Member

    Type

    Description

    Note

    Version Introduced

    name

    String

    Device Name

    None

    2.0.0

    options

    List<Options>

    Customized Options

    None

    Member

    Type

    Description

    Note

    Version Introduced

    text

    String

    Text String

    None

    2.0.0

    value

    String

    Corresponding Content

    None

    Member

    Type

    Description

    Note

    Version Introduced

    guestGroupId

    int

    Guest Group ID

    None

    2.0.0

    validFrom

    String

    Valid From

    None

    Member

    Type

    Description

    Note

    Version Introduced

    empoent

    String

    e1

    None

    2.0.0

    module

    String

    Product of prime numbers

    None

    Member

    Type

    Description

    Note

    Version Introduced

    birthday

    String

    Birthday

    None

    2.0.0

    icNumber

    String

    IC Care Number

    None

    Member

    Type

    Description

    Note

    Version Introduced

    name

    String

    Department Name

    None

    2.0.0

    id

    int

    Department ID

    None

    Member

    Type

    Description

    Note

    Version Introduced

    date

    String

    Date

    for example 20190815

    2.0.0

    edition

    String

    Edition

    for example 1.11.0.2

    Member

    Type

    Description

    Note

    Version Introduced

    id

    long

    Access Strategy ID

    None

    2.0.0

    ruleId

    long

    Rule ID

    None

    Member

    Type

    Description

    Note

    Version Introduced

    id

    long

    Special Date Id

    None

    2.0.0

    date

    String

    Date

    None

    Member

    Type

    Description

    Note

    Version Introduced

    entryTimeLeft

    int

    Number of Passes Remaining

    None

    2.0.0

    entryHint

    String

    Entry Hint

    None

    Member

    Type

    Description

    Note

    Version Introduced

    Is it necessary

    content

    String

    QR Code Content

    None

    2.0.0

    Y

    timestamp

    long

    Member

    Type

    Description

    Note

    Version Introduced

    defaultUserGroupId

    int

    default User Group ID

    None

    2.0.0

    role

    int

    Role

    None

    Member

    Type

    Description

    Note

    Version Introduced

    birthday

    String

    Birthday

    None

    2.0.0

    icNumber

    String

    IC Number

    None

    Member

    Type

    Description

    Note

    Version Introduced

    name

    String

    Department Name

    None

    2.0.0

    id

    int

    Department ID

    None

    Member

    Type

    Description

    Note

    Version Introduced

    ldid

    String

    Device UDID

    None

    2.0.0

    companyId

    int

    Device Compay ID

    None

    Member

    Type

    Description

    Note

    Version Introduced

    recordId

    String

    identification record id

    None

    2.0.0

    type

    int

    Misrecognition Type

    1 Other person, 2 Stranger, 3 Non-liveness, 4 Stranger Break, 5 Non-liveness Break

    Member

    Type

    Description

    Note

    Version Introduced

    ldid

    String

    Device LDID

    None

    2.0.0

    companyId

    int

    Device Compay ID

    None

    Member

    Type

    Description

    Note

    Version Introduced

    Is it necessary

    name

    String

    Device Name

    None

    2.0.0

    Y

    direction

    int

    Member

    Type

    Description

    Note

    Version Introduced

    exceptionList

    List<ExceptionListItem>

    Exception List

    None

    2.0.0

    verifyModelVersion

    String

    Verify Model Version

    None

    Member

    Type

    Description

    Note

    Version Introduced

    code

    int

    Status Code

    None

    2.0.0

    userId

    int

    User ID

    None

    Member

    Type

    Description

    Note

    Version Introduced

    Is it necessary

    statusList

    List<UserStatusListItem>

    User Status List

    None

    2.0.0

    Y

    verifyModelVersion

    String

    Member

    Type

    Description

    Note

    Version Introduced

    status

    int

    Status Code

    1-Synchronizing, 2-Features Normal, 3-Image download failed, 4-Image parsing failed, 5-Feature extraction failed

    2.0.0

    userIds

    int[]

    User ID Arrays

    None

    Member

    Type

    Description

    Note

    Version Introduced

    Is it necessary

    type

    int

    Event Type

    1-Door Magnetism Event; 2-Bluetooth power; 3-Thermal Imager Status

    2.0.0

    Y

    content

    BaseDeviceReportEventContent

    Member

    Type

    Description

    Note

    Version Introduced

    Is it necessary

    status

    int

    Event Status

    1-ON, 2-OFF, 3-No

    2.0.0

    Y

    timestamp

    long

    Member

    Type

    Description

    Note

    Version Introduced

    Is it necessary

    power

    int

    Power Remained

    0-100

    2.0.0

    Y

    Member

    Type

    Description

    Note

    Version Introduced

    Is it necessary

    status

    int

    Event Status

    0-Unknown, 1-Connected, 2-Unconnected

    2.0.0

    Y

    Member

    Type

    Description

    Note

    Version Introduced

    recordId

    String

    RecordID

    None

    2.0.0

    Member

    Type

    Description

    Note

    Version Introduced

    Is it necessary

    userId

    int

    User ID

    None

    2.0.0

    N

    username

    String

    Member

    Type

    Description

    Note

    Version Introduced

    Is it necessary

    apkVersionName

    String

    apk Version Name

    None

    2.0.0

    Y

    romHardwareVersion

    String

    Member

    Type

    Description

    Note

    Version Introduced

    images

    List<ImagesItem>

    Data

    None

    2.0.0

    depth

    Depth

    Depth Data

    None

    Member

    Type

    Description

    Note

    Version Introduced

    data

    String

    Depth Data Content

    None

    2.0.0

    width

    int

    Depth Data Width

    None

    Member

    Type

    Description

    Note

    Version Introduced

    Is it necessary

    content

    String

    Tsl json String

    None

    2.0.0

    Y

    Member

    Type

    Description

    Note

    Version Introduced

    Is it necessary

    content

    String

    Language Package Content

    None

    2.0.0

    Y

    lang

    String

    Member

    Type

    Description

    Note

    Version Introduced

    mobile

    String

    Mobile Number

    None

    2.0.0

    areaCode

    String

    Area Code

    None

    Member

    Description

    Note

    Version Introduced

    LOGIN

    Login

    None

    2.0.0

    CHANGE_INFO

    Change Info

    None

    2.0.0

    VALIDATE

    Member Function

    Description

    Note

    Version Introduced

    void onConnectionLost(Throwable cause)

    Callback on Connection Lost

    None

    2.0.0

    Member Function

    Description

    Note

    Version Introduced

    void success(MqttMessage msg)

    Callback on Receiving Message

    None

    2.0.0

    void error(int code, String msg, Throwable throwable)

    Callback on Failure

    None

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    English

    2.0.0

    2.0.0

    Alarm Photo

    y Coordinate

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    Extra String

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    Timestamp

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    Device Direction

    2.0.0

    2.0.0

    Verify Model Version

    2.0.0

    content corresponding to the event

    Event Time

    User Name

    ROM Hardware Version

    2.0.0

    2.0.0

    Language

    2.0.0

    Validate

    MqttApiClient

    MQTTインターフェースの実装

    MqttApiClient

    メンバー関数

    説明

    導入バージョン

    void connectMqtt(IMqttActionListener listener, IConnectionLost connectionLost, boolean useTokenConnect, SocketFactory socketFactory)

    MQTT接続

    2.0.0

    メンバー関数の説明

    void connectMqtt(IMqttActionListener listener, IConnectionLost connectionLost, boolean useTokenConnect, SocketFactory socketFactory)

    MQTT接続

    パラメータ

    戻り値

    なし

    例外

    なし

    void disConnectMqtt(IMqttActionListener listener)

    MQTT接続を切断

    パラメータ

    戻り値

    なし

    例外

    なし

    void getUserListInGroup(int groupId, MessageCallback callback)

    あるグループでの登録者リストを取得

    パラメータ

    戻り値

    なし

    例外

    なし

    void registerGroupChangeListener(MessageCallback callback)

    デバイスと登録者グループの変更コールバックを登録

    パラメータ

    戻り値

    なし

    例外

    なし

    void registerUserInGroupChangeListener(int groupId, MessageCallback callback)

    登録者グループの登録者変更コールバックを登録

    パラメータ

    戻り値

    なし

    例外

    なし

    void registerWarningAction(MessageCallback callback)

    アラートステータス変更コールバックを登録

    パラメータ

    戻り値

    なし

    例外

    なし

    void registerAccessStrategy(MessageCallback callback)

    アクセスルール変更コールバックを登録

    パラメータ

    戻り値

    なし

    例外

    なし

    void registerUpgrade(MessageCallback callback)

    APPとROMアップデートコールバックを登録

    パラメータ

    戻り値

    なし

    例外

    なし

    void registerDeviceStatus(MessageCallback callback)

    デバイスステータスコールバックを登録

    パラメータ

    戻り値

    なし

    例外

    なし

    void registerDeviceConfig(MessageCallback callback)

    デバイス構成変更コールバックを登録

    パラメータ

    戻り値

    なし

    例外

    なし

    void registerDeviceNotify(MessageCallback callback)

    デバイスサーバエンドの通知配信構コールバックを登録

    パラメータ

    戻り値

    なし

    例外

    なし

    void registerKeepDoorOpenOrCloseSchedule(MessageCallback callback)

    デバイスのドア常時開/閉タイムテーブルの配信コールバックを登録

    パラメータ

    戻り値

    なし

    例外

    なし

    void unRegisterGroupChangeListener()

    デバイスと登録者グループの変更コールバックの登録を取り消す

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void unegisterUserInGroupChangeListener(int groupId)

    登録者グループの登録者変更コールバックの登録を取り消す

    パラメータ

    戻り値

    なし

    例外

    なし

    void unegisterGetUserListInGroup(int groupId)

    あるグループでの登録者リストの登録を取り消す

    パラメータ

    戻り値

    なし

    例外

    なし

    void unRegisterWarningAction()

    アラートステータス変更コールバックの登録を取り消す

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void unRegisterAccessStrategy()

    アクセスルール変更コールバックの登録を取り消す

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void unRegisterUpgrade()

    APPとROMアップデートコールバックの登録を取り消す

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void unRegisterDeviceStatus()

    デバイスステータスコールバックの登録を取り消す

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void unRegisterDeviceConfig()

    デバイス構成変更コールバックの登録を取り消す

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void unRegisterDeviceNotify()

    デバイスサーバエンドの通知配信構コールバック登録を取り消す

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    void unRegisterKeepDoorOpenOrCloseSchedule()

    デバイスのドア常時開/閉タイムテーブルの配信コールバック登録を取り消す

    パラメータ

    なし

    戻り値

    なし

    例外

    なし

    エンティティの説明

    LanguageTypeEnum

    プロパティの説明

    ConnectConfigEntity

    プロパティの説明

    Result

    プロパティの説明

    メソッドの説明

    AlarmReportParameter

    プロパティの説明

    VerticesItem

    プロパティの説明

    GuestDetailInfo

    プロパティの説明

    GroupsItem

    プロパティの説明

    TslCheckExistResult

    プロパティの説明

    TslLanguageCheckExistResult

    プロパティの説明

    FaceSearchResult

    プロパティの説明

    SearchResultItem

    プロパティの説明

    Content

    プロパティの説明

    FaceSearchParameter

    プロパティの説明

    ImagesItem

    プロパティの説明

    TargetInfo

    プロパティの説明

    Angle

    プロパティの説明

    Rectangle

    プロパティの説明

    VerticesItem

    プロパティの説明

    LandmarksItem

    プロパティの説明

    CameraInfo

    プロパティの説明

    GroupIndex

    プロパティの説明

    UserIndex

    プロパティの説明

    UserInfoResult

    プロパティの説明

    UserInfoParameter

    プロパティの説明

    DeviceGroups

    プロパティの説明

    DeviceDetailInfo

    プロパティの説明

    DeviceTypeMaxOnline

    プロパティの説明

    ServiceConfigItem

    プロパティの説明

    Options

    プロパティの説明

    Company

    プロパティの説明

    RsaResult

    プロパティの説明

    UserDetailInfo

    プロパティの説明

    DeptItem

    プロパティの説明

    ServerVersion

    プロパティの説明

    TimeTable

    プロパティの説明

    SpecialDay

    プロパティの説明

    QRResult

    プロパティの説明

    IdentifyQRCodeParameter

    プロパティの説明

    LoginResult

    プロパティの説明

    UserRspVO

    プロパティの説明

    DepartmentRouteItem

    プロパティの説明

    Device

    プロパティの説明

    MisrecognitionRecordParameter

    プロパティの説明

    RegisterResult

    プロパティの説明

    RegisterParameter

    プロパティの説明

    UserStatusParameter

    プロパティの説明

    ExceptionListItem

    プロパティの説明

    UserSyncStatusParameter

    プロパティの説明

    UserStatusListItem

    プロパティの説明

    DeviceReportEventParamer

    プロパティの説明

    DoorMagnetismReportEventContent

    プロパティの説明

    BluetoothReportEventContent

    プロパティの説明

    ThermalImagerReportEventContent

    プロパティの説明

    RecordResult

    プロパティの説明

    RecordParameter

    プロパティの説明

    DeviceVersionInfoParameter

    プロパティの説明

    IdentifyDataParameter

    プロパティの説明

    Depth

    プロパティの説明

    TslUploadParameter

    プロパティの説明

    TslLanguageUploadParameter

    プロパティの説明

    MessageParameter

    プロパティの説明

    MessageEventEnum

    プロパティの説明

    IConnectionLost

    メソッドの説明

    MessageCallback

    メソッドの説明

    useTokenConnect

    boolean

    トークンの方法で接続するかを判定

    なし

    2.0.0

    socketFactory

    SocketFactory

    https構築するための検証方法

    デフォルトとして証明書を検証しない

    2.0.0

    なし

    2.0.0

    JP

    日本語

    なし

    2.0.0

    KO

    韓国語

    なし

    2.0.0

    identifier

    String

    デバイス識別子

    なし

    2.0.0

    duid

    String

    デバイスSN

    なし

    2.0.0

    token

    String

    デバイストークン

    なし

    2.0.0

    ldid

    String

    デバイスバックグラウンドの識別番号

    なし

    2.0.0

    companyId

    int

    企業ID

    なし

    2.0.0

    isNewDevice

    boolean

    新規デバイスかを判定

    なし

    2.0.0

    message

    String

    メッセージ

    なし

    2.0.0

    desc

    String

    説明

    なし

    2.0.0

    originData

    String

    オリジナルデータ

    なし

    2.0.0

    rawData

    byte[]

    バイナリーデータ

    なし

    2.0.0

    なし

    2.0.0

    N

    code

    int

    アラートコード

    10001:解体盗難アラート

    10002:ドア強行突破のアラート

    10003:ドアマグネットのタイムオーバーアラート

    10004:パスワード攻撃アラート 10005:Bluetooth電力不足 10006:サーマグラフィー接続以上

    20001:カメラの汚れを意味

    20002:非生体攻撃 20003:消防アラート

    40001:フィーチャー抽出失敗

    2.0.0

    パラメータ"status"が1の場合、パラメータ"code"は必須。 そうでない場合は必須ではない

    description

    String

    アラート説明

    なし

    2.0.0

    N

    eventTime

    Long

    イベント時間

    ミリ秒

    2.0.0

    Y

    status

    int

    アラートレポートイベント

    1:アラートがあります 2:アラート解除失敗 3:アラート解除成功

    2.0.0

    Y

    rectangle

    List<VerticesItem>

    顔枠の座標

    1つ目は左上の座標

    2つ目は右下の座標

    2.0.0

    N

    userId

    long

    ユーザーID

    なし

    2.0.0

    N

    なし

    2.0.0

    Y

    showAvatar

    String

    アバター表示

    なし

    2.0.0

    name

    String

    氏名

    なし

    2.0.0

    groups

    List<GroupsItem>

    グループ

    なし

    2.0.0

    mobile

    String

    連絡先

    なし

    2.0.0

    guestCompany

    String

    ビジター企業

    なし

    2.0.0

    birthday

    String

    誕生日

    なし

    2.0.0

    position

    String

    役職

    なし

    2.0.0

    idNumber

    String

    IDナンバー

    なし

    2.0.0

    icNumber

    String

    ICカードナンバー

    なし

    2.0.0

    mail

    String

    メールアドレス

    なし

    2.0.0

    guestPurpose

    String

    来訪目的

    なし

    2.0.0

    receptionUserId

    long

    受付担当者ユーザーID

    なし

    2.0.0

    receptionUserName

    String

    受付担当者ユーザー名

    なし

    2.0.0

    dateTimeFrom

    String

    来訪有効の開始時間

    なし

    2.0.0

    dateTimeTo

    String

    来訪有効の終了時間

    なし

    2.0.0

    level

    int

    レベル

    なし

    2.0.0

    remark

    String

    特記事項

    なし

    2.0.0

    type

    int

    グループタイプ

    1:登録者グループ

    2:ビジターグループ

    5:拒否リストグループ

    2.0.0

    personCount

    int

    人数

    なし

    2.0.0

    timestamp

    long

    クライアントがリクエストした際のアップロードタイムスタンプ

    なし

    2.0.0

    passRuleType

    int

    アクセスルールのタイプ

    0: ローカルアクセスルール

    1: サーバでのアクセスルール

    2.0.0

    sign

    String

    md5

    The md5 Value of {timestamp}-{ldid}-{gateCtrl}-{passRuleType}

    2.0.0

    userId

    int

    ユーザーID

    なし

    2.0.0

    userCardId

    String

    ユーザーのドアアクセスカードID

    なし

    2.0.0

    userImage

    Content

    ユーザーライブラリ画像

    なし

    2.0.0

    trackId

    int

    顔追跡id

    なし

    2.0.0

    userName

    String

    ユーザー名

    なし

    2.0.0

    displayMsg

    String

    表示メッセージ

    なし

    2.0.0

    displayColor

    String

    表示カラー

    なし

    2.0.0

    verifyCode

    int

    認証ステータスコード

    1:未認証

    2:認証済み

    3:権限なし

    4:マッチング失敗

    5:アクセスタイムテーブル時間外

    2.0.0

    type

    int

    タイプ

    なし

    2.0.0

    idNumber

    String

    IDナンバー

    なし

    2.0.0

    sign

    String

    md5

    the md5 Value of {verifyCode}-{timestamp}-{ldid}-{userId}

    2.0.0

    extra

    String

    拡張フィールドString

    なし

    2.0.0

    url

    String

    図のurl

    このurlかdataを選択

    2.0.0

    なし

    2.0.0

    N

    receiveTime

    long

    タイムスタンプを受信

    ミリ秒

    2.0.0

    N

    fullImage

    Content

    フルサイズ画像

    小さい画像スナップショットをアップロードすれば、フルサイズの画像は不要

    2.0.0

    Y

    captureTime

    long

    スナップショットのタイプスタンプ

    ミリ秒

    2.0.0

    N

    cameraInfo

    CameraInfo

    カメラの共通情報

    なし

    2.0.0

    N

    timestamp

    long

    タイムスタンプ

    ミリ秒

    2.0.0

    N

    content

    Content

    画像コンテンツ

    なし

    2.0.0

    imageType

    int

    画像タイプ

    1:RGB図

    2:IR図

    2.0.0

    mask

    int

    マスクをつけるかどうか

    0:未受渡し

    1:未着用

    2:着用済

    2.0.0

    bodyTemperature

    float

    温度

    なし

    2.0.0

    rectangle

    Rectangle

    顔枠

    なし

    2.0.0

    landmarks

    List<LandmarksItem>

    オブジェクトのキーポイント座標

    なし

    2.0.0

    quality

    float

    ターゲットの検知品質

    [0.0, 1.0]

    2.0.0

    yaw

    int

    顔の回る角度

    なし

    2.0.0

    tollgateId

    String

    カメラが所在するトールゲートID

    なし

    2.0.0

    tollgateName

    String

    カメラが所在するトールゲート名

    なし

    2.0.0

    cameraId

    String

    カメラID

    なし

    2.0.0

    deviceType

    String

    カメラのハードウェアタイプ

    なし

    2.0.0

    placeCode

    String

    カメラが所在するエリアのコード

    なし

    2.0.0

    groupName

    String

    グループ名

    なし

    2.0.0

    createdAt

    long

    生成したタイムスタンプ

    なし

    2.0.0

    mail

    String

    メールアドレス

    なし

    2.0.0

    gender

    int

    性別

    0:不明

    1:女性

    2:男性

    userName

    String

    ユーザー名

    なし

    2.0.0

    phoneSuffix

    String

    携帯番号サフィックス

    なし

    2.0.0

    createdAt

    long

    生成のタイムスタンプ

    なし

    2.0.0

    remark

    String

    特記事項

    なし

    2.0.0

    addChannel

    int

    追加チャネル

    1:Web

    2:SenseID

    3:QR コード

    4:OpenAPI

    5: SenseHi App改変

    6:バッチ処理ツール

    type

    int

    ユーザータイプ

    1:登録者

    2:ビジター

    3:拒否リスト

    avatarShow

    String

    アート写真ID

    なし

    2.0.0

    dateTimeTo

    long

    終了タイムスタンプ

    なし

    2.0.0

    guestCompany

    String

    ビジター企業

    なし

    2.0.0

    guestLevel

    String

    ビジターレベル

    なし

    2.0.0

    feature

    String

    顔フィーチャー

    なし

    2.0.0

    updatedAt

    long

    更新タイムスタンプ

    なし

    2.0.0

    jobNumber

    String

    従業員番号

    なし

    2.0.0

    icNumber

    String

    ICカードナンバー

    なし

    2.0.0

    dateTimeFrom

    long

    開始タイムスタンプ

    なし

    2.0.0

    entryTime

    long

    アクセス時間

    なし

    2.0.0

    idNumber

    String

    IDナンバー

    なし

    2.0.0

    companyId

    int

    ユーザー企業ID

    なし

    2.0.0

    departmentId

    int

    ユーザー部署ID

    なし

    2.0.0

    departmentName

    String

    部署名

    なし

    2.0.0

    areaCode

    String

    エリアコード

    なし

    2.0.0

    mobile

    String

    携帯番号

    なし

    2.0.0

    permission

    int

    アクセス許可

    0:許可

    1:不許可

    2.0.0

    receptionUserId

    int

    ビジター受付のユーザーid

    なし

    2.0.0

    avatar

    String

    アバターID

    なし

    2.0.0

    countryCode

    String

    国・地域コード

    なし

    2.0.0

    staffType

    int

    スタッフタイプ

    1:従業員

    2:インターン

    2.0.0

    userId

    int

    ユーザーID

    なし

    2.0.0

    guestPurpose

    String

    来訪目的

    なし

    2.0.0

    location

    String

    場所

    なし

    2.0.0

    position

    String

    役職

    なし

    2.0.0

    placeCode

    String

    地域コード

    なし

    2.0.0

    prompt

    String

    カスタマイズメッセージ

    なし

    2.0.0

    guestGroups

    List<GroupsItem>

    ビジターグループ

    なし

    2.0.0

    denyListGroup

    List<GroupsItem>

    拒否リストグループ

    なし

    2.0.0

    typeName

    String

    デバイスタイプ名

    なし

    2.0.0

    userGroup

    List<GroupsItem>

    ユーザーグループ

    なし

    2.0.0

    guestGroup

    List<GroupsItem>

    ビジターグループ

    なし

    2.0.0

    typeId

    int

    デバイスタイプID

    なし

    2.0.0

    name

    String

    デバイス名

    なし

    2.0.0

    説明

    String

    デバイス説明情報

    なし

    2.0.0

    location

    String

    デバイスロケーション

    なし

    2.0.0

    id

    int

    デバイスID

    なし

    2.0.0

    state

    int

    デバイス状態

    0:オフライン

    1:オンライン

    2.0.0

    direction

    int

    デバイスのInとOut方向

    0:デフォルト

    1:In

    2:Out

    2.0.0

    typeId

    int

    デイバイスの所属するタイプID

    なし

    2.0.0

    maxOnlineNum

    int

    デバイスの同時オンライン最大数

    なし

    2.0.0

    id

    String

    デバイスID

    なし

    2.0.0

    createBy

    String

    作成者ID

    なし

    2.0.0

    background

    String

    背景

    なし

    2.0.0

    contact

    String

    連絡者

    なし

    2.0.0

    validTo

    String

    有効終了時間

    なし

    2.0.0

    name

    String

    企業名

    なし

    2.0.0

    updateAt

    String

    更新時間

    なし

    2.0.0

    logo

    String

    企業ロゴ

    なし

    2.0.0

    id

    int

    企業ID

    なし

    2.0.0

    createAt

    String

    作成時間

    なし

    2.0.0

    welcome

    String

    挨拶メッセージ

    なし

    2.0.0

    introduction

    String

    企業案内

    なし

    2.0.0

    userGroupId

    int

    ユーザーグループID

    なし

    2.0.0

    rsaId

    String

    Key ID

    なし

    2.0.0

    entryTime

    String

    アクセス時間

    なし

    2.0.0

    idNumber

    String

    IDナンバー

    なし

    2.0.0

    mail

    String

    メールアドレス

    なし

    2.0.0

    areaCode

    String

    地域コード

    なし

    2.0.0

    phoneSuffix

    String

    携帯番号サフィックス

    なし

    2.0.0

    mobile

    String

    携帯番号

    なし

    2.0.0

    groups

    List<GroupsItem>

    グループ情報

    なし

    2.0.0

    remark

    String

    特記事項

    なし

    2.0.0

    avatar

    String

    アバターID

    なし

    2.0.0

    avatarShow

    String

    アート写真ID

    なし

    2.0.0

    countryCode

    String

    国・地域コード

    なし

    2.0.0

    name

    String

    ユーザー名

    なし

    2.0.0

    location

    String

    場所

    なし

    2.0.0

    departmentRoute

    List<DeptItem>

    部署

    なし

    2.0.0

    id

    long

    ユーザーID

    なし

    2.0.0

    position

    String

    役職

    なし

    2.0.0

    jobNumber

    String

    従業員番号

    なし

    2.0.0

    placeCode

    String

    場所コード

    なし

    2.0.0

    department

    int

    部署ID

    なし

    2.0.0

    prompt

    String

    カスタムメッセージ

    なし

    2.0.0

    type

    int

    部署タイプ

    なし

    2.0.0

    provider

    String

    プロバイダー

    ST-BI, ST-JCV

    2.0.0

    product

    String

    プロダクト名

    SenseLink, SenseLink GE

    2.0.0

    coreEdition

    String

    coreバージョン

    なし

    2.0.0

    appEdition

    String

    アプリで表示するバージョン番号

    なし

    2.0.0

    name

    String

    アクセスタイムテーブル名

    なし

    2.0.0

    groupId

    int

    アクセスグループID

    なし

    2.0.0

    monday

    String

    月曜日24hアクセスルール

    なし

    2.0.0

    mondayPeriod

    String

    月曜日アクセスタイムテーブル

    なし

    2.0.0

    tuesday

    String

    火曜日24hアクセスルール

    なし

    2.0.0

    tuesdayPeriod

    String

    火曜日アクセスタイムテーブル

    なし

    2.0.0

    wednesday

    String

    水曜日24hアクセスルール

    なし

    2.0.0

    wednesdayPeriod

    String

    水曜日アクセスタイムテーブル

    なし

    2.0.0

    thursday

    String

    木曜日24hアクセスルール

    なし

    2.0.0

    thursdayPeriod

    String

    木曜日アクセスタイムテーブル

    なし

    2.0.0

    friday

    String

    金曜日24hアクセスルール

    なし

    2.0.0

    fridayPeriod

    String

    金曜日アクセスタイムテーブル

    なし

    2.0.0

    saturday

    String

    土曜日24hアクセスルール

    なし

    2.0.0

    saturdayPeriod

    String

    土曜日アクセスタイムテーブル

    なし

    2.0.0

    sunday

    String

    日曜日24hアクセスルール

    なし

    2.0.0

    sundayPeriod

    String

    日曜日アクセスタイムテーブル

    なし

    2.0.0

    holiday

    String

    休日24hアクセスルール

    なし

    2.0.0

    holidayPeriod

    String

    休日アクセスタイムテーブル

    なし

    2.0.0

    startTimestamp

    long

    開始タイムスタンプ

    ミリ秒

    2.0.0

    endTimestamp

    long

    終了タイムスタンプ

    ミリ秒

    2.0.0

    specialDayList

    List<SpecialDay>

    特別日

    なし

    2.0.0

    remark

    String

    特記事項

    なし

    2.0.0

    idNumber

    String

    IDナンバー

    なし

    2.0.0

    userId

    int

    ユーザーID

    なし

    2.0.0

    userImage

    Content

    ユーザーライブライ写真

    なし

    2.0.0

    userCardId

    String

    ユーザーのドアアクセスカードID

    なし

    2.0.0

    userName

    String

    ユーザー名

    なし

    2.0.0

    entryStatus

    int

    ステータスコード

    1:通過

    2:QRコード不正

    3:QRコード解析失敗

    4:QRコードコンテンツエラー

    5:QRコード無効

    6:QRコードが有効期間外

    7:QRコードに通行回数なし

    8:QRコードが対応する人物が無効

    2.0.0

    sign

    String

    md5

    The md5 Value of {entryStatus}-{timestamp}-{ldid}-{userId}-{passRuleType}

    2.0.0

    type

    int

    ユーザータイプ

    1:登録者

    2:ビジター

    3:未登録者

    4:非生体

    5:拒否リスト

    2.0.0

    timestamp

    long

    クライアントがアップロードするタイムスタンプ

    なし

    2.0.0

    passRuleType

    int

    アクセスルールコントロールのタイプ

    なし

    2.0.0

    なし

    2.0.0

    Y

    companyId

    int

    企業ID

    なし

    2.0.0

    defaultGuestGroupId

    int

    デフォルトユーザーグループID

    なし

    2.0.0

    threshold

    int

    顔検知しきい値

    なし

    2.0.0

    newDeviceKey

    boolean

    新規デバイス

    なし

    2.0.0

    token

    String

    トークン

    なし

    2.0.0

    deviceTypeMaxOnline

    DeviceTypeMaxOnline

    最大のオンラインデバイス情報

    なし

    2.0.0

    accountId

    int

    アカウントID

    なし

    2.0.0

    name

    String

    氏名

    なし

    2.0.0

    userRspVO

    UserRspVO

    ユーザー情報

    なし

    2.0.0

    company

    Company

    企業情報

    なし

    2.0.0

    lang

    String

    言語

    なし

    2.0.0

    device

    Device

    デバイス情報

    なし

    2.0.0

    account

    String

    アカウント名

    なし

    2.0.0

    entryTime

    String

    入社日

    なし

    2.0.0

    idNumber

    String

    IDナンバー

    なし

    2.0.0

    mail

    String

    メールアドレス

    なし

    2.0.0

    areaCode

    String

    場所コード

    なし

    2.0.0

    phoneSuffix

    String

    携帯番号サフィックス

    なし

    2.0.0

    mobile

    String

    携帯番号

    なし

    2.0.0

    groups

    List<GroupsItem>

    ユーザーグループID

    なし

    2.0.0

    remark

    String

    特記事項

    なし

    2.0.0

    avatar

    String

    アバターID

    なし

    2.0.0

    avatarShow

    String

    アート写真ID

    なし

    2.0.0

    countryCode

    String

    国・地域コード

    なし

    2.0.0

    name

    String

    氏名

    なし

    2.0.0

    departmentRoute

    List<DepartmentRouteItem>

    部署

    なし

    2.0.0

    location

    String

    場所

    なし

    2.0.0

    id

    Integer

    ユーザーID

    なし

    2.0.0

    jobNumber

    String

    従業員番号

    なし

    2.0.0

    placeCode

    String

    地域コード

    なし

    2.0.0

    position

    String

    役職

    なし

    2.0.0

    department

    Integer

    部署ID

    なし

    2.0.0

    type

    int

    部署タイプ

    なし

    2.0.0

    typeId

    int

    デバイスタイプ

    なし

    2.0.0

    name

    String

    デバイ名

    なし

    2.0.0

    updateAt

    String

    更新時間

    なし

    2.0.0

    description

    String

    説明

    なし

    2.0.0

    location

    String

    デバイス場所

    なし

    2.0.0

    id

    int

    デバイスID

    なし

    2.0.0

    softwareVersion

    String

    デバイスソフトウエアのバージョン

    なし

    2.0.0

    createAt

    String

    作成時間

    なし

    2.0.0

    direction

    int

    デバイスInとOutの方向

    なし

    2.0.0

    info

    String

    情報

    なし

    2.0.0

    content

    String

    特記事項

    なし

    2.0.0

    typeId

    int

    デバイスタイプID

    なし

    2.0.0

    name

    String

    デバイス

    なし

    2.0.0

    updateAt

    String

    更新時間

    なし

    2.0.0

    description

    String

    デバイス説明

    なし

    2.0.0

    location

    String

    デバイス場所

    なし

    2.0.0

    id

    int

    デバイスID

    なし

    2.0.0

    softwareVersion

    String

    デバイスソフトウエアのバージョン

    なし

    2.0.0

    createAt

    String

    作成時間

    なし

    2.0.0

    direction

    int

    デバイスInとOutの方向

    なし

    2.0.0

    info

    String

    デバイスInfo

    なし

    2.0.0

    0:デフォルト

    1:In

    2:Out

    2.0.0

    Y

    location

    String

    デバイス場所説明

    なし

    2.0.0

    N

    description

    String

    デバイス説明

    なし

    2.0.0

    N

    softwareVersion

    String

    ソフトウェアのバージョン

    なし

    2.0.0

    N

    info

    String

    その他の情報

    なし

    2.0.0

    N

    totalUserCount

    int

    ユーザー総数

    なし

    2.0.0

    なし

    2.0.0

    Y

    totalUserCount

    int

    ユーザー総数

    なし

    2.0.0

    Y

    action

    int

    タイプ

    0:デバイスの全ユーザーステータスをアップロード

    1:デバイスの異常ユーザーステータスをアップロード

    2.0.0

    Y

    1: DoorMagnetismReportEventContent

    2: BluetoothReportEventContent

    3: ThermalImagerReportEventContent

    2.0.0

    Y

    ミリ秒

    2.0.0

    Y

    なし

    2.0.0

    N

    signAvatar

    String

    顔写真

    なし

    2.0.0

    N

    signBgAvatar

    String

    バックグラウンド図

    なし

    2.0.0

    N

    signTime

    long

    打刻時間

    なし

    2.0.0

    Y

    type

    int

    従業員タイプ

    1:登録者

    2:ビジター

    3:未登録者

    4:非生体

    999: その他

    2.0.0

    Y

    abnormalType

    int

    異常レコードタイプ

    0:なし

    10001:人物とIDがマッチしない

    10002:人物とカードがマッチしない

    10003:人物とコードがマッチしない

    20001:ビジターは有効期間外 20002:アクセスタイムテーブル時間外

    30001:無効なIDカード

    30002:無効なICカード

    30003:無効なQRコード

    2.0.0

    N

    idNumber

    String

    IDナンバー

    なし

    2.0.0

    N

    icNumber

    String

    社員カード

    なし

    2.0.0

    N

    idInfo

    String

    IDカードのその他の情報

    Json String

    2.0.0

    N

    inTime

    int

    すぐアップロードするか

    はい:1

    いいえ:0

    2.0.0

    Y

    mode

    int

    デバイスモード

    1:顔認証かカード

    2:顔認証+カード

    3:顔認証かIDカード

    4:顔認証+ID Card

    5:顔認証+IDカードによる予約

    6:顔認証かQRコード

    7:顔認証とQRコード

    8:Bluetooth

    9:顔認証

    10:顔認証かQRコードかカード

    2.0.0

    Y

    rectangle

    List<VerticesItem>

    顔枠

    左上の座標、右下の座標

    2.0.0

    N

    entryMode

    int

    アクセスモード

    1:顔認証

    2:QRコード

    3:カード

    4:顔認証+カード

    5:IDカード

    6:顔認証+IDカード

    7:顔認証+IDカードによる予約

    8:顔認証かつQRコード

    9:Bluetooth

    2.0.0

    N

    pushOption

    int

    レコード配信

    1:はい

    0:いいえ

    2.0.0

    N

    wearMaskType

    int

    マスクステータス

    0:ステータスなし(マスク検知オフ)

    1:マスク未着用 2:マスク着用中

    2.0.0

    N

    verifyScore

    float

    認識スコア

    なし

    2.0.0

    N

    docPhoto

    String

    IDカード写真

    なし

    2.0.0

    N

    heatAvatar

    String

    ヒートマップ

    なし

    2.0.0

    N

    bodyTemperature

    float

    温度

    なし

    2.0.0

    N

    remark

    String

    特記事項

    なし

    2.0.0

    N

    なし

    2.0.0

    Y

    apkVersionCode

    String

    apkバージョンコード

    なし

    2.0.0

    Y

    packageName

    String

    パッケージ名

    なし

    2.0.0

    Y

    model

    String

    モデル

    なし

    2.0.0

    Y

    serialNumber

    String

    デバイスシリアルナンバー

    なし

    2.0.0

    Y

    romSoftwareVersion

    String

    ROMソフトウエアバージョン

    なし

    2.0.0

    Y

    manufacturer

    String

    メーカー

    なし

    2.0.0

    Y

    userId

    int

    ユーザーID

    なし

    2.0.0

    recordId

    int

    レコードid

    なし

    2.0.0

    type

    int

    データタイプ

    1:ライブラリーでの人物

    2:未登録者

    3:生体

    4:非生体

    2.0.0

    height

    int

    Depthデータ高さ

    なし

    2.0.0

    en,zh,zh-tw

    2.0.0

    Y

    event

    MessageEventEnum

    イベント

    なし

    2.0.0

    captcha

    String

    認証コード

    なし

    2.0.0

    なし

    2.0.0

    void disConnectMqtt(IMqttActionListener listener)

    MQTT接続を切断

    2.0.0

    void getUserListInGroup(int groupId, MessageCallback callback)

    あるグループでの登録者リストを取得

    2.0.0

    void registerGroupChangeListener(MessageCallback callback)

    デバイスと登録者グループの変更コールバックを登録

    2.0.0

    void registerUserInGroupChangeListener(int groupId, MessageCallback callback)

    登録者グループの登録者変更コールバックを登録

    2.0.0

    void registerWarningAction(MessageCallback callback)

    アラームステータス変更コールバックを登録

    2.0.0

    void registerAccessStrategy(MessageCallback callback)

    アクセスルール変更コールバックを登録

    2.0.0

    void registerUpgrade(MessageCallback callback)

    APPとROMアップデートコールバックを登録

    2.0.0

    void registerDeviceStatus(MessageCallback callback)

    デバイスステータスコールバックを登録

    2.0.0

    void registerDeviceConfig(MessageCallback callback)

    デバイス構成変更コールバックを登録

    2.0.0

    void registerDeviceNotify(MessageCallback callback)

    デバイスサーバエンドの通知配信構コールバックを登録

    2.0.0

    void registerKeepDoorOpenOrCloseSchedule

    (MessageCallback callback)

    デバイスのドア常時開/閉タイムテーブルの配信コールバックを登録

    2.0.0

    void unRegisterGroupChangeListener()

    デバイスと登録者グループの変更コールバックの登録を取り消す

    2.0.0

    void unegisterUserInGroupChangeListener(int groupId)

    登録者グループの登録者変更コールバックの登録を取り消す

    2.0.0

    void unegisterGetUserListInGroup(int groupId)

    あるグループでの登録者リストの登録を取り消す

    2.0.0

    void unRegisterWarningActio()

    アラームステータス変更コールバックの登録を取り消す

    2.0.0

    void [unRegisterAccessStrategy()

    アクセスルール変更コールバックの登録を取り消す

    2.0.0

    void unRegisterUpgrade()

    APPとROMアップデートコールバックの登録を取り消す

    2.0.0

    void unRegisterDeviceStatus()

    デバイスステータスコールバックの登録を取り消す

    2.0.0

    void unRegisterDeviceConfig()

    デバイス構成変更コールバックの登録を取り消す

    2.0.0

    void unRegisterDeviceNotify()

    デバイスサーバエンドの通知配信構コールバック登録を取り消す

    2.0.0

    void unRegisterKeepDoorOpenOrCloseSchedule()

    デバイスのドア常時開/閉タイムテーブルの配信コールバック登録を取り消す

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    listener

    IMqttActionListener

    コールバック

    なし

    2.0.0

    connectionLost

    IConnectionLost

    接続切断のコールバック

    なし

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    listener

    IMqttActionListener

    コールバック

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    groupId

    int

    グループID

    なし

    2.0.0

    callback

    MessageCallback

    コールバック

    なし

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    callback

    MessageCallback

    コールバック

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    groupId

    int

    グループID

    なし

    2.0.0

    callback

    MessageCallback

    コールバック

    なし

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    callback

    MessageCallback

    コールバック

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    callback

    MessageCallback

    コールバック

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    callback

    MessageCallback

    コールバック

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    callback

    MessageCallback

    コールバック

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    callback

    MessageCallback

    コールバック

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    callback

    MessageCallback

    コールバック

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    callback

    MessageCallback

    コールバック

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    groupId

    int

    グループID

    なし

    2.0.0

    パラメータ名

    Type

    説明

    備考

    導入バージョン

    groupId

    int

    グループID

    なし

    2.0.0

    Member

    説明

    備考

    導入バージョン

    ZH

    中国語簡体字

    なし

    2.0.0

    ZH_TW

    中国語繁体字

    なし

    2.0.0

    EN

    Member

    Type

    説明

    備考

    導入バージョン

    account

    String

    アカウント

    なし

    2.0.0

    password

    String

    パスワード

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    code

    int

    ステータスコード

    なし

    2.0.0

    data

    T

    データ

    なし

    メンバー関数

    説明

    備考

    導入バージョン

    boolean isSuccess()

    リクエストが成功したかどうか

    true:成功

    false:失敗

    2.0.0

    Member

    Type

    説明

    備考

    導入バージョン

    必須

    traceId

    String

    アラートシリアルナンバー

    なし

    2.0.0

    Y

    alarmPhoto

    String

    Member

    Type

    説明

    備考

    導入バージョン

    必須

    x

    int

    x座標

    なし

    2.0.0

    Y

    y

    int

    Member

    Type

    説明

    備考

    導入バージョン

    id

    long

    ビジターID

    なし

    2.0.0

    avatar

    String

    比較対象のアバター

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    id

    int

    グループID

    なし

    2.0.0

    name

    String

    グループ名

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    flag

    int

    フラッグ

    0:存在しない 1:存在

    2.0.0

    Member

    Type

    説明

    備考

    導入バージョン

    flag

    int

    フラッグ

    0:存在しない 1:存在

    2.0.0

    md5

    String

    File md5

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    searchResult

    List<SearchResultItem>

    検索結果

    なし

    2.0.0

    gateCtrl

    boolean

    ドアオープンかを判定

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    faceCutImage

    Content

    顔のカット写真

    なし

    2.0.0

    score

    float

    認識スコア

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    data

    String

    オリジナル図データ

    このdataかurlを選択

    2.0.0

    format

    String

    図のタイプ

    IMAGE_UNKNOWN, IMAGE_JPEG, IMAGE_PNG, IMAGE_BMP, IMAGE_TIFF, IMAGE_GIF

    Member

    Type

    説明

    備考

    導入バージョン

    必須

    targetImages

    ImagesItem

    小さい画像スナップショットの配列

    フルサイズの画像をアップロードすれば、小さい画像は不要

    2.0.0

    N

    extraInfo

    String

    Member

    Type

    説明

    備考

    導入バージョン

    detectionMode

    String

    検知モード

    DETECT_MODE_AUTO:TargetAnnotation.rectangleとスナップショットのサイズに従って自動的に検知枠を選択。 DETECT_MODE_BOUNDING_ONLY:TargetAnnotation.rectangleのみ使用。Rectangleを渡さないとなりません。そうでない場合、無効targetになりる。 DETECT_MODE_FORCE_DETECTION:検知のために検知モードの利用が必須となる

    2.0.0

    targetInfo

    TargetInfo

    共通スナップショット目標情報の構造

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    trackId

    int

    Track ID

    なし

    2.0.0

    angle

    Angle

    顔角度の情報

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    roll

    int

    顔の傾き角度

    なし

    2.0.0

    pitch

    int

    顔の上向き・下向き角度

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    vertices

    List<VerticesItem>

    ターゲットの矩形エリア

    左上の座標

    右下の座標

    2.0.0

    Member

    Type

    説明

    備考

    導入バージョン

    x

    int

    X座標

    なし

    2.0.0

    y

    int

    Y座標

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    x

    int

    X座標

    なし

    2.0.0

    y

    int

    Y座標

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    placeName

    String

    カメラが所在するエリア名

    なし

    2.0.0

    deviceId

    String

    カメラハードウェアID

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    updatedAt

    long

    更新したタイムスタンプ

    なし

    2.0.0

    groupId

    int

    グループID

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    userUpdatedAt

    long

    ユーザーの更新時間

    なし

    2.0.0

    userId

    int

    ユーザーID

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    birthday

    String

    誕生日

    なし

    2.0.0

    modelVersion

    String

    モデルバージョン

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    userIds

    List

    ユーザーID配列

    1回最大20,000配列

    2.0.0

    modelVersion

    String

    モデルバージョン

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    id

    String

    デバイスID

    なし

    2.0.0

    userGroups

    List<GroupsItem>

    ユーザーグループ

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    deviceTypeMaxOnline

    DeviceTypeMaxOnline

    デバイスタイプの最大オンライン数

    なし

    2.0.0

    ldid

    String

    デバイスLDID

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    companyId

    int

    デバイスの所属する企業ID

    なし

    2.0.0

    serviceConfig

    List<ServiceConfigItem>

    サーバ構成

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    name

    String

    デバイス名

    なし

    2.0.0

    options

    List<Options>

    カスタマイズオプション

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    text

    String

    テキストフィールド

    なし

    2.0.0

    value

    String

    対応するコンテンツ

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    guestGroupId

    int

    ビジターグループID

    なし

    2.0.0

    validFrom

    String

    有効開始時間

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    empoent

    String

    e1

    なし

    2.0.0

    module

    String

    素数積

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    birthday

    String

    誕生日

    なし

    2.0.0

    icNumber

    String

    ICカードナンバー

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    name

    String

    部署名

    なし

    2.0.0

    id

    int

    部署ID

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    date

    String

    日付

    for example 20190815

    2.0.0

    edition

    String

    バージョン

    for example 1.11.0.2

    Member

    Type

    説明

    備考

    導入バージョン

    id

    long

    アクセスルールID

    なし

    2.0.0

    ruleId

    long

    ルールID

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    id

    long

    特別日ID

    なし

    2.0.0

    date

    String

    日付

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    entryTimeLeft

    int

    残りアクセス可能回数

    なし

    2.0.0

    entryHint

    String

    通行メッセージ

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    必須

    content

    String

    QRコードコンテンツ

    なし

    2.0.0

    Y

    timestamp

    long

    Member

    Type

    説明

    備考

    導入バージョン

    defaultUserGroupId

    int

    デフォルトユーザーグループID

    なし

    2.0.0

    role

    int

    ロール

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    birthday

    String

    誕生日

    なし

    2.0.0

    icNumber

    String

    ICカードナンバー

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    name

    String

    部署名

    なし

    2.0.0

    id

    int

    部署ID

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    ldid

    String

    デバイスUDID

    なし

    2.0.0

    companyId

    int

    デバイスの所属する企業ID

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    recordId

    String

    識別レコードid

    なし

    2.0.0

    type

    int

    誤認識タイプ

    1:別人 2:未登録者

    3:非生体

    4:未登録者アタック

    5:非生体アタック

    Member

    Type

    説明

    備考

    導入バージョン

    ldid

    String

    デバイスLDID

    なし

    2.0.0

    companyId

    int

    デバイスの所属する企業ID

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    必須

    name

    String

    デバイスName

    なし

    2.0.0

    Y

    direction

    int

    Member

    Type

    説明

    備考

    導入バージョン

    exceptionList

    List<ExceptionListItem>

    例外リスト

    なし

    2.0.0

    verifyModelVersion

    String

    検証モデルバージョン

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    code

    int

    ステータスコード

    なし

    2.0.0

    userId

    int

    ユーザーID

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    必須

    statusList

    List<UserStatusListItem>

    ユーザーステータスリスト

    なし

    2.0.0

    Y

    verifyModelVersion

    String

    Member

    Type

    説明

    備考

    導入バージョン

    status

    int

    ステータスコード

    1:同期中、 2:ノーマルフィーチャー、 3:画像ダウンロード失敗、 4:画像解析失敗、 5:フィーチャー抽出失敗

    2.0.0

    userIds

    int[]

    ユーザーID配列

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    必須

    type

    int

    イベントタイプ

    1:ドアマグネットイベント

    2:Bluetooth電力

    3:サーモグラフィーステータス

    2.0.0

    Y

    content

    BaseDeviceReportEventContent

    Member

    Type

    説明

    備考

    導入バージョン

    必須

    status

    int

    イベントのステータス

    1:ON

    2:OFF

    3:なし

    2.0.0

    Y

    timestamp

    long

    Member

    Type

    説明

    備考

    導入バージョン

    必須

    power

    int

    バッテリーの残量

    0-100

    2.0.0

    Y

    Member

    Type

    説明

    備考

    導入バージョン

    必須

    status

    int

    イベントのステータス

    0:不明

    1:接続済

    2:未接続

    2.0.0

    Y

    Member

    Type

    説明

    備考

    導入バージョン

    recordId

    String

    レコードID

    なし

    2.0.0

    Member

    Type

    説明

    備考

    導入バージョン

    必須

    userId

    int

    ユーザーID

    なし

    2.0.0

    N

    username

    String

    Member

    Type

    説明

    備考

    導入バージョン

    必須

    apkVersionName

    String

    apkバージョン名

    なし

    2.0.0

    Y

    romHardwareVersion

    String

    Member

    Type

    説明

    備考

    導入バージョン

    images

    List<ImagesItem>

    日付

    なし

    2.0.0

    depth

    Depth

    Depthデータ

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    data

    String

    Depthデータコンテンツ

    なし

    2.0.0

    width

    int

    Depthデータ幅

    なし

    Member

    Type

    説明

    備考

    導入バージョン

    必須

    content

    String

    Tsl json String

    なし

    2.0.0

    Y

    Member

    Type

    説明

    備考

    導入バージョン

    必須

    content

    String

    言語パッケージコンテンツ

    なし

    2.0.0

    Y

    lang

    String

    Member

    Type

    説明

    備考

    導入バージョン

    mobile

    String

    携帯番号

    なし

    2.0.0

    areaCode

    String

    地域コード

    なし

    Member

    説明

    備考

    導入バージョン

    LOGIN

    ログイン

    なし

    2.0.0

    CHANGE_INFO

    変更情報

    なし

    2.0.0

    VALIDATE

    メンバー関数

    説明

    備考

    導入バージョン

    void onConnectionLost(Throwable cause)

    接続が失われた際のコールバック

    なし

    2.0.0

    メンバー関数

    説明

    備考

    導入バージョン

    void success(MqttMessage msg)

    情報受信のコールバック

    なし

    2.0.0

    void error(int code, String msg, Throwable throwable)

    失敗時のコールバック

    なし

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    English

    2.0.0

    2.0.0

    アラート写真

    y座標

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    拡張フィールドString

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    タイムスタンプ

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    2.0.0

    デバイス方向

    2.0.0

    2.0.0

    検証モードバージョン

    2.0.0

    イベントに対応するコンテンツ

    イベント発生時間

    ユーザー名

    ROMハードウエアバージョン

    2.0.0

    2.0.0

    言語

    2.0.0

    検証