ホーム » T-Saitoh (ページ 91)

T-Saitoh」カテゴリーアーカイブ

システム

最近の投稿

アーカイブ

カテゴリー

cec-clientのデバイス番号とアドレス番号

自宅では、テレビやケーブルテレビチューナーやレコーダを赤外線リモコンで制御できるようにしているが、電源はトグル動作でON→OFFかOFF→ONという制御ができない。そこで、HDMI端子経由のチャンネル制御を行っている。

この際に、デバイス番号とcecのアドレス番号を使うが、デバイス番号が時々変化している。

しかたがないので、cecのscan処理でデバイス番号とアドレス番号の対応情報を保存するようにしてみた。

#!/usr/bin/perl

my $cec = "/usr/bin/cec-client -d 1 -s" ;

open( my $fd , "/bin/echo 'scan' | $cec |" )
    || die( "Can't open $cec\n" ) ;
open( my $ft , "> /home/xxxxxxxx/lib/cec-table.sh" )
    || die( "Can't open cec-table.sh\n" ) ;

my $device  = "" ;
my $dev_str = "" ;
my $address = "" ;
my $osd_str = "" ;

print $ft "#!/bin/bash\n" ;

while( my $line = <$fd> ) {
    if ( $line =~ /^device\s+#(\d+):\s+(.*?)$/ ) {
        $device  = $1 ;
        $dev_str = $2 ;
    } elsif ( $line =~ /^address:\s+(\d+)\.0\.0\.0$/ ) {
        $address = $1 ;
    } elsif ( $line =~ /^osd\s+string:\s+(.*?)$/ ) {
        $osd_str = $1 ;

        print $ft "DEV[$address]=$device\n" ;
        print $ft "OSD[$address]=\"$osd_str\"\n" ;
    }
}
close( $fd ) ;
close( $ft ) ;

@TohruSaitoh-19/04/18

ねこすた


この記事は@TohruSaitohのつぶやきのまとめです。

stretchで起動しづらい

自宅で色々と動いている Raspberry-Pi 。OS更新はまめにやっているけど、外気温測定に使っているのが Jessie のままだったのに気づく。stretch に上げたけど、どうも起動に失敗する。更新に失敗したかと思ったけど、キーボードをつなぐために USB WiFi を抜いて起動すると、普通に動いている。

今までも、多少 boot が不安定なのはあったけど、stretch になって起動シーケンスが最適化されたのか、WiFi 有効化のタイミングが早まり、ブート時の電力不足が発生していると思われる。

ひとまず、改造面倒だし USB WiFi を抜いて、boot がそれなりに進んでから USB を指して対応。

WZR-1166DHP2-Ver 2.18

久々に、WiFiルータ WZR-1166DHP2 のファームウェア Ver 2.18 が公開されていた。同じく、WCR-1166DS も新しいファームウ Ver 1.33 ェアが公開されている。早々にインストール。

長らく更新が無かったなか、複数の製品でファーム更新ってきたから、Buffalo固有の大きなバグを心配したけど、「SSLバージョン3.0の脆弱性対策に伴い、SSLバージョン3.0を無効にしました」だそうだ。

ER-X EdgeOS v2.0.1

EdgeRouter-X の新しいファームウェアが、2019/3/29 にリリースされたみたいということで、早速インストール。特にどんな機能が増えたのか、よくわからないけれど無事更新完了。

ただ、更新が終わって改めて、何が新しくなったのかとファームウェアのページを見たら、v2.0.1の情報が消えている。どーゆーことぉ?

イーブイ・コンプリート

買い物中、ポケモンで、最初にエーフィを置いたら、だれか2人がプレッシャーをかける追加をしてきた。

{CAPTION}

ここまでくると、違うの置いたら明らかに”KY”と呼ばれるだろう。

{CAPTION}

そろそろ、他の色に占拠される心配がでてくる。

{CAPTION}

最後のシメは、買い物が終わったママがシャワーズを置いて完成。

{CAPTION}

ハンディ機間の電波到達距離

