Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Thunder SDK Zipファイルには下記コンテンツがあります。ご確認ください。
開発者向けドキュメント
ファイル名 :開発マニュアル(日本語版)
ファイル名 :
ファイル名 :
ファイル名 : ※TSLとは物理エンティティをデジタル化し、クラウド内にエンティティを構築するデータモデルで、では「オブジェクトモデル」とも呼んでいます。
フォルダー名 model:一般向けに公開されているアルゴリズムモデルが格納されています。プロジェクトの要件に応じて、適切なモデルを選択して適用します。モデルの選択方法については、をご参照ください。
フォルダー名 sample:Thunder SDKの基本的な機能を紹介するためのサンプルプログラムです。コンパイルして実行するためには、に記載されているアクセス手順に従って、関連するリソースを sampleフォルダにコピーする必要があります。
フォルダー名 jniLibs:一般向けに公開されている複数のデバイスやプラットフォームに対応した、コアアルゴリズムのダイナミックライブラリが格納されています。プロジェクトの要件に応じて適切なダイナミックライブラリを選択し、適用します。ライブラリの選択方法については、をご参照ください。
フォルダー名 license:異なるハードウェアプラットフォーム上で使用するテスト用ライセンスファイルが含まれています。本ライセンスはテスト用にのみ使用でき、製品が正式リリース後には、別途利用申請する必要があります。使用方法についてはをご参照ください。
ファイル名 thunder-android*.aar:Thunder SDK開発キット。開発時にはプロジェクトにaarをコピーする必要があります。使用方法について、をご参照ください。
日付
バージョン
リリースノート
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
日本語ドキュメントの提供開始
2021/04/30
2.1.0
ビデオストリーム出力サポート (RGBとIR画像の結合)
画像回転サポート
顔認証画像の一致度チェック結果確認をサポート
温度検知アルゴリズム更新
属性検知・分析をサポート
2021/06/30
2.1.1
サンプルコード改善
カメラAPI改善
Thunder SDKはSenseThunderに様々な機能を追加できる開発キットです。属性検知機能や、UIの変更、QRコードの読み取り機能など店舗や施設に最適な独自開発が可能になります。
メンバー関数
説明
導入バージョン
boolean checkCalibration(Bitmap rgbFace, Bitmap irFace)
顔キャリブレーションが正しくできているかをチェック
2.1.0
パラメータ
パラメータ名
型
説明
備考
導入バージョン
rgbFace
Bitmap
RGB顔画像
なし
2.1.0
irFace
Bitmap
IR顔画像
なし
戻り値
顔キャリブレーションが正しくできている場合はtrueを返し、そうでない場合はfalseを返す
例外
なし
このドキュメントは、Thunder SDK APIの機能について説明しており、開発者が各型によって提供される特定の目的と機能を理解できるようにまとめられています。
バージョン
修正日
修正履歴
2.0.0
03/01/2021
初版
2.1.0
04/30/2021
ビデオストリーム出力のためのAPIを追加
属性分析のAPIを追加
顔認識用のキャリブレーションチェックAPIを追加
画像回転APIを追加
温度検知モデルを更新
2.1.1
06/30/2021
2.1.0
カメラAPIを更新
温度検知モデルを更新
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
width
int
画像の幅
なし
2.1.0
height
int
画像の高さ
なし
2.1.0
degree
MidPixelFormat
画像の回転角度
なし
2.1.0
メンバー関数
説明
導入バージョン
byte[] rotateImage(@NonNull byte[] resBuff, @NonNull MidPixelFormat pixelFormat, int width, int height, int degree)
画像を回転
2.1.0
パラメータ名
型
説明
備考
導入バージョン
resBuff
byte[]
画像データ
なし
2.1.0
pixelFormat
MidPixelFormat
画像の形式
なし
2.1.0
h
int
プレビューの高さ
なし
2.0.0
メンバー関数
説明
導入バージョン
String decodeQRCode(byte[] nv21, int w, int h)
QRコード識別
2.0.0
String decodeQRCode(Bitmap bitmap)
QRコード識別
2.0.0
パラメータ名
Type
説明
備考
導入バージョン
nv21
byte[]
プレビューのフレームデータ
なし
2.0.0
w
int
プレビューの幅
なし
パラメータ名
Type
説明
備考
導入バージョン
bitmap
Bitmap
画像データ
なし
2.0.0
2.0.0
顔認証: 1:1認証、1:N認証、サーバー認証、QR コード認証、温度測定および検知
ハードウェア周辺機器の操作
SenseLink へのアクセス
実行結果は、以下の通りです。
以下に示すように、1:1認証、1:N認証、サーバーサイド認証、QR コード認証、温度測定および検知が含まれます。
“1:1認証"は、“あなたがあなたであること”を証明するプロセスです。具体的には、特定の身元情報をシステムが保持している場合、カメラ画面に映っている人物の顔情報と保存している身元情報が一致するかを判断します。
使用する前に、以下のように対象となる人物の写真を追加する必要があります。
その後、1:1認証を実行します。
1:N認証とは、認証対象の顔画像セットをローカルの顔フィーチャーライブラリに登録しておき、カメラが顔情報を取得した際にライブラリ内の顔フィーチャーセットと比較することで、認証結果を導き出します。
使用する前に、以下のように顔フィーチャーデータベースを構築する必要があります。
その後、1:N認証を実行します。
サーバーサイド認証とは1:N認証モードのひとつであり、「顔比較」のリンク内でローカル実行をリモート実行に置き換えたものです。サーバー上に顔フィーチャーが保存されているために顔フィーチャーライブラリを構築する必要はなく、以下のように直接入力するだけです。
なお、ユーザー自身が独自のサーバー比較ロジックを実装する必要があります。詳細については、をご参照ください。
QRコードの内容を解析し、鮮明に読み込めるようにQRコードをプレビュー画面に配置します。認証に成功した場合、以下のようにQRコードの内容が画面に表示されます。
顔認証機能と温度測定モジュールを介して顔および熱力学線図のデータをアルゴリズムにより処理し、最終的な顔の温度を取得します。現在サポートされている温度測定モジュールは、Arrowモジュール、Guide120モジュール、およびGuide256モジュールです。最終的な顔の温度値は、周囲の温度、モジュールのモデル、使用方法などによって異なる場合がありますのでご注意ください。
温度測定および認証には1:N顔フィーチャーライブラリが搭載されています。使用前に1:N認証を参照して顔フィーチャーを設定し、設定完了後に温度測定および認証機能を入力します。
PassとThunderシリーズの一部の周辺機器と互換性があります。対応する周辺機器は次の図のとおりです。
newDeviceKeyの値がtrueであれば、利用中のデバイスはSenseLinkにログインしていないことを意味します。サーバーアドレス、アカウント名、およびパスワードを入力して、ログインをクリックしてください。以下の図が表示されれば、ログインは成功です。
顔認証やQRコードなどにより取得したデータをSenseLinkにアップロードします。またTSLモデルをSenseLinkにアップロードします。詳細については、以下のグラフをご覧ください。
メンバー関数
説明
導入バージョン
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
戻り値
削除が成功した場合に0を返す。そうでない場合は下記の値を返す ・不正なパラメータの場合、-1を返す ・顔フィーチャーライブラリが空の場合、-260を返す ・検索結果にない場合、-261を返す
例外
なし
画像の顔フィーチャーを取得
パラメータ
パラメータ名
Type
説明
備考
導入バージョン
avatar
Bitmap
個人の鮮明な画像
なし
2.0.0
戻り値
顔フィーチャーのbyte配列を返
例外
なし
フィーチャーライブラリの追加
パラメータ
パラメータ名
Type
説明
備考
導入バージョン
userId
int
顔フィーチャーID
なし
2.0.0
feature
byte[]
顔フィーチャーバイト配列
なし
戻り値
挿入操作が成功した場合に0を返す。そうでない場合は下記の値を返す ・不正なパラメータの場合、-1を返す ・ライブラリに顔フィーチャー追加が失敗した場合、-259を返す ・UUIDを取得できない場合、-262を返す
例外
なし
2.0.0
温度検知のアルゴリズムと計算
温度検知のアルゴリズムを初期化
SenseThunder-Airはモデル1.7.0(夏季モード)と1.8.0(通常モード)に対応します SenseThunder-Miniはモデル1.3.0(夏季モード)、1.5.0(通常モード)、1.10.0(冬季モード)、1.11.0(自動モード)に対応します SenseThunder-Eはモデル1.2.0(夏季モード)、1.5.0(通常モード)に対応します
パラメータ
戻り値
初期化が成功した場合に0を返す。そうでない場合は負の値を返す
例外
なし
温度を計算
パラメータ
戻り値
計算が成功した場合に温度数値とリジョン(温度検知するための顔の枠範囲)を返す。そうでない場合はnullを返す
例外
なし
温度を計算
パラメータ
戻り値
計算が成功した場合に温度数値と結果配列を返す。そうでない場合はnull配列を返す
例外
なし
温度検知リソースを解放
パラメータ
なし
戻り値
なし
例外
なし
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(TempMeasureVersion 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
TempMeasureVersion
アルゴリズムのバージョン
なし
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
Thing Specification Language(TSL)とは、エンド側とサーバー間の設定のために提供される記述ファイルであり、エンド側でサポートされている設定項目と設定項目に応じた制約を記述するために使用されます。
SenseLinkプラットフォームはTSLを定義するためにデバイスをサポートします。デバイスの実際の設定(プロパティ、ステータス)から成るデータモデルによって、クラウドを介したデバイス管理が円滑化されます。
関数型
説明
TSLとは、デバイスが最初にSenseLinkにアクセスする際にデバイスからレポートされるJSON形式のファイルであり、バックエンドに保存されます。Webでデバイスの詳細を表示すると、デバイスに対応するTSLとTSLの値がWebで動的に読み込まれます。これにより、バックエンドのサービスを更新することなく、クラウド上のリモート設定機能とデバイスのローカル機能の一貫性を確保することができます。
アプリにTSLを追加し、 に従って作成します。
必要な言語パッケージを作成します。形式については、 を参照してください。
開発が完了したら、デバイス上でプロパティやイベントをレポートし、プロパティを設定してクラウド上のサービスを呼び出してインターフェースの呼び出しステップを表示することができます。
デバイスからレポートされた属性、イベント、および完了済サービスの呼び出しデータは、データ照合の通過後、SenseLinkコンソール内の対応するデバイスの
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に設定可能な値の一覧:
options:任意で、Valueが枯渇し得る場合(wiegand32、wiegand34、およびwiegand2602など)、一般的にuiのselectで使用されます。
デバイスの周辺機器の状態を意味します。プラットフォームは書き込みは行わずに読み込みのみを行い、最新の状態のみを保持します。JSONファイルには、名前に対応する name、enable、および options、表示の有無、および任意の値が含まれます。詳細については、をご参照ください。
デバイス/Web上のシステム内の全てのTSLのデバイスタイプ、属性、およびステータスの表示名を定義し、言語ごとに別々に保存します。TSLの国際化は、TSLの値と名前をクラウドコンソール向けに分かりやすく説明し、操作の難易度を下げることを目的としています。各言語パッケージはJSON形式のファイルで構成され、対応するキーはTSLの対応する部分の翻訳です。
データ構造の詳細については、をご参照ください
言語パッケージのデータ構造例は、以下の通りです。
TSL の JSON フィールドの構造例は、以下の通りです:
1行のテキスト入力
textarea
複数行のテキスト入力
image
画像のアップロードと表示
共通の翻訳。
例:"modelVersion":"Device model version"
プロパティ
パラメーターの命名、パラメーターの型、制御型、
製品の各機能のチェックルールなどを含みます。
デバイスやSenselinkプラットフォームにトリガーされることにより変更します。
ステータス
デバイスの周辺機器の状態です。
プラットフォームは書き込みを行わずに読み込みだけを行い、
ドアマグネットの状態、サーマルイメージングシステムの接続状態、Bluetoothロックバッテリーなど、最新の状態のみを保持します
uiに設定可能な値
説明
number
ナンバーピッカー
select
ドロップダウンボックス
checkbox
複数選択ボックス
radio
ラジオボタン
date
タイムピッカー
フィールド
説明
deviceTypes
デバイスタイプのセット。例:"deviceType":"spse"
groups
TSLのカテゴリー化名、プロパティ内の名前の翻訳。
例:properties[{"name":"general",...}]
fields
設定項目名、プロパティ内のフィールドの全ての「name」フィールド
values
設定に対応する値、ステータス内の値を含むTSL内の全ての値
status
デバイスの周辺機器の状態の表示名、ステータス内の「name」フィールド
text
common
Link APIは、SenseLinkプラットフォームのクラウド機能をカプセル化するための一連のインターフェースメソッドです。インターフェースメソッドには、プラットフォームRESTfulインターフェースのカプセル化と、プラットフォームのMqttメッセージのプッシュメカニズムのカプセル化の、主に2つのタイプがあります。プラットフォームが提供するクラウド機能を、一般的なJavaメソッドを呼び出すのと同じように使用することができます。 *JCVのSenselinkプラットフォームについては、下記リンクをご参照ください:https://docs.japancv.co.jp/senselink/
Link APIは主に、HttpApiClientとMqttApiClientの2つのコアタイプを提供しており、それぞれのタイプで提供されるメソッドを使用することでSenseLinkプラットフォームとの直接的な通信が実現できます。その方法を以下に紹介します。
HttpApiClient:プラットフォームのRESTful APIのカプセル化用であり、通信にはhttpプロトコルを使用し、共に同期化メソッドであるためワーカースレッドで使用する必要があります
MqttApiClient:プラットフォームメッセージのプッシュメカニズムのカプセル化用であり、通信にはMqttプロトコルを使用し、長距離通信を確立してメッセージのTopicにサブスクライブすることで、プラットフォームメッセージのプッシュを受信します
インターフェースメソッドに関するRESTful APIとMqtt Topicの詳細な定義については、「API仕様書」をご参照ください。
Link APIは、統一された初期化エントリーを提供します。サーバーのURL、リクエストの読み込みと書き込みのタイムアウト、インターフェースから返される言語タイプなどを設定する必要があります。具体的な使用方法は以下の通りです。
初期化後、具体的なメソッドを呼び出して特定のサービスを実行できます。
各RESTful APIインターフェースは、対応するJavaのメソッド実行をカプセル化します。具体的なエンティティークラスは、リクエストで要求されたパラメーターの受渡値とリクエストの結果データの両方によってカプセル化されています。例えば、認識レコードをアップロードするためにv2/recordリクエストを実行する場合、以下のように記述します。
以下のように、実行のための比較的シンプルなパラメーターを使用して、APIインターフェースに複数のパラメーターを直接受け渡すことができます。
デバイスのログイン操作
ユーザーIDに基づく詳細なユーザー情報の取得
「RESTful APIインターフェースの定義」と「APIとメソッド間の通信」の詳細については、API仕様書をご参照ください。
各MqttメッセージのプッシュTopicは、対応するJavaメソッドをカプセル化します。Topicにサブスクライブされるメッセージは、次のようにコールバックを登録することで受信されます。
サーバーとのMqtt長距離接続を以下のようにして確立します。
デバイスの登録者グループ変更にサブスクライブします
デバイスの登録者グループ変更のサブスクライブを解除します
「Mqtt Topic の定義」および「Topic のサブスクライブとメソッド間の通信」の詳細については、Thunder SDK API Documentをご参照ください。
Link APIはSenselinkプラットフォームと簡単に通信する方法を提供しますが、一部の機能を使用する際には一定のプロセスステップに従わなければなりません。つまりRESTful APIインターフェースとMQTTトピックへのサブスクリプションの両方で、シーケンスに従う必要があります。以下、使用のシーケンスの観点から主要な機能の流れを中心に説明しています。
SenseLinkプラットフォームの機能を利用するためには、ログインと登録操作が必要です。これにより、デバイスをプラットフォームに含めて一元管理することができます。 通信プロセスの簡単な説明は以下の通りです。
主なステップの説明は以下の通りです。
(1)デバイスのログイン:最初にプラットフォームからパブリックキーを取得するためにrequestHttpApiClient.getRsa()インターフェースをリクエストし、パブリックキーを使用してクリアテキストのパスワードを暗号化してログイン操作を行うためにHttpApiClient.login()インターフェースをリクエストします。2つのステップはHttpApiClient.login()メソッドを使用することで完了します。このメソッドは、メソッドのパラメーターとしてアカウント番号、暗号化されたパスワード、デバイスのタイプとデバイスのDUIDのみを受け渡すだけで済みます。
トークン:全てのインターフェースのリクエストには、7日間有効なトークンを使用する必要があります。失効後は403エラーが返されますので、この場合は再度ログインして取得する必要があります。
newDeviceKey:trueの場合、現在のデバイスがプラットフォームの一元管理対象に含まれていないこと意味しますので、デバイス登録の操作を行う必要があります。
(2)デバイスの登録:登録を行うには、最初にHttpApiClient.register()インターフェースをリクエストし、登録が完了した後にデバイスと登録者グループを結合するためにHttpApiClient.bindDefaultGroup()をリクエストする必要があります(以降の登録者データの配信管理のため)。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」にサブスクライブする必要があります。サブスクライブの完了後、ただちに登録者のインクリメントリストと変更タイプが返されますので、変更タイプに応じてデータを処理する必要があります。
バージョン
改訂日
改訂内容
v1.1.0
2020/7/16
初稿
v1.2.1
2020/11/10
登録者データの同期化の使用法についての紹介を追加
v2.1.0
2021/04/30
用語を修正








{
"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 {
// リクエストの例外です。詳細については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();

SenseLink RESTfulインターフェースとMqttメッセージプッシュ仕組みをカプセル化
LinkSDKを初期化し、ネットワークリクエストパラメータを設定
CA Verificationかを取得
パラメータ
なし
戻り値
例外
なし
接続タイムアウトを取得
パラメータ
なし
戻り値
接続タイムアウト(ミリ秒)
例外
なし
読み取りタイムアウトを取得
パラメータ
なし
戻り値
読み込みタイムアウト(ミリ秒)
例外
なし
書き込みタイムアウトを取得
パラメータ
なし
戻り値
書き込みタイムアウト(ミリ秒)
例外
なし
インターセプターを追加
パラメータ
戻り値
Current Object
例外
なし
言語タイプを取得
パラメータ
なし
戻り値
LanguageTypeEnum
例外
なし
初期化
パラメータ
戻り値
Current Object
例外
なし
URLを設定
パラメータ
戻り値
Current Object
例外
なし
CA Verificationを設定
パラメータ
戻り値
Current Object
例外
なし
接続タイムアウトを設定
パラメータ
戻り値
Current Object
例外
なし
読み取りタイムアウトを設定
パラメータ
戻り値
Current Object
例外
なし
書き込みタイムアウトを設定
パラメータ
戻り値
Current Object
例外
なし
BatchAddインターセプター
パラメータ
戻り値
Current Object
例外
なし
インターセプターリストを取得
パラメータ
なし
戻り値
インターセプターリスト
例外
なし
言語タイプを設定
パラメータ
戻り値
Current Object
例外
なし
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






通行管理において利用されるサーモグラフィーの属性を抽出したもので、サーモグラフィーのプレビューとデータのリコールを取得し、ライフスタイルの管理やステータス監視など、ホットプラグ後の自動接続をサポート
サーマルイメージングシステムの異なるインスタンスを取得
サーマルイメージングシステムを取得
パラメータ
戻り値
ITemperatureCamera
Current Type
例外
なし
サーマルイメージグングシステムを操作
温度のバッチ変換
パラメータ
戻り値
例外
なし
温度データからセ氏温度数値を取得
パラメータ
戻り値
セ氏温度数値
例外
なし
サーモグラフィ本体の温度を取得
パラメータ
なし
戻り値
カメラ本体温度
例外
なし
サーマルイメージングシステムのプレビューデータコールバックを追加
パラメータ
戻り値
なし
例外
なし
サーマルイメージングシステムを初期化
パラメータ
戻り値
なし
例外
なし
サーマルイメージングシステムを解放
パラメータ
なし
戻り値
なし
例外
なし
サーマルイメージングシステムのプレビューデータのコールバックを削除
パラメータ
戻り値
なし
例外
なし
プレビューを開始
パラメータ
戻り値
なし
例外
なし
サーマルイメージングシステムのプレビューを停止
パラメータ
なし
戻り値
なし
例外
なし
サーマルイメージングシステムを構成
パラメータ
戻り値
なし
例外
なし
自動シャッターオンを設定
パラメータ
戻り値
なし
例外
なし
シャッターをオン
パラメータ
なし
戻り値
なし
例外
なし
プレビューデータのコールバック
メソッドの説明
温度データプレビューのコールバック。サーマルイメージングシステムは物理方向と同じ画像方向を出力。例:顔写真は縦方向になります。
パラメータ
サーマルイメージングを構成
プロパティの説明
サーマルイメージングシステムの型(列挙型)
プロパティの説明
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
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
width
int
温度データの幅
なし
2.0.0
height
int
温度データの高さ
なし
2.0.0
transmittance
float
大気通過率
なし
2.0.0
emissity
float
放射率
なし
2.0.0
なし
2.0.0
メンバー関数
説明
導入バージョン
ITemperatureCamera getTemperatureCamera(CameraType type)
サーマルイメージングシステムのインスタンスを取得
2.0.0
パラメータ名
型
説明
備考
導入バージョン
type
CameraType
サーマルイメージングシステムのタイプ
なし
2.0.0
メンバー関数
説明
導入バージョン
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)
パラメータ名
型
説明
備考
導入バージョン
y16Frame
float[]
オリジナル温度図
なし
2.0.0
y16W
int
オリジナル温度図の幅
なし
戻り値
説明
導入バージョン
true
変換されました
2.0.0
false
変換されませんでした
2.0.0
パラメータ名
型
説明
備考
導入バージョン
temperatureData
float
エネルギー値など各ピクセルでの温度データ
なし
2.0.0
パラメータ名
型
説明
備考
導入バージョン
callback
ITemperaturePreviewDataCallback
プレビューデータコールバック
なし
2.0.0
パラメータ名
型
説明
備考
導入バージョン
context
Context
Context
なし
2.0.0
パラメータ名
型
説明
備考
導入バージョン
callback
ITemperaturePreviewDataCallback
サーマルイメージングシステムのプレビューデータのコールバック
なし
2.0.0
パラメータ名
型
説明
備考
導入バージョン
textureView
TextureView
Androidシステムネイティブ(データプロセッシング用)
なし
2.0.0
パラメータ名
型
説明
備考
導入バージョン
config
TemperatureCameraConfig
サーマルイメージングシステム構成
なし
2.0.0
パラメータ名
型
説明
備考
導入バージョン
enable
boolean
自動シャッターオン設定
なし
2.0.0
パラメータ名
型
説明
備考
導入バージョン
temperatureBitmap
Bitmap
温度のRGB画像
なし
2.0.0
temperatureValue
float[]
温度データ
なし
Member
型
説明
備考
導入バージョン
environmentTemperature
float
環境温度
なし
2.0.0
distance
float
温度測定の距離
なし
Member
説明
備考
導入バージョン
IRAY
IRAY
なし
2.0.0
GUIDE120
GUIDE120
なし
2.0.0
GUIDE256
サーマルイメージングシステムのプレビューデータコールバックを追加
2.0.0
2.0.0
2.0.0
GUIDE256
カメラへクイックアクセスするインスタンスや、プレビューデータを取得するインターフェースを提供します。カメラのライフサイクルを管理するメソッドがカプセル化されており、カメラステータスの監視がサポートされます。
カメラを操作するメインメソッド
プレビューデータコールバックを追加
パラメータ
戻り値
Current Object
例外
なし
プレビューデータコールバックを削除
パラメータ
戻り値
Current Object
例外
なし
カメラインスタンスを取得
パラメータ
戻り値
Current Object
例外
なし
プレビューの角度を設定。0,90,180,270を選択可能
パラメータ
戻り値
Current Object
例外
なし
プレビューテクスチャーを設定
パラメータ
戻り値
Current Object
例外
なし
サポートされるプレビューサイズリストを取得
パラメータ
なし
戻り値
例外
なし
カメラの初期化
パラメータ
戻り値
なし
例外
なし
カメラをオンにする
パラメータ
戻り値
なし
例外
なし
カメラを解放
パラメータ
なし
戻り値
なし
例外
なし
カメラプレビューを開始
パラメータ
なし
戻り値
なし
例外
なし
カメラプレビューを停止
パラメータ
なし
戻り値
なし
例外
なし
(RGBとRGが結合された)ビデオストリームの出力のために、カメラを操作する主要メソッド
プレビューデータコールバックを追加
パラメータ
戻り値
なし
例外
なし
プレビューデータコールバックを削除
パラメータ
戻り値
なし
例外
なし
カメラインスタンスを取得
パラメータ
なし
戻り値
Current object
例外
なし
カメラがサポートするプレビューサイズを取得
パラメータ
戻り値
例外
なし
カメラの初期化
パラメータ
戻り値
なし
例外
なし
カメラをオンに
パラメータ
戻り値
なし
例外
なし
カメラを解放
パラメータ
戻り値
なし
例外
なし
プレビューを開始
パラメータ
戻り値
なし
例外
なし
カメラプレビューを終了
パラメータ
戻り値
なし
例外
なし
カメラがサポートするプレビューサイズをリセット
パラメータ
戻り値
なし
例外
なし
パラメータ説明
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
degree
int
プレビューの角度:0,90,180,270
なし
2.0.0
surfaceTexture
SurfaceTexture
プレビューのテクスチャー
なし
2.0.0
2.1.0
void initParameters(int width, int height, int degree , SurfaceTexture irSurfaceTexture, SurfaceTexture rgbSurfaceTexture, CameraType cameraType)
カメラの初期化
2.1.0
void openCamera(Context context,CameraType cameraType)
カメラをオンに
2.1.0
void releaseCamera(CameraType cameraType)
カメラを解放
2.1.0
void startPreview(CameraType cameraType)
プレビューを開始
2.1.0
void stopPreview(CameraType cameraType)
プレビューを終了
2.1.0
void resetPreviewSize(ScaleManager.Size size,CameraType cameraType)
カメラがサポートするプレビューサイズをリセット
2.1.0
degree
int
プレビューの角度: 0,90,180,270
なし
2.1.0
irSurfaceTexture
SurfaceTexture
IRサーフェス
なし
2.1.0
rgbSurfaceTexture
SurfaceTexture
RGBサーフェス
なし
2.1.0
cameraType
CameraType
カメラタイプ
なし
2.1.0
なし
2.1.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)
プレビュー角度を設定
パラメータ名
型
説明
備考
導入バージョン
callback
PreviewCallback
プレビューデータコールバック
なし
2.0.0
パラメータ名
型
説明
備考
導入バージョン
callback
PreviewCallback
プレビューデータコールバック
なし
2.0.0
パラメータ名
型
説明
備考
導入バージョン
cameraId
int
カメラインデックス
なし
2.0.0
パラメータ名
型
説明
備考
導入バージョン
degree
int
角度は0,90,180,270を選択可能
なし
2.0.0
パラメータ名
型
説明
備考
導入バージョン
texture
SurfaceTexture
プレビューテクスチャー
なし
2.0.0
戻り値
説明
導入バージョン
List
サポートされるプレビューサイズリスト
2.0.0
パラメータ名
型
説明
備考
導入バージョン
width
int
プレビューの幅
なし
2.0.0
height
int
プレビューの高さ
なし
パラメータ名
型
説明
備考
導入バージョン
context
Context
Context
なし
2.0.0
メンバー関数
説明
導入バージョン
void removePreviewCallbackWithBuffer(IRgbAndIrPreviewCallback callback)
プレビューデータコールバックを削除
2.1.0
void addPreviewCallbackWithBuffer(IRgbAndIrPreviewCallback callback)
プレビューデータコールバックを追加
2.1.0
RgbAndIrCameraManager getInstance()
カメラインスタンスを取得
2.1.0
List getSupportedPreviewSizes(CameraType cameraType)
パラメータ名
型
説明
備考
導入バージョン
callback
IRgbAndIrPreviewCallback
プレビューデータコールバック
なし
2.1.0
パラメータ名
型
説明
備考
導入バージョン
callback
IRgbAndIrPreviewCallback
プレビューデータコールバック
なし
2.1.0
パラメータ名
型
説明
備考
導入バージョン
cameraType
CameraType
カメラタイプ
なし
2.1.0
戻り値
説明
導入バージョン
List
プレビューサイズリスト
2.1.0
パラメータ名
型
説明
備考
導入バージョン
width
int
プレビューの幅
なし
2.1.0
height
int
プレビューの高さ
なし
パラメータ名
型
説明
備考
導入バージョン
context
Context
コンテクスト
なし
2.1.0
cameraType
CameraType
カメラタイプ
なし
パラメータ名
型
説明
備考
導入バージョン
cameraType
CameraType
カメラタイプ
なし
2.1.0
パラメータ名
型
説明
備考
導入バージョン
cameraType
CameraType
カメラタイプ
なし
2.1.0
パラメータ名
型
説明
備考
導入バージョン
cameraType
CameraType
カメラタイプ
なし
2.1.0
パラメータ名
型
説明
備考
導入バージョン
size
ScaleManager.Size
プレビューサイズ
なし
2.1.0
cameraType
CameraType
カメラタイプ
なし
メンバー
説明
備考
導入バージョン
RGB
1:RGBカメラ
なし
2.1.0
IR
2:IRカメラ
なし
2.1.0
RGB_IR
2.0.0
2.0.0
カメラがサポートするプレビューサイズを取得
2.1.0
2.1.0
2.1.0
3:RGBとIRカメラ
HTTPインターフェースの実装
メンバー関数
説明
導入バージョン
byte[] getImage(int type, String imageId)
画像データを取得
2.0.0
図データを取得
パラメータ
戻り値
画像データ
例外
なし
現在接続構成を取得
パラメータ
なし
戻り値
ConnectConfigEntity
例外
なし
アラートをレポート
パラメータ
戻り値
Result
例外
なし
デフォルトグループをバンドル
パラメータ
なし
戻り値
Result
例外
なし
パスワードを検証
パラメータ
戻り値
Result
例外
なし
Tslが存在するかをチェック
パラメータ
戻り値
Result<TslCheckExistResult>
例外
なし
Tslの言語パッケージが存在するかをチェック
パラメータ
戻り値
Result<TslLanguageCheckExistResult>
例外
なし
サーバの識別
パラメータ
戻り値
Result<FaceSearchResult>
例外
なし
当該デバイスにバンドルされるグループインデックスリストを取得
パラメータ
なし
戻り値
Result<GroupIndex>
例外
なし
グループでのユーザーインデックスリストを取得
パラメータ
なし
戻り値
Result>
例外
なし
ユーザー情報リストを取得
パラメータ
戻り値
Result>
例外
なし
サーバ構成を取得
パラメータ
なし
戻り値
Result
例外
なし
当該デバイスにバンドされるグループリストを取得
パラメータ
なし
戻り値
Result<DeviceGroups>
例外
なし
デバイスの情報詳細を取得
パラメータ
なし
戻り値
Result<DeviceDetailInfo>
例外
なし
企業情報を取得
パラメータ
なし
戻り値
Result<Company>
例外
なし
ユーザーの詳細情報を取得
パラメータ
戻り値
Result<UserDetailInfo>
例外
なし
ユーザーの詳細情報を取得
パラメータ
戻り値
Result<GuestDetailInfo>
例外
なし
サーバのバージョンを取得
パラメータ
なし
戻り値
Result<ServerVersion>
例外
なし
アクセスタイムテーブルを取得
パラメータ
戻り値
Result<TimeTable>
例外
なし
ログアウト
パラメータ
なし
戻り値
なし
例外
なし
QRコード認識インターフェース
パラメータ
戻り値
Result<QRResult>
例外
なし
デバイスのログイン
パラメータ
戻り値
Result<LoginResult>
例外
なし
デバイスを登録
パラメータ
戻り値
Result<RegisterResult>
例外
なし
ローカルデータベースでのユーザー異常ステータスをアップロード
パラメータ
戻り値
Result
例外
なし
ローカルデータベースでのユーザー異常ステータスをアップロード
パラメータ
戻り値
Result
例外
なし
接続構成をリロード
パラメータ
戻り値
なし
例外
なし
デバイスイベントをレポート
パラメータ
戻り値
Result
例外
なし
識別レコードをアップロード
パラメータ
戻り値
Result<RecordResult>
例外
なし
デバイスバージョンをアップロード
パラメータ
戻り値
Result
例外
なし
構成をアップロード
パラメータ
戻り値
Result
例外
なし
Tslをアップロード
パラメータ
戻り値
Result
例外
なし
Tsl言語パッケージをアップロード
パラメータ
戻り値
Result
例外
なし
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
説明
備考
導入バージョン
type
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
バージョン
改訂日
改訂内容
バージョン1.0.2
2020/4/7
本SDKを適用できるデバイスタイプを追加
バージョン1.0.3
2020/5/12
ドアアクセス機能の紹介を追加
バージョン1.2.0
2020/10/14
顔の温度検知機能の紹介を追加
Thunder SDK(以下、「SDK」)は、AI顔認証アルゴリズムおよびその派生機能をベースにした Android 向けSDKで、JCVインテリジェントハードウェアデバイス(以下、「ハードウェアデバイス」)を実行キャリアとして採用します。生体検知、1:N顔認証、1:1顔認証、顔温度検知、マスク検知、アクセスコントロールなどの機能を迅速に開発するために使用できます。
本ドキュメントは主に開発エンジニアを対象として書かれており、SDKのインテグレーション手順や機能の使用方法を説明しています。
SDKはデバイスのカメラで顔をキャプチャして顔認証を行うといった、オフラインでの顔認証に使用することができます。一般的な流れは次のとおりです。
一般的なプロセスを踏まえると、顔の照合には1対1の場合と1対Nの場合があるため、1:1認証と1:N認証に細分化されます。それぞれ異なるシナリオで使用され、1:1認証は後ほど定義するような1:NでNを1と設定する場合とは異なります。
カメラに素早くアクセスしてプレビューコールバックデータを取得したり、カメラのライフサイクルを管理するメソッドをカプセル化など、カメラのステータスを監視する機能をサポートしています。
交通現場で使用されるサーマルイメージングシステムの特徴として、サーマルイメージングシステムのプレビューおよびデータのコールバック、ライフサイクルの管理、ステータスの監視、ホットプラグ後の自動接続などが挙げられます。
対応するサーマルイメージングシステムのモデルは、Arrow、Guide120、Guide256です。
「1:1認証」は、「あなたがあなたであること」を証明するプロセスです。具体的には、特定の身元情報をシステムが保持している場合、カメラ画面に映っている人物の顔情報と保存している身元情報が一致するかを判断します。
銀行、携帯キャリアショップでの本人確認や駅・空港、ホテル、インターネットカフェなどで認証が必要な状況など、個人の認証が必要とされるシナリオでよく使われる認証操作です。
「1:N認証」とは、認証対象の顔画像セットをローカルの顔フィーチャーライブラリに登録しておき、カメラが顔情報を取得した際にライブラリ内の顔フィーチャーセットと比較することで、認証結果を導き出します。
コミュニティやオフィスビル、学校などでのアクセスコントロールや勤怠確認、複数人を認証する必要がある状況でよく使われます。
「マスク検知」は、カメラでキャプチャした顔情報を解析することで、マスクを着用しているかを迅速に検知します。病院や製造工場、粉塵の多い建設現場など、マスクが必要とされる場面で活用されています。
前述した一般的な1:N認証プロセスにおいては、顔の照合はローカルでもリモート(HTTPネットワークリクエスト経由)でも実行可能です。リモートで実行する場合、比較ロジックをユーザー自身が実装する必要があり、本機能の実装には顔認証バックエンドサーバーがあることが前提となります。
「ドアアクセス機能」は、SDKのドアアクセスデバイスのコントロール機能を指します。ハードウェアデバイスによって、ドアアクセスデバイスのサポート範囲が異なります。対応関係を説明するために、次のように概念を定義します。
「ドアアクセスデバイス」 -ハードウェアデバイスに含まれるハードウェアアクセサリーやハードウェア拡張インターフェースにより、接続して使用できる周辺機器などのすべてのデバイスの総称。
ハードウェアアクセサリ:スクリーンバックライト、IRフィルライト、照明センサー、距離センサー、ブザー、ローカルリレー、ラウドスピーカー、強制解体アラートボタンなど。
周辺機器:ドアオープンボタン、消防アラートシグナル、ドアマグネット、ドアベル、アラート、Wiegandカードリーダー、ネットワークリレー、Wiegandドアオープンコントローラーなど。
SDKの「ドアアクセス機能」のサポート範囲は、ハードウェアデバイスによって異なります(次の表ではハードウェアの観点ではなく、SDKでの対応の観点でのみ記載しています)。
本ドキュメントでは、説明のために以下のように定義しています。
Passアクセスコントロール機能:PassとThunderシリーズ(上記デバイスモデル)のその他のデバイスで使用されるアクセスコントロール機能のこと。
なお、アクセスコントロール機能の使用について説明する場合、以下のように異なるデバイスにおける違いにご注意ください。
「QRコード認証」とは、QRコードの内容を解析する機能のことで、QRコードの認証が必要なシナリオで使用されます。SDKには2つのコーデックライブラリZXingとZBarが組み込まれており、使用時に選択できます。
「顔の温度検知」とは、顔認証機能と温度検知モジュールを介して、顔および熱力学線図のデータをアルゴリズムにより処理し、顔の温度を取得することです。現在サポートされている温度検知モジュールは、Arrowモジュール、Guide120モジュール、およびGuide256モジュールです。なお顔の温度値は、周囲の温度、モジュールのモデル、使用方法などによって異なる場合がありますのでご注意ください。
カメラによる撮影について説明するために、次のように定義します。
水平方向の画像: 撮影した写真の幅が、高さよりも広いことを意味します。
垂直方向の画像: 撮影した写真の幅が、高さよりも狭いことを意味します。
画像のミラーリング: カメラ画像において、被写体の実際の移動方向と写真の表示方向が逆になっていることを示します。人が左方向に歩いている場合、プレビュー画面では右に向かって進んでいるように表示されます。
次の表では、特定のデバイスモデルに対応する顔カメラの画像の特性を示します。
SDKは、.aarパッケージ、.soファイル、アルゴリズムモデルファイル、サンプルプロジェクト、開発ドキュメントを含むzip形式のパッケージファイルとして提供されます。SDKは次の環境で動作します。
次の図のように、.aarファイルをproject libsフォルダにコピーします。
次の図のように、デバイスタイプに応じて、zipパッケージのmodel fileフォルダ内の対応するモデルファイルを選択します。
zipパッケージ内の対応するモデルファイルを、実際のプロジェクトのassetsおよびmodelフォルダにコピーします。
次の図に示すように、デバイスタイプに応じて、パッケージのso libraryフォルダ内の対応するsoライブラリを選択します。
次に、フォルダ内のsoを/src/main/jniLibsフォルダにコピーします。最終のフォルダ構造は以下の図になります。
build.gradleファイルに次の設定を加えます。
AndroidManifest.xml ファイルに、次のように権限の宣言を追加します。
次のサンプル画像のように、.lic形式のライセンスファイルをassetsフォルダにコピーします(サンプル内には、テストにのみ使用できるデバッグ用のライセンスファイルが提供されています。正式な本番環境用には、別途ライセンスファイルを申請する必要があります)。
サンプルプロジェクトは、Android Studioで開くことができます。ドキュメントに従って、aar、model、soやその他のファイルを対応するフォルダにコピーし、PassシリーズやThunderシリーズのハードウェアデバイスでデバッグを実行してください。サンプルプロジェクトは、主に1:N認証、1:1照合、マスク検知、アクセスコントロール、その他の機能の使用方法を示します。
本セクションでは、SDKの主要なAPIとプロセスの使用方法を中心に説明します。
SDKを使用する前に、aar、model、so、.licの各ファイルが正しく保存され、設定されていることを確認します。ファイルの準備が完了したら、次の手順で初期化を行います。
アクティベーションは初期化に成功した後に行うことができます。
通常、SDKのアクティベーション成功後は、アプリケーションを終了する前に解放操作を実行する必要はありません。具体的にアプリケーションを再起動する必要がある場合、次のようにアプリケーションの終了時にSDKリソースを解放することができます。
SDKのCameraTextureViewおよびCameraManagerクラスを使用すると、カメラのライフサイクルや関連するプレビュー操作を簡単に管理することができます。以下は、顔カメラ(RGB)を使用した使い方を紹介した例です。CameraTextureViewは、次のようにレイアウトファイルで使用できます(全画面プレビュー)。
次にカメラの初期化を行います。詳細については、下記コードをご参照ください。プレビュー解像度は1280✕720ピクセルを推奨します。
次のように、カメラのライフサイクルを制御します。
サーモカメラの関連インターフェースを呼び出す前に、サーモカメラのインスタンスを取得してください。SDKではサーマルイメージングシステムの様々なインスタンスを取得するために、次のようにTemperatureCameraFactoryが提供されています。
サーマルイメージングシステムの設定を初期化します。
熱力学線図、および温度データのコールバックを追加します。
サーマルイメージングシステムのステータスを部分的に取得します。
サーマルイメージングシステムのライフサイクルを管理します。
SDKでは上記に加えて、サーマルイメージングシステムを操作するために多数の方法が提供されています。次の操作方法は一例です。
顔認証のビジネスプロセスには、カメラの管理、顔特徴量ライブラリの作成、生体検知、顔比較、結果の処理などのいくつかのステップがあります。ここでは「1:N認証」を例に、SDKの使用方法を説明します。
1:N認証では顔フィーチャーを検索するための「データベース」として、顔フィーチャーライブラリが必要です。そのため、処理を開始する前にライブラリを構築する必要があります。SDKには顔フィーチャーライブラリを作成するためのFeatureManagerProxyが用意されており、次のように簡単に利用することができます。
N個の顔フィーチャー(最大は5W)をフィーチャーライブラリに挿入できます。構築が完了したら、人物認証プロセスの際にIdentify Managerは'FeatureManagerProxy'の挿入された顔フィーチャーデータを自動的に取得し、認証を行います。
「カメラの呼び出し」を参照して、RGBカメラをオンにします。生体検知が有効になっている場合はIRカメラを再度オンにし、プレビューデータが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:N認証」処理の場合、Identify ManagerはVerifyModeEnum.MODE_1_Nモードを使用します。顔の「1:1認証」処理の場合、次に示す方法で「1:1認証」モードに切り替える必要があります。
リモートサーバー上で認証処理を実行する場合は、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アクセスコントロール機能を使用するための設定は、DoorDeviceAccessProxy.setConfig(config)で変更できます。
Passアクセスコントロール機能の主要なカテゴリ:
DoorDeviceAccessProxy:グローバルな初期化、リソースの解放、設定の使用、ドアのオープンコントロールなどを行います。
DoorAccessConfig:ドアアクセス設定のカテゴリです。
PassDoorDeviceAccessProxy:ドアチャイム、RS485 プロトコル、アラート、盗難アラートライトなど、PassやThunderシリーズデバイスで利用可能なアクセスコントロール機能を管理します。
「ローカルリレー」は、独自のアクセサリが付属したハードウェアデバイスで、ドアのオープンコントロールやドアオープン時間の設定に使用されます(ドアを開いて数秒後に閉じるなど)。本機能をサポートするハードウェアモデルは、PassとThunderシリーズです。
Passアクセスコントロール機能の使い方は次のとおりです。
DoorDeviceAccessProxy.openDoor()は、設定されたドアオープンの方法とクローズを遅延させる時間を自動的に取得し、自動的にドアオープン操作を実行します。利用者は具体的なオープン方法を気にする必要はなく、メソッドによって自動的に制御されます。次に示すネットワークリレーやWiegandコントローラーによるドアオープンの場合も同様です。
特にクローズ遅延時間を30秒を超えて設定する必要がある場合、次の方法でドアを開く必要があります。
ローカルリレーをすぐに閉じる必要がある場合、手動で次のメソッドを呼び出せます。
「ネットワークリレー」は周辺機器です。ハードウェアデバイスはネットワークを介してネットワークリレーに接続し、ネットワークリレーにドアのオープンコマンドを送信することでドアオープン時間やクローズ遅延時間を制御します。本機能に対応するハードウェアモデルは、PassとThunderシリーズです。
Passアクセスコントロール機能は、次のように使用します。
「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プロトコルを使用してICカードの番号を読み取ります。Wiegand 26、Wiegand 32、およびWiegand 34に対応しています。本機能に対応するハードウェアデバイスのモデルは、PassとThunderシリーズです。Passアクセスコントロール機能の使い方は次のとおりです。
設定の完了後、Wiegand読み取りコールバックをlistenすることができます。コードの使い方は次のとおりです。
「GPIO 入力デバイス」は、GPIOポートを介して接続されたハードウェアデバイスにGPIO信号を送信するデバイスの一種であり、ドアオープンボタン、消防アラートシグナル、ドアマグネットなどが含まれます。使用時には、ハードウェアデバイスが受信側、GPIO入力デバイスが送信側となり、GPIO入力ポートを介して通信します。本機能に対応するハードウェアデバイスのモデルは、PassとThunderシリーズです。
Passアクセスコントロール機能は、BポートとCポートに分かれたデュアルGPIOに対応しています。使用前に関連するアクセスコントロールの設定を次のように行います。
設定の完了後、関連する信号入力をlistenすることができます。コードの使い方は次のとおりです。
「GPIO出力デバイス」は、ドアベルやアラートなどのハードウェアデバイスからGPIO信号を受信するために、GPIO出力ポートを介して接続された周辺機器を指します。使用時には、ハードウェアデバイスが送信側、GPIO出力デバイスが受信側となり、両者はGPIO出力ポートを介して通信します。本機能に対応するハードウェアデバイスのモデルは、PassとThunderシリーズです。
使用前に、関連するアクセスコントロールの設定を次のように行います。
アラートの使用時には、具体的に手動でアラートを制御したり、オフにしたりする必要があります。コードの使い方は次のとおりです。
「照明コントロール」とはRGBフィルライト、IRフィルライト、スクリーンバックライトなど、主にハードウェアデバイスの照明アクセサリを制御します。
IRフィルライト
「IRフィルライト」はIRカメラモジュールの一部で、IR画像を向上させるために使用されます。フィルライトの耐用年数を延ばすために、使用していないときは電源を切るように動的に制御できます。本機能に対応するハードウェアデバイスのモデルは、PassとThunderシリーズです。コードの使い方は次のとおりです。
スクリーンバックライト
「スクリーンバックライト」はハードウェアデバイスに付属するアクセサリで、ソフトウェアアプリケーションが休止状態(ソフトウェアアプリケーションが使われていない深夜帯など)のときにスクリーンライトを消すことで、ハードウェア機器の耐用年数を延ばし、エネルギー消費を抑えることができます。本機能に対応するハードウェアデバイスのモデルは、PassとThunderシリーズです。コードの使い方は次のとおりです。
「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コードを認識することができる機能です。使用する際にはエンコードおよびデコードライブラリとしてZXingまたはZBarを選択できます。エンドツーサイドでのデバイス認証に適していて、より高速なZBarの使用を推奨します。使用方法については,サンプルコードをご覧ください。簡単な使い方は次のとおりです。
「ドアアクセス機能」 -主に「ドアアクセスデバイス」を使用することを指し、ローカルリレーによるドアのオープン、Wiegandコントローラーによるドアのオープン、スクリーンフィルライトの消灯、ドアベルの鳴動制御、距離センサーによる人体の距離検知などの機能を含む。
✓
✓
✓
SenseThunderE
✓
✓
✓
✓
✓
SenseThunderAir
✓
✓
✓
✓
✓
SenseThunderE
✓
✓
✓
✓
SenseThunderAir
✓
✓
✓
✓
✓
✓
✓
SenseThunderE
×
×
✓
✓
✓
SenseThunderAir
×
×
✓
✓
✓
×
✓
×
SenseThunderE
×
✓
✓
✓
×
SenseThunderAir
×
✓
✓
✓
×
SenseThunerE-Mini
Thunder シリーズ
RK3399-arm64-v8a
Android 7.1
RGB 顔 + IR + サーモ
SenseThunderAir
Thunder シリーズ
RK3399-arm64-v8a
Android 7.1
RGB 顔 + IR + サーモ
左向き
いいえ
SenseThunderAir
垂直方向の画像
左向き
いいえ
バージョン2.0.0
2021/02/05
カメラの呼び出しプロセス、およびサーモカメラの呼び出しプロセスの紹介を追加。顔の温度検知機能に関連するインターフェースの記載を更新
バージョン2.0.0
2021/04/10
デバイス名を修正
バージョン2.1.0
2021/04/30
誤植を修正
Package名を修正
機種別の温度検知バージョンを追記
デバイスモデル
オープンボタン
消防アラートシグナル
ドアセンサー
ドアベル
アラート
SensePass
✓
✓
✓
✓
✓
SenseThunderE-mini
✓
デバイスモデル
Wiegandリーダー
Wiegandコントローラー
ローカルリレー
ネットワークリレー
SensePass
✓
✓
✓
✓
SenseThunderE-mini
✓
✓
✓
デバイスモデル
ブザー
赤外線人感センサー
距離センサー
照明センサー
IRフィルライト
SensePass
✓
×
✓
✓
✓
SenseThunderE-mini
✓
デバイスモデル
RGBフィルライト
スクリーンバックライト
スピーカー
盗難アラートボタン
NFCリーダー
SensePass
×
✓
×
✓
×
SenseThunderE-mini
×
デバイスモデル
デバイスカテゴリ
プラットフォーム
Android バージョン
カメラタイプ
SensePass
Pass シリーズ
RK3399-arm64-v8a
Android 7.1
RGB 顔 + IR
SenseThunderE
Thunder シリーズ
RK3399-arm64-v8a
Android 7.1
デバイスモデル
撮影方向
顔の方向
画像のミラーリング
SensePass
垂直方向の画像
左向き
いいえ
SenseThunderE
垂直方向の画像
左向き
いいえ
SenseThunderE-Mini
環境項目
説明
デバイス
SensePass, SenseThunderE, SenseThunderE-Mini, SenseThunderAir
Android バージョン
Android 7.1以上のバージョンと互換性があります。
SDKのアクティベーション
インテリジェントハードウェアでアプリケーションを動作させるためには、承認された.lic形式のライセンスファイルを申請する必要があります。
IDE 環境
Android Studio 3.5.3 以上のバージョン
デバイスタイプ
対応するモデル
Pass シリーズ
model フォルダのルートにある .model ファイル、および pass_extフォルダ内のすべてのファイル
Thunder シリーズ
model フォルダのルートにある .model ファイル、および pass_extフォルダ内のすべてのファイル
デバイスタイプ
対応する so
Pass シリーズ
Pass-series-rk3399-general(arm64-v8a のみ)
Thunder シリーズ
Pass-series-rk3399-general(arm64-v8a のみ)

✓
✓
×
✓
RGB 顔 + IR + サーモ
垂直方向の画像
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_N);
//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;
}
};
// ご注意: デバイスによってアルゴリズムのバージョンが異なります。
// 現在SenseThunderEがサポートするのは TempMeasureVersion.TempMeasure_1_2_0、TempMeasureVersion.TempMeasure_1_5_0、TempMeasureVersion.TempMeasure_1_6_0、TempMeasureVersion.TempMeasure_1_7_0 とする
// SenseThunderAirがサポートするのは TempMeasureVersion.TempMeasure_1_7_0、TempMeasureVersion.TempMeasure_1_8_0 とする
// SenseThunderE-miniがサポートするのは TempMeasureVersion.TempMeasure_1_5_0、TempMeasureVersion.TempMeasure_1_11_0、TempMeasureVersion.TempMeasure_1_10_0、TempMeasureVersion.TempMeasure_1_3_0 とする
// 詳しくは、TemperatureMeasureVersionUtils.getTempMeasureVersionByDevice()での実行をご参照ください。
TempMeasureVersion algorithmVersion = TemperatureMeasureVersionUtils.getTempMeasureVersionByDevice();
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="thunder.wksample"
android:sharedUserId="android.uid.system">
</manifest>QRCodeDecoderProxy qRCodeDecoder = new QRCodeDecoderProxy(new ZBarDecoderImpl());
// previewData は、カメラのプレビューフレームデータです
qRCodeDecoder.decodeQRCode(previewData,1280, 720);PassとThunderシリーズのドアアクセスデバイスをコントロール
制御デバイスのGPIOポートやシリアルポートなどの通信デバイスの全体的な初期化、構成、およびリソース解放操作を制御し、特定のドアオープン操作を実行
ドアアクセス構成を取得
パラメータ
なし
戻り値
例外
なし
デバイスタイプによってデバイス引数を取得
パラメータ
戻り値
例外
なし
ドアオープンモードを変更
パラメータ
戻り値
なし
例外
なし
リレードアを閉じます
パラメータ
なし
戻り値
なし
例外
なし
シリアルポートナンバーなしの初期化。[void init(String uartName)]\を参照
パラメータ
なし
戻り値
なし
例外
なし
シリアルポートナンバーがある場合の初期化
パラメータ
戻り値
なし
例外
なし
ドアをオープン。設定したドアオープンモードに従いオープンを実行
パラメータ
戻り値
なし
例外
なし
リソースを解放
パラメータ
なし
戻り値
なし
例外
なし
ドアアクセス構成を設定
パラメータ
戻り値
なし
例外
なし
カード読み取りコールバックを設定
パラメータ
戻り値
なし
例外
なし
カスタムWiegandデータインタフェースコールバックを設定
パラメータ
戻り値
なし
例外
なし
Wiegandカードナンバー解析方式を設定
パラメータ
戻り値
なし
例外
なし
SensePassとSenseThunderシリーズの一部ドアアクセスデバイスをコントロール
バックライトをオフ
パラメータ
なし
戻り値
なし
例外
なし
RS485を有効
パラメータ
戻り値
なし
例外
なし
RS485を有効
パラメータ
戻り値
なし
例外
なし
RS485を有効
パラメータ
戻り値
なし
例外
なし
バックライトをオン
パラメータ
なし
戻り値
なし
例外
なし
ブザーをオン(SensePassとSenseThunderE-miniにのみ対応)
パラメータ
なし
戻り値
なし
例外
なし
ドアベルを押す
パラメータ
戻り値
なし
例外
なし
アラートをオンにするためにアラートベルを押下
パラメータ
なし
戻り値
なし
例外
なし
アラートベルを解除
パラメータ
なし
戻り値
なし
例外
なし
ブザーをオフに(SensePass020にのみサポート)
パラメータ
なし
戻り値
なし
例外
なし
ドアステータスのコールバックを設定し、ドアの開閉ステータスをモニタリング
パラメータ
戻り値
なし
例外
なし
ドアボタンのクリック状態のリスナー
パラメータ
戻り値
なし
例外
なし
Receive 消防シグナルのリスナー
パラメータ
戻り値
なし
例外
なし
RS485でデータ送信
パラメータ
戻り値
なし
例外
なし
IRライトをオン。SensePassとSenseThunderシリーズをサポート
パラメータ
なし
戻り値
なし
例外
なし
IRライトをオフに。SensePassとSenseThunderシリーズをサポート
パラメータ
なし
戻り値
なし
例外
なし
ドアアクセス構成
プロパティの説明
ドアアクセスデバイス
メソッドの説明
WIEGANDデバイスカードリーダーのコールバック
メソッドの説明
Wiegandパススルーデータ受信のコールバック
メソッドの説明
カスタマイズされた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出力ポート
デバイスを廃棄




人間の顔1:1 比較、ローカル1:N 識別、サーバ1:N識別、マスク検知にサポート
識別エンジンを操作する入り口
個人の識別フィーチャーを設定
パラメータ
戻り値
例外
なし
画像構成を取得
パラメータ
なし
戻り値
ImageConfig
例外
なし
識別エンジンのワークフロー構成を取得
パラメータ
なし
戻り値
IdentifyConfig
例外
なし
しきい値構成を取得
パラメータ
なし
戻り値
ThresholdConfig
例外
なし
顔フィルターインターセプターを追加
パラメータ
戻り値
なし
例外
なし
RGBデータをハンドル
パラメータ
戻り値
なし
例外
なし
IRデータをハンドル
パラメータ
戻り値
なし
例外
なし
ヒートマップと関連データをハンドル
パラメータ
戻り値
なし
例外
なし
初期化
パラメータ
戻り値
なし
例外
なし
顔認識を中止
パラメータ
なし
戻り値
なし
例外
なし
顔認識を回復
パラメータ
なし
戻り値
なし
例外
なし
リソースを解放
パラメータ
なし
戻り値
なし
例外
なし
顔フィルターインターセプターを削除
パラメータ
戻り値
なし
例外
なし
設定した個人の識別フィーチャーを削除
パラメータ
なし
戻り値
なし
例外
なし
識別を開始
パラメータ
なし
戻り値
なし
例外
なし
識別を停止
パラメータ
なし
戻り値
なし
例外
なし
識別結果コールバックを設定
パラメータ
戻り値
なし
例外
なし
識別エンジンの検証モードを設定
パラメータ
戻り値
なし
例外
なし
しきい値構成を設定
パラメータ
戻り値
なし
例外
なし
識別エンジンワークフロー構成を設定
パラメータ
戻り値
なし
例外
なし
サーバの検証ロジックを設定
パラメータ
戻り値
なし
例外
なし
温度検知アルゴリズムの動作を設定
パラメータ
戻り値
なし
例外
なし
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
メソッドの説明
プロパティの説明
プロパティの説明
メソッドの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
メソッドの説明
プロパティの説明
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.1.0
age
int
年齢を推測
なし
2.1.0
isMale
boolean
性別を推測
なし
2.1.0
isHasMustache
boolean
ひげがあるかを判定
なし
2.1.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
AttributeResult
AttributeResult
顔属性の結果
なし
2.1.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.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
MQTTインターフェースの実装
メンバー関数
説明
導入バージョン
void connectMqtt(IMqttActionListener listener, IConnectionLost connectionLost, boolean useTokenConnect, SocketFactory socketFactory)
MQTT接続
2.0.0
MQTT接続
パラメータ
戻り値
なし
例外
なし
MQTT接続を切断
パラメータ
戻り値
なし
例外
なし
あるグループでの登録者リストを取得
パラメータ
戻り値
なし
例外
なし
デバイスと登録者グループの変更コールバックを登録
パラメータ
戻り値
なし
例外
なし
登録者グループの登録者変更コールバックを登録
パラメータ
戻り値
なし
例外
なし
アラートステータス変更コールバックを登録
パラメータ
戻り値
なし
例外
なし
アクセスルール変更コールバックを登録
パラメータ
戻り値
なし
例外
なし
APPとROMアップデートコールバックを登録
パラメータ
戻り値
なし
例外
なし
デバイスステータスコールバックを登録
パラメータ
戻り値
なし
例外
なし
デバイス構成変更コールバックを登録
パラメータ
戻り値
なし
例外
なし
デバイスサーバエンドの通知配信構コールバックを登録
パラメータ
戻り値
なし
例外
なし
デバイスのドア常時開/閉タイムテーブルの配信コールバックを登録
パラメータ
戻り値
なし
例外
なし
デバイスと登録者グループの変更コールバックの登録を取り消す
パラメータ
なし
戻り値
なし
例外
なし
登録者グループの登録者変更コールバックの登録を取り消す
パラメータ
戻り値
なし
例外
なし
あるグループでの登録者リストの登録を取り消す
パラメータ
戻り値
なし
例外
なし
アラートステータス変更コールバックの登録を取り消す
パラメータ
なし
戻り値
なし
例外
なし
アクセスルール変更コールバックの登録を取り消す
パラメータ
なし
戻り値
なし
例外
なし
APPとROMアップデートコールバックの登録を取り消す
パラメータ
なし
戻り値
なし
例外
なし
デバイスステータスコールバックの登録を取り消す
パラメータ
なし
戻り値
なし
例外
なし
デバイス構成変更コールバックの登録を取り消す
パラメータ
なし
戻り値
なし
例外
なし
デバイスサーバエンドの通知配信構コールバック登録を取り消す
パラメータ
なし
戻り値
なし
例外
なし
デバイスのドア常時開/閉タイムテーブルの配信コールバック登録を取り消す
パラメータ
なし
戻り値
なし
例外
なし
プロパティの説明
プロパティの説明
プロパティの説明
メソッドの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
プロパティの説明
メソッドの説明
メソッドの説明
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
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
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
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
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
検証