SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所

WebRTC(PeerJS)で遠隔作業支援システムを作る(実装編1)

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所 第16回(中編)

スマートグラスのモジュール

 device.coffeeでは、スマートグラスの画面操作をハンドリングするロジックを記述します。

 画面コンポーネントを操作するコールバック関数とボタンクリック時の処理を定義した後、DeviceClassの各種イベント処理へコールバック関数を設定し、MediaStreamの初期化処理を呼び出します。

device.coffee
$ ->
  dc = new ns.DeviceClass() # DeviceClassのインスタンス化
 
  ## 画面コンポーネントを操作するコールバック関数の定義
  ...
  ## ボタンクリック時の処理定義
  ...
  ## DeviceClassの各種イベント処理へ画面コンポーネントを操作するコールバック関数を設定
  ...
  ## MediaStreamの初期化処理を呼び出す
  ...

 "$ ->" というのはCoffeeScriptでjQueryを用いる際の定石で、以下のよく見るコードと同様、Documentのロードが完了後に記述した処理が実行されることになります。

device.js相当(device.coffeeから実際にコンパイルされたJavaScriptとは異なります)
$(function() {
  ...
});

監視端末のモジュール

 monitor.coffeeでは、監視端末の画面操作をハンドリングするロジックを記述します。

 device.coffeeとほぼ同様の構成ですが、キャプチャした画面にフリーハンドで指示を描く機能を実装するために、各種ローカル変数の定義や画面キャプチャ処理、マウス操作に追随して線を描く処理などが追加実装されています。

monitor.coffee
$ ->
  mc = new ns.MonitorClass() # MonitorClassのインスタンス化
 
  ## ローカル変数の定義
  ...
  ## 画面コンポーネントを操作するコールバック関数の定義
  ...
  ## ボタンクリック時の処理定義
  ...
  ## カメラ映像のキャプチャとフリーハンドでの指示を描く処理
  ...
  ## MonitorClassの各種イベント処理へ画面コンポーネントを操作するコールバック関数を設定
  ...
  ## MediaStreamの初期化処理を呼び出す
  ...

1. 作業準備の処理フロー

 それでは遠隔作業支援システムの処理フローと実装をステップを追って確認しましょう。作業準備として行うのは、PeerJSの初期化とMediaStream取得までです。

1-1. HTMLとJavaScriptの取得

 前回構築したexpressより、必要なHTMLやJavaScript、CSSを取得します。

HTMLとJavaScriptの取得
HTMLとJavaScriptの取得

 スマートグラスと監視端末それぞれで行う処理で前後関係はありませんので、お互い非同期に実行して構いません。

次のページ
実装編2では

この記事は参考になりましたか?

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所連載記事一覧

もっと読む

この記事の著者

松井 暢之(TIS株式会社)(マツイ ノブユキ)

TIS株式会社 コーポレート本部 戦略技術センターに所属。アーキテクチャ設計やデータモデル策定、フレームワーク構築などバックエンド側のアーキテクトとしてプロジェクトに従事していたが、現部門への異動を契機に戦略技術の検証や新規サービスの事業企画に軸足を移す。近頃はなぜか、インフラ・運用のパターン化と自動化を目...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/8017 2014/09/26 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー