【技術】画像表示アプリ

外部から受信されたデータにより表示内容を変更するアプリを作成しました。
外部との接続はUDP通信。受信時の内容は、JSONコードになります。

1.開発環境・開発言語

 C#
 Visual Studio2017

2.開発期間

 3週間

3.開発時に注意した点

1, 受信データの時間の変更による視認者の状態変化を正確に把握する為、
画像表示時間に正確性を要求されていました。
人間が判断できる最小時間を10msと設定し、
表示時間の誤差をそれ以内に納まるようにプログラムしました。

処理方法は、SystemTimersTimerで画像を表示させるタイミングを
作るようにしました。
実測方法は、プログラムにStopwatchを組み込んでログで確認し、
±10ms以内で実現していることを確認しました。

2, 画面拡張で接続し、サブモニターに画像を表示させたいとの依頼に対応しました。
サブモニターに何を使用するかは、
プロジェクター使用の可能性など複数候補があり、解像度が分からなかった為、
まずディスプレイ(サブモニター)の解像度を取得し、
解像度に合う画像サイズに変更してから表示させる処理を行うとうまく表示できました。
  
サブモニターが上下、左右どこに搭載されるのか不明であったので
どこに搭載されても良いようにプログラムしました。
処理としては、アクティブディスプレイを指定して表示させると
どこに拡張しても正しく表示することができました。

【技術】16台HDD自動コピーシステム

システム内容

16台のHDDをUSB切替器と16ポートハブを使用し、自動で1台1台にデータをコピーするシステムを製作しました。
できるだけケーブルは長く、コピー時間は早く。

システム開発

PCにUSBは規格上128台接続可能ということで、なんでも接続したらすぐにドライブも認識するとおもっていました。
甘かったですね、全然安定しないしドライブの認識もされませんでした。

第1の課題

USB3.0ケーブルと16ポートハブとUSB切替器を使用し安定して動作する環境を見つけ出す。
ケーブルの組み合わせは大事です。16ポートハブの後にリピーターをつけてUSB3.0ケーブルを5Mぐらいにしていましたが、
1度目は認識するが2度目が認識しない等、不安定になりました。
16ポートハブの前にリピータをつけて使用したかったのですが、この場合は全く認識しませんでした。

最終的な構成

PC ⇒ 16ポートハブ ⇒ USB3.0(3m)ケーブル ⇒ USB切替器

覚えておくと何かの役にたつかも?

USB2.0の最長(規定)5m
USB3.0の最長(規定)3m

第2の課題

買うタイミングが違うだけでこの仕打ちはなんでしょうか・・・。
スイッチを押したタイミングでUSBポートの切替が行われるものと
給電したタイミングでHDD切替が行われるという動作の違いがあるUSB切替器。
⇒システム的になんとかしてもらうで対応(Delayをいれてどのタイプの切替器か判断する処理を追加)

第3の課題

16ポートハブのスイッチを押しONからOFFにしてもハブの完全OFFにならない。
なんの為のスイッチでしょうか・・・?。
⇒システム的になんとかしてもらうで対応(16ポートハブの電源をOFF処理追加)

第4の課題

ドライブ認識した後、HDDの安全な取り外しってシステム的にできるの?
⇒システム的になんとかしてもらうで対応(HDDの安全な取り外し機能追加)

第5の課題

16台のUSB切替器をシステムで動作させているけどたまにドライブ認識しなくなるのがいるんですけど・・・
⇒システム的になんとかしてもらうで対応(リトライ機能追加)

担当者より一言

お客様のご要望通り、HDDコピーシステムを動作させられてよかったです。
市販品を利用するのは、予想外の事が多々おきるんですね。
システム開発・評価ご苦労さまです。

タグ: , , , , , , ,

【技術】BLE通信機能用ソフト開発

HART通信で使用されていた産業機器にBLE通信でも通信できるようにソフト追加
を実施しました。

Bluetoothには、Bluetooth Basic Rate/Enhanced Data Rate (BR/EDR) と
Bluetooth Low Energy (LE)があり、Bluetoothでも一概に同じ処理ではなく、
BLE通信はアドバタイズ受信のGATT通信処理を行わなければいけません。

BLE通信のアプリケーションを開発するには、OSによるGATT APIのサポートが必
要なので環境設定を行いました。
C#やC++言語での開発は、WEB上で検索できるのですがVB.netでのBLE通信がほとんどなくて苦労しました。
C#のプログラムを参考にVB.netにコンバートすることで実装ができました。

お客様のご要望通り、開発、評価込みで2ヶ月で対応することができました。

タグ: , , , , , , , , , , , , , , , , , , , , , ,