GB28181 スマート ヘルメット ソリューションの研究と技術的実現

スマートヘルメットとは何ですか?

スマートセーフティヘルメットは、GB28181仕様に基づく先進技術を統合した一種の安全ヘルメットで、安全保護だけでなく、鉄道検査、電力、石油化学などの高リスク産業のオペレータに適しています。消防や救助などの緊急事態に。

スマートヘルメットには通常、次の機能があります。

  1. リアルタイム測位: 内蔵の GPS 測位モジュールは、オペレーターの位置をリアルタイムで特定し、迷子や行方不明を防ぐために適時に指令センターに報告できます。
  2. 無線通信: 内蔵無線通信モジュールは指令センターと通信し、オペレーターと指令センター間の連絡と調整を容易にします。
  3. 衝突検出: 内蔵の衝突検出モジュールは、オペレーターの頭部への衝撃をリアルタイムで検出し、警報または遭難信号を適時に送信します。
  4. 温度検出:内蔵の温度検出モジュールは作業環境の温度をリアルタイムで検出し、高温や熱中症などの安全上の問題を防ぎます。
  5. 照明機能: 内蔵の LED ライトにより、オペレーターが夜間や低照度環境での作業を容易にする照明を提供します。
  6. 情報表示:ヘルメットに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 スマートヘルメットは、さまざまな先進技術を統合したヘルメットで、オペレーターにリアルタイム測位、無線通信、衝突検知、温度検知、照明機能、情報表示などの効率を提供します。

おすすめ

転載: blog.csdn.net/renhui1112/article/details/132093800