スキップしてメイン コンテンツに移動

投稿

TWELITEのAppTag OTAを使ってみる

AppTag OTAを使ってみる無線タグをリモートで設定できます。纏まっているドキュメントがないのでメモ書きです。TWELITEは低消費電力、安価、使いやすい無線マイコンです。センサネットワークの構築がとても楽です。過去に Sun Microsystems の SunSPOTを触ってましたけど、それぐらい簡単です。センサネットワークのアプリもスマホのアプリのように用意されているので、いろいろ遊ぶことができます。もちろん、C言語で実装もできます。見た感じデータリンク層まで触れそうです。なので、メッシュネットワークや新たなNWトポロジ構成方式を評価できるかもしれません。JavaやC#では組めなさそうですが、アクト act というコードを簡素化するできるソリューションが用意されます。IEEE802.15.4に準拠しています。 enjoy it!
デバイス ・TWELITE BLUE USBタイプ (MONOSTICK) ・TWELITE 2525A
一般的にセンサネットワークはOver the Air(OTA)機能があり、遠隔地からリモート設定できるよう設計されています。MonoWirelessさんからOTA用のファームウェアをここからダウンロードします。 → App_Tag_bin_2_1_5.zip
圧縮ファイルを展開した後にOTAのファームウェアを TWELITE Stage で書き込みます。 OTAのファームウェアをMONO STICK(以下MS)へ書き込みします。 対象は下記のファームウェアです。H/Wに合わせてどちらか選択します。 ファームウェアの配置場所は <インストール場所>\MWSTAGE\BIN\*.bin です。 ・App_Tag-Parent-BLUE-OTA.bin ・App_Tag-Parent-RED-OTA.bin
ファームウェアを書き込むときは、パソコンのUSBポートへMSをさして、TWELITE Stage を起動するだけです。基本、特別な設定は不要でした。(COMポート選択など手動設定も可能です) パソコンにUSB-Serialデバイスが追加されます。
ファムウェアの書き込みが終わったら、パソコンからMSを取り外します。 再び、パソコンへMSをさすと赤いLEDが点灯します。 シリアルコンソールを開いてCOMポートに接続します。 データ:8bit データレー…

PowerShellでプログラムを実行して、優先度を上げるときのやり方

こんな書き方があります arma3server_x64.exeの一例になります。
# プログラムの起動引数を定義 [string]$_arguments = "-config=server.config -cfg=basic.cfg" # プロセスの設定を定義 $_startInfo = New-Object System.Diagnostics.ProcessStartInfo $_startInfo.FileName = "arma3server_x64.exe" # プログラムの起動引数を設定 $_startInfo.Arguments = $_arguments $_startInfo.WorkingDirectory = "C:\arma3" # プロセスのインスタンスを生成 $_process = New-Object System.Diagnostics.Process # プロセスの設定を格納 $_process.StartInfo = $_startInfo # プログラムを実行する $_process.Start() # 優先度の設定を「高」にする(注1) $_process.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::High # プログラムが終了するまで待機(注2) $_process.WaitForExit() 注1:プログラムを実行したあとに優先度の設定を行ってください。例外が発生した後、通常の優先度でプログラムを実行します。 注2:プログラムが4KB以上の標準出力を行う場合は、フリーズするため内部バッファをクリアしないと「応答なし」になります。 arma3server_x64.exe は標準出力がないので問題ありません。

ミッションスクリプトからローカルのテキストファイルを読み込みたい

まとめloadFile 関数で読み込める
-filePatching 引数をつけてArma3を起動する必要がある
UTF-8も読み込めるので日本語も読めます
概要手軽に News を表示したいので、ローカルのテキストファイルを読み込みます。ローカルのテキストファイルを読み込むにはFilePatching を有効にします。テキストファイルは、Arma 3インストールフォルダの配下の任意の場所へ配置します。
ちなみに、loadFile はサーバーサイドのSQFファイルを読込み、実行/プリコンパイルするために良く利用されている関数です。クライアントに見せたくないスクリプトをサーバーだけに配置できる利点があります。
事前準備 引数を指定して、arma3server_x64.exe を起動しましょう(例: arma3server_x64.exe -filePatching)。基本はサーバーで読み込んで、 publicVariable で各クライアントで配信すればよいですね。
Arma 3インストールフォルダの配下に、「news」というフォルダを作成し、「docs」フォルダの中へ、news.txt を置いておきます。
コードコードはシンプルです。

// グローバル変数を初期化する
if (isNil "TSAN_NEWS_STRING") then {
TSAN_NEWS_STRING = "";
};

// サーバーのローカルに存在するテキストファイルを読み込む
TSAN_NEWS_STRING = loadFile "docs\news.txt";

// サーバーのログファイル(RPTファイル)に news.txt のテキストを表示する
diag_log [TSAN_NEWS_STRING];

// JIPを考慮してクイアントにテキストを配信(配信したいなら)
publicVariable "TSAN_NEWS_STRING";

今回はテキストファイルを読み込んでプレーン状態で利用していますが、 htmlファイルを読み込みしてブリーフィング画面に表示すると、更にリッチなドキュメントを表示できます。htmlLoad 関数で http経由で html ファイルを開けますが、制限事項が多いので試しませんでした。
留意点 原則、Arma …

ARMA3のラグを軽減するテクニック

まとめWindowsOS向けの設定になります Arma3のネットワークに関するラグを軽減できます
サーバーおよびクライアントの両方で設定できます

概要Windowsは、データグラムのサイズに応じて、高速I/Oまたは送信バッファを経由して送信されます。高速I/Oは、メモリをマッピングしてI/Oサブシステムを経由せず、データをコピーしてI/Oサブシステムを経由することを意味します。少量のデータ送信に有利です。
Arma3の既定の設定は、最大パケットサイズを1400バイトで送出するため、1024バイト以上のパケットサイズでも高速I/Oを利用するようにします。
設定内容1. Windows Registryを下記の様に変更します。[HKLM\System\CurrentControlSet\Services\AFD\Parameters]

2. DWORD (32ビット)値を新規作成します。

3. 名前を FastSendDatagramThreshold にして、値データを1500 (10進数) 以下にします。

4. 最後にWindowsを再起動します。

LogicoolのハンコンがPCゲームで動作しない

いろいろつまづいてLogicool G Driving Force Racing Wheel (例えば G29)がPCゲームで動作しないとき、Steam Input が影響して正しく動作しないことがわかりました。私が影響を受けたゲームは下記のゲームでした。もちろんですが、DRIVING FORCE SHIFTERも同様に動作しません。
Assetto Corsa Series ・Project Car Series
具体的な症状としては、ゲームアプリケーション上ではデバイスを認識していますが、キーが無反応になります。
解決方法Steam Input (Steam 入力) を強制オフにすることで正しく動作します。
Logicool G HUB を入れても正しく動作します。
旧ドライバーソフトウェアの Logicool® ゲームソフトウェア でも正しく動作すると思います。もし、当該問題により、わざわざインストールした人は Logicool® ゲームソフトウェア をアンインストールして、Logicool G HUB をインストールすると良いですね。
下記の通り、Steam 入力を強制オフにします。