Category tech.


FNIRSI DPS-150 直流安定化電源 0~30V 0~5A電圧電流調整 CNC プログラマブルスイッチング電源 4桁 IPSディスプレイ 150W低雑音 高精度 研究実験室用 テスト修理 バッテリー充電 電気のメンテナンス - FNIRSI

FNIRSI

5.0 / 5.0

FNIRSI DPS-150 という実験用の直流安定化電源を買ってみた。USB-PD から電源をひっぱってこれるという最近の流行りというか ALIENTEK DP100 とかの系統の製品

特別悪いところは今のところ感じてない。50mV以下の電圧にはならないぐらい。画面が大きくてみやすい。

FNIRSI というとあやしいオシロスコープを買ったことがあるのでスペック表記はあんまり信用できない。

USBのプロトコル解析とウェブアプリ化

冒頭の動画で説明してるけどUSBプロトコル(シリアルポート)を解析してウェブアプリとして再実装した。JSでプログラマブルに制御を書けるようになった。

ウェブアプリの細かい話1: タイムアウト付きのJS実行

プログラマブルにするにあたって、うっかり無限ループを書いたときのためにスクリプトの実行時間にタイムアウトをつけたいなと思った。

かつてはそんなこと実現できなかったけど、今は Worker#terminate() があるので、Worker 化できる関数なら実現できるみたいだった。functionWithTimeout() みたいな関数を作ってみたけど動いてる。

https://gist.github.com/cho45/cda6bb74d3d82790663762da43298538

ウェブアプリの細かい話1: シリアルポート通信のWorker化

ブラウザのコンテキストだと、タブが非アクティブになったときなどに、 setTimeout() の時間がとんでもないことになるとか、いろいろ制限がある。

面倒くさくても定期的に処理を行いたい通信プロセスは Worker に逃がすほうが良い。Comlink を使っている。


ref

  1. トップ
  2. tech
  3. FNIRSI DPS-150 安定化電源のUSBプロトコルを解析してアプリ実装した

どうあがいても接続できなくて困った。

どうやらなんか Google Chrome が USB デバイスをかたっぱしからオープンする挙動をしているようで、busy 状態になっているようだった。libusb 関係のなにかなのかもしれない。

EOS Utility 3@(null): AppleUSBHostUserClient::openGated: failed to open Canon Digital Camera@01100000: provider is already opened for exclusive access by pid 602, Google Chrome

Console.app で検索かけていたら以上のエラーログが見れたので原因がわかったけど、わかりにくすぎる

ptpcamerad も変な挙動をしていてカメラが繋がらなくなる。強制的に終了しても起動してくるのでやっかい

EOS Utility 3@(null): AppleUSBHostUserClient::openGated: failed to open IOUSBHostInterface@0: provider is already opened for exclusive access by pid 17290, ptpcamerad

止めた。

sudo launchctl unload /System/Library/LaunchAgents/com.apple.ptpcamerad.plist
sudo launchctl disable gui/501/com.apple.ptpcamerad

ref

  1. トップ
  2. tech
  3. macOS の EOS Utility 「カメラとUSB接続できませんでした」

たびたび transix の IPv4 のポート制限(1024)にひっかかって、そのたびにAFTRを切り替えていたけど、ふと思いついてトンネルを2つ貼って、ロードバランスして2048上限になるようにしてみた。

これでまだ上限あたるようだとほんとにお手上げなんだけど、なんかもっといい方法ないんかな~

ip route default gateway tunnel 1 gateway tunnel 2
tunnel select 1
 tunnel encapsulation ipip
 tunnel endpoint address 2404:8e00::feed:100
 ip tunnel mtu 1460
 ip tunnel secure filter in 1020 1030 2000
 ip tunnel secure filter out 1010 1011 1012 1013 1014 1015 3000 dynamic 100 101
 102 103 104 105 106 107
 ip tunnel tcp mss limit auto
 tunnel enable 1
tunnel select 2
 tunnel encapsulation ipip
 tunnel endpoint address 2404:8e00::feed:101
 ip tunnel mtu 1460
 ip tunnel secure filter in 1020 1030 2000
 ip tunnel secure filter out 1010 1011 1012 1013 1014 1015 3000 dynamic 100 101
 102 103 104 105 106 107
 ip tunnel tcp mss limit auto
 tunnel enable 2

RTX1200 は「ポートセービングIPマスカレード」とよばれるのはできないらしい。ルーター自体あたらしくして、有効にできたらもうちょっと余裕でるかもだけど、ポートセービングIPマスカレードもTCPにしか適用されないので、どれぐらい効果あるものなのかよくわからない。

  1. トップ
  2. tech
  3. transix AFTR のロードバランス