スマートヘルメットとは何ですか?
スマートセーフティヘルメットは、GB28181仕様に基づく先進技術を統合した一種の安全ヘルメットで、安全保護だけでなく、鉄道検査、電力、石油化学などの高リスク産業のオペレータに適しています。消防や救助などの緊急事態に。
スマートヘルメットには通常、次の機能があります。
- リアルタイム測位: 内蔵の GPS 測位モジュールは、オペレーターの位置をリアルタイムで特定し、迷子や行方不明を防ぐために適時に指令センターに報告できます。
- 無線通信: 内蔵無線通信モジュールは指令センターと通信し、オペレーターと指令センター間の連絡と調整を容易にします。
- 衝突検出: 内蔵の衝突検出モジュールは、オペレーターの頭部への衝撃をリアルタイムで検出し、警報または遭難信号を適時に送信します。
- 温度検出:内蔵の温度検出モジュールは作業環境の温度をリアルタイムで検出し、高温や熱中症などの安全上の問題を防ぎます。
- 照明機能: 内蔵の LED ライトにより、オペレーターが夜間や低照度環境での作業を容易にする照明を提供します。
- 情報表示:ヘルメットにLCD画面またはLED表示画面が設置されており、オペレーターの位置、通信状態、温度などの情報を表示できます。
技術的な実現
初期のスマート ヘルメットは組み込み Linux に基づいています。この技術の発展により、使いやすさなどを考慮して、現在の主流のスマート ヘルメットのほとんどは Android プラットフォームに実装されています。この記事では Android プラットフォームを例に挙げて説明します。次に、スマートヘルメットがサポートする必要があるコア機能を紹介します。
まず技術的なアーキテクチャについて話しましょう。
機能設計:
- [ビデオ形式] H.264/H.265 (Android H.265 ハードコード)。
- [音声フォーマット] G.711 A法、AAC;
- 【音量調整】Androidプラットフォーム取得端末はリアルタイムの音量調整をサポートしています。
- [H.264 ハードコーディング] 特定のモデルに対して H.264 ハードコーディングをサポートします。
- [H.265 ハードコーディング] 特定のモデルに対して H.265 ハードコーディングをサポートします。
- [ソフトおよびハードコーディングされたパラメーター構成] ゴップ間隔、フレーム レート、ビット レート設定をサポートします。
- 【ソフトエンコードパラメータ設定】ソフトエンコードプロファイル、ソフトエンコード速度、可変ビットレート設定をサポート。
- 純粋なビデオ、オーディオ、およびビデオ PS パッケージの送信をサポートします。
- RTP OVER UDP および RTP OVER TCP パッシブ モード (TCP メディア ストリーミング クライアント) をサポートします。
- シグナリング チャネル ネットワーク伝送プロトコル TCP/UDP 設定をサポートします。
- 登録、キャンセル、登録更新、登録有効期間設定をサポートします。
- サポート機器ディレクトリのクエリ応答。
- ハートビートメカニズムをサポートし、ハートビート間隔、ハートビート検出回数の設定をサポートします。
- モバイル デバイスの位置情報 (MobilePosition) のサブスクリプションと通知をサポートします。
- 音声ブロードキャストをサポートします。
- 音声インターコムをサポートします。
- PTZ 制御とプリセット位置クエリをサポートします。
- [リアルタイム透かし] は、動的なテキスト透かし、png 透かしをサポートします。
- [ミラー] Android プラットフォームは、フロントカメラのリアルタイムミラーリング機能をサポートしています。
- [リアルタイムミュート] リアルタイムミュート/ミュート解除をサポートします。
- [リアルタイムスナップショット] リアルタイムスナップショットをサポートします。
- [ノイズリダクション] ノイズリダクション処理、自動ゲイン、環境音や携帯電話の干渉によるVAD検出をサポート。
- [外部エンコード前のビデオデータドッキング] YUVデータドッキングをサポートします。
- [外部エンコード前のオーディオデータドッキング] PCMドッキングをサポート。
- [外部エンコード後のビデオデータドッキング] 外部 H.264 データドッキングをサポートします。
- 【外部エンコード後の音声データドッキング】外部AACデータドッキング。
- 【拡張録音機能】録音モジュールとの併用、録音関連機能をサポートします。
Daniu Live SDK の Android プラットフォーム GB28181 デバイス アクセス モジュールを例にとります。GB28181 スマート ヘルメットに接続する必要がある場合は、シグナリングとメディア データの 2 つの部分に注意を払う必要があります。一般的な設計アイデアは次のとおりです。
GBSIPAgentListener は、主に GB28181 登録、ハートビート、DevicePosition などに関連しています。たとえば、登録成功、登録タイムアウト、登録ネットワーク トランスポート層エラー、異常なハートビート、デバイス位置要求処理などです。
public interface GBSIPAgentListener
{
/*注册成功
* @param dateString: 服务器日期,用来校准设备端时间,用户自行决定是否校准设备时间
*/
void ntsRegisterOK(String dateString);
/*
*注册超时
*/
void ntsRegisterTimeout();
/*
*注册网络传输层异常
*/
void ntsRegisterTransportError(String errorInfo);
/*
*心跳达到异常次数
*/
void ntsOnHeartBeatException(int exceptionCount, String lastExceptionInfo);
/*
* 设备位置请求, 这个主要用在移动设备位置订阅上
* @param interval 请求间隔, 单位是毫秒
*/
void ntsOnDevicePositionRequest(String deviceId, int interval);
}
GBSIPAgentPlayListener は主に GB28181 の Invite、Ack、Bye などを処理します。
public interface GBSIPAgentPlayListener {
/*
*收到s=Play的实时视音频点播
*/
void ntsOnInvitePlay(String deviceId, SessionDescription sessionDescription);
/*
*发送play invite response 异常
*/
void ntsOnPlayInviteResponseException(String deviceId, int statusCode, String errorInfo);
/*
* 收到CANCEL play INVITE请求
*/
void ntsOnCancelPlay(String deviceId);
/*
* 收到Ack
*/
void ntsOnAckPlay(String deviceId);
/*
* 收到Bye
*/
void ntsOnByePlay(String deviceId);
/*
* 不是在收到BYE Message情况下, 终止Play
*/
void ntsOnTerminatePlay(String deviceId);
/*
* Play会话对应的对话终止, 一般不会出发这个回调,目前只有在响应了200K, 但在64*T1时间后还没收到ACK,才可能会出发
收到这个, 请做相关清理处理
*/
void ntsOnPlayDialogTerminated(String deviceId);
}
GBSIPAgentAudioBroadcastListener は主に GB28181 音声ブロードキャスト処理に関連しています。音声ブロードキャスト関連のニーズがある場合は、デモ例を参照して次のことを実現できます。
public interface GBSIPAgentAudioBroadcastListener {
/*
*收到语音广播通知
*/
void ntsOnNotifyBroadcastCommand(String fromUserName, String fromUserNameAtDomain, String sn, String sourceID, String targetID);
/*
*需要准备接受语音广播的SDP内容
*/
void ntsOnAudioBroadcast(String commandFromUserName, String commandFromUserNameAtDomain, String sourceID, String targetID);
/*
*音频广播, 发送Invite请求异常
*/
void ntsOnInviteAudioBroadcastException(String sourceID, String targetID, String errorInfo);
/*
*音频广播, 等待Invite响应超时
*/
void ntsOnInviteAudioBroadcastTimeout(String sourceID, String targetID);
/*
*音频广播, 收到Invite消息最终响应
*/
void ntsOnInviteAudioBroadcastResponse(String sourceID, String targetID, int statusCode, SessionDescription sessionDescription);
/*
* 音频广播, 收到BYE Message
*/
void ntsOnByeAudioBroadcast(String sourceID, String targetID);
/*
* 不是在收到BYE Message情况下, 终止音频广播
*/
void ntsOnTerminateAudioBroadcast(String sourceID, String targetID);
}
GBSIPAgentDeviceControlListener は主に、リモート スタートや PTZ 制御などの GB28181 デバイス制御に関連しています。
public interface GBSIPAgentDeviceControlListener {
/*
* 收到远程启动控制命令
*/
void ntsOnDeviceControlTeleBootCommand(String deviceId, String teleBootValue);
/*
* 云台控制
*/
void ntsOnDeviceControlPTZCmd(String deviceId, String typeValue);
}
GBSIPAgentQueryCommandListener は主に、プリセット位置クエリなどの GB28181 クエリ コマンド用です。
public interface GBSIPAgentQueryCommandListener {
/*
* 设备预置位查询
*/
void ntsOnDevicePresetQueryCommand(String fromUserName, String fromUserNameAtDomain, String sn, String deviceId);
}
GBSIPAgentTalkListener は主に GB28181 音声インターコムを処理します。
public interface GBSIPAgentTalkListener {
/*
*收到s=Talk 语音对讲
*/
void ntsOnInviteTalk(String deviceId, SessionDescription sessionDescription);
/*
*发送talk invite response 异常
*/
void ntsOnTalkInviteResponseException(String deviceId, int statusCode, String errorInfo);
/*
* 收到CANCEL Talk INVITE请求
*/
void ntsOnCancelTalk(String deviceId);
/*
* 收到Ack
*/
void ntsOnAckTalk(String deviceId);
/*
* 收到Bye
*/
void ntsOnByeTalk(String deviceId);
/*
* 不是在收到BYE Message情况下, 终止Talk
*/
void ntsOnTerminateTalk(String deviceId);
/*
* Talk会话对应的对话终止, 一般不会出发这个回调,目前只有在响应了200K, 但在64*T1时间后还没收到ACK,才可能会出发
收到这个, 请做相关清理处理
*/
void ntsOnTalkDialogTerminated(String deviceId);
}
要約する
シグナリングの相互作用に加えて、メディア データのエンコードと送信についてはここでは説明しません。GB28181 スマートヘルメットは、さまざまな先進技術を統合したヘルメットで、オペレーターにリアルタイム測位、無線通信、衝突検知、温度検知、照明機能、情報表示などの効率を提供します。