aprx を動かしてみたけど、車でビーコン実験してみて、軌跡が描けない。ハンディ機どうしだから、電波飛ばないからだろうな。

そこで、歩いてビーコンが取れるか歩いてみた。TH-D72 と、TH-D74 間だけど、室内のハンディアンテナだと、数百メートルが限界か。

改めて、室外アンテナ設置したいなぁ。

 

アマチュア無線: aprx を動かしてみた

知り合いより譲り受けた、TH-D72を活用したいということで、APRS の iGate 局を動かしてみた。

我が家は、ロケーション的に福井市にあるリピータにも、ハンディ機では接続できず、無線機の位置情報などをインターネットに伝えることができる APRS や、インターネットを経由した通話ができる D-STAR などを、あまり活用することが難しい。

aprx を動かす

そこで、TH-D72 を APRS の iGate 局として動かすために、aprx をインストール。

以下のように設定したけど、まずい所がないか要チェックだな。ひとまず、データ流しまくりでaprsインターネット側には、迷惑をかけていないはず。ハンディ機なので、どのあたりまで電波が飛んでいるのか、チェックしてみよう。

$ sudo aptitude install aprx
$ sudo vi /etc/aprx.conf
$ sudo systemctl enable aprx.service
$ sudo systemctl start aprx.service
# /etc/aprx.conf
mycall JR9PVZ-10
myloc  lat 3553.48N lon 13613.33E
<aprsis>
   passcode 22202
   server   rotate.aprs2.net
</aprsis>
<logging>
   pidfile /var/run/aprx.pid
   rflog   /var/log/aprx/aprx-rf.log
   aprxlog /var/log/aprx/aprx.log
   dprslog /var/log/aprx/dprs.log
</logging>
<interface>
   serial-device /dev/ttyUSB1 9600 8n1 KISS
   initstring  "HBAUD 9600\x0dKISS ON\x0dRESTART\x0d"
   alias       RELAY,WIDE,TRACE
   callsign    $mycall # callsign defaults to $mycall
   tx-ok       true # transmitter enable defaults to false
   telem-to-is false # set to 'false' to disable
</interface>
<beacon>
   beaconmode both
   cycle-size 60m
   beacon     symbol "I#" $myloc comment "Tx-iGate + Digipeater"
</beacon>
<digipeater>
   transmitter $mycall
   <source>
      source   $mycall
   </source>
</digipeater>

TH-D72の設定

[TNC]-[TNC] KISSモード
[メニュー]-310 データバンド A-BAND
[メニュー]-311 パケットスピード 9600 bps
無線周波数 144.640 MHz

MinGW gcc + Visual Studio Code でC言語

Visual Studio 2017は激重、BCC+Visual Studio Codeは、個人利用なら無償だけど、職場のシステムに入れるにはライセンスが微妙ということから、C言語環境には、MinGW (Minimalist GNU for Windows) の gcc を使ってみる。

MinGW gcc のインストール

MinGWのサイトから、インストーラー mingw-get-setup.exe をダウンロードする。

“Install” を選ぶと、インストーラが開始。保存先のディレクトリ名の入力になるけど、デフォルトの “C:\MinGW”をそのままで、”Continue”を選ぶ。

必要最小限のファイルのダウンロードが終わると、以下の画面となるので、さらに”Continue”。

Installation Manager が表示されたら、インストールする開発環境を選ぶ。C言語の基本的な勉強用であれば、以下の2つをチェックする。項目を選んで右ボタンを押して、プルダウンメニューから、Mark for Installation を選ぶ。

  • mingw32-base-bin
  • mingw32-gcc-g++-bin

あとは、左上の “Installation”から、”Apply Changes”を選ぶとインストールが始まるので、終わるまで待つ。

MinGWのPathを通す

プログラムを起動する場合、どのフォルダにあるのかを、環境変数 Path に登録しておく必要がある。

⚙ 設定を起動し、システム→バージョン情報を選ぶと、画面右側のスクロールダウンした先の関連設定の下のシステム情報をクリック。

以下のような、コントロールパネルのシステムの画面が表示されたら、画面左の”システムの詳細設定をクリック。

以下のようなシステムのプロパティが表示されたら、詳細設定のタブの”環境変数(N)…”をクリック。

環境変数の画面になったら、画面下側の”システム環境変数”の Path を選んで、”編集”をクリック。

“環境変数名の編集”の画面が出たら、右上の”新規”を選ぶと、変数名のPath一覧の最下部に、追加画面が表示されるので、MinGWをインストールした、場所の bin の場所を記載する。今回ならば、”C:\MinGW\bin” を加え、”OK”を押せば完成。

Visual Stuido Code のインストール

別資料でも記載したが、この後は、”Visual Studio Code”をインストール。Windows であれば、Code Runner は標準設定で MinGW の gcc を使うように設定されているので、普通にインストールすれば終わり。

Visual Studio Code のサイトに行って、OSが64bit版であれば、Windowsの “System Installer 64bit” 版をダウンロード。あとは、インストーラを起動して、標準構成でインストール。

インストールが終わったら、左中段下の”Marketplace”を押し、以下の3つのアドオンをインストールする。

  • Japanese Language Pack for Visual Studio Code 1.32.4
  • C/C++ 0.22.1
  • Code Runner 0.9.7

あとは、エディタ画面でC言語のプログラムを入力し、画面右上の▶ボタンを押せば、プログラムをコンパイル&実行ができる。

Visual Studio CodeでBorland C++を使う

先日、Visual Studio 2017 を入れたら、激重だったので、もっと軽い環境を試す。

embarcadero C++ compiler(旧borland C++)のインストール

軽量のコンパイラとして便利なのが、embarcadero C++ compiler。というより、年配の人であれば 旧borland C++ といった方が有名だろう。以前より無料で利用できるので、職場でも初心者プログラマーの簡単プログラミングであれば、BCC55を利用している。

最新のものを探すとBCC102として公開されているので、これをインストールする。

C++ Compiler のページから、”無料版のダウンロード”より、BCC102.zip を取得する。解凍して、コンパイラのフォルダを “C:\borland\BCC102” に移動する。コンパイラの実行プログラムが “C:\borland\BCC102\bin\bcc32x.exe” となること。

Visual Studio Code の設定

以下の図に示す、3つをインストールする。(Visual Studio Codeのインストールは他の資料参照)

  • Japanese Language Pack… 日本語環境
  • C/C++ 0.22.1 の編集機能
  • Code Runner 0.9.7 (今回のキモ)

Marketplace の検索画面で、Japanese とか C++ とか Code Runner とか入力すれば、候補に出てくるので右下の”インストール”ボタンを押せば、インストールされていく。

“ファイル→基本設定→設定” を開くと、以下のような画面になるので、検索画面で”code-runner”などと入力すれば、”Code Runner”の設定画面が出てくる。今回は、設定での入力が複数行になるので “settings.jsonで編集” をクリックすると、ユーザ情報の settings.json の編集画面になる。

ここで、settings.json に以下の内容を書き込んで保存する。(表示の都合で折り返しているけど、”cd…..exe”までは1行で)

{
    "code-runner.executorMap": {
        "html": "\"C:\\Program Files (x86)\\Google\\Chrome
                   \\Application\\chrome.exe\"",
        "java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
        "c": "cd $dir
                 && c:\\borland\\BCC102\\bin\\bcc32x
                    $fileName -o $fileNameWithoutExt.exe
                 && $dir$fileNameWithoutExt.exe",
        "cpp": "cd $dir
                 && c:\\borland\\BCC102\\bin\\bcc32x
                    $fileName -o $fileNameWithoutExt.exe
                 && $dir$fileNameWithoutExt.exe"
    }
}

編集と実行

あとは、適当な C/C++ のソースコードを開いて、編集画面の右上の▶ボタンが、実行に割り当てられているので、これを押すだけでコンパイル&実行ができる。別画面にコンパイル状態の表示と、実行結果が表示される。

Google 検索

My Google   Yahoo

Microsoft

ファンサイト

メタ情報