SSブログ
前の10件 | -

cqrlogからhamlogへデータ移動問題点 [ham]

前回作成したrubyのプログラムでcqrtohamlog.csvを作成hamlogのしてオプション→データの保守→データのインポートで読み込ませると時間が11:59Jのように自動的にJが付加される。cqrlogの設定をローカルタイムにしておけば単に移動だけなら問題ないがjtdx等と連動させるとどうなるか未確認。
現状hamlogは下段が最新データ、cqrlogは上段が最新データ、そのままインポートすると並び順ずっこける。どこで調整する?

nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

ruby ファイルに出力 [raspberrypi]

便利な時代になったなあと実感する今日この頃
googleで”ruby ファイルに出力”で検索すると親切丁寧に教えてくれる

:::::::::::::::::::::::::text_write.rbの内容::::::::::::::::
filename = "20201103.adi"                    #ファイル名固定
pattern = Regexp.new("QSO_DATE")
file=open(filename)
file2=File.open('cqrtohamlog.csv',"w")       # "w":ファイル無いとき新規作成、存 在するとき内容を消去してから書き直す。
while text=file.gets do
    if pattern =~ text
        # adifファイルの先頭から41文字にはコールサインの文字数が書かれている42文字目が>であれば1桁である
        if text[42,1] == ">"           #文字数1桁
          callnum = text[41,1].to_i
          callsign = text[43,callnum] + ","   #csvデータにするために,区切りにするため
          file2.print(callsign)               #
        else                            #文字数2桁
          callnum = text[41,2].to_i
          callsign = text[44,callnum] + ","
          file2.print(callsign)
        end
    end
end
file2.print("\n")
file.close
file2.close
:::::::::::::::::::::::::text_write.rbの内容終わり::::::::::::::::
これを実行すると20201103.adiを読み込んでコールサインだけをcqrtohamlog.csvに書き出してくれる。
以下を実行すると20201103.adiを読み込んでhamlogで読み込めるcsvデータを作成できる。ただし問題点がある。
:::::::::::::::::::::::::cqrtohamlog.rbの内容::::::::::::::::
filename = "20201103a.adi"                    #ファイル名固定
# filename = ARGV[0]                         #ファイルを引数で指定する場合
pattern = Regexp.new("QSO_DATE")
file=open(filename)
file2=File.open('cqrtohamlog.csv',"w")       # "w":ファイル無いとき新規作成、存 在するとき消去してから書き直す。
while text=file.gets do                      #ファイルから1行ずつ読み込む
    if pattern =~ text                       #読み込んだデータにQSO_DATEがあるか?
                                             #else文が無いのでQSO_DATEが無い行は破棄される
      #
      # adifファイルの先頭から41文字にはコールサインの文字数が書かれている42文字目が>であれば1桁である
      #:::::ここから "CallSign"
      if text[42,1] == ">"                  #42文字目が>であれば文字数1桁
        #print text[41,1] + "\n"
        callnum = text[41,1].to_i
        #print text[43,callnum] + "\n"
        callsign = text[43,callnum] + ","
        file2.print(callsign)
      else                                  #42文字目が数字であれば文字数2桁である
        #print text[41,2] + "\n"
        callnum = text[41,2].to_i
        #print text[44,callnum] + "\n"
        callsign = text[44,callnum] + ","
        file2.print(callsign)
      end
      #:::::ここまで"CallSign"
      #:::::ここからdate
      # 先頭から14文字めには年数下2桁, 16文字めには 月2桁 18文字めには 日にち 2桁
      #print text[14,2] + "/" + text[16,2] + + "/" + text[18,2] + "," + "\n"
      comdate = text[14,2] + "/" + text[16,2] + + "/" + text[18,2] + ","
      file2.print(comdate)
      # ::::ここまでdate
      #:::::ここからtime
      #print text[31,2] +  ":" + text[33,2] + "," + "\n" #時間表示
      file2.print(text[31,2] +  ":" + text[33,2] + ",")
      # ::::ここまでtime
      #:::::
      # 〔His〕は、相手に送ったレポートを入れます
      # :::::ここから RST_SENTの文字数
      #p "RST_SENT"
      # text.index("RST_SENT:") 文字列RST_SENTを検索してその先頭からの位置を返す
      #p text.index("RST_SENT:")              # RST_SENT:が記載してある先頭から の位置
      rstrclmn = text.index("RST_SENT:") + 9
      #p text[rstrclmn,1]
      rstrnum = text[rstrclmn,1]             # RST_SENTの文字数
      #p rstrnum
      #p text[rstrclmn+2,rstrnum.to_i]
      rsts = text[rstrclmn+2,rstrnum.to_i]   # RST_SENT
      #p rsts
      file2.print(rsts + "," )
      # :::::ここまで
      # 〔My〕は、相手からいただいたレポートを入れます
      # :::::ここから RST_RCVDの文字数
      #p "RST_RCVD"
      #p text.index("RST_RCVD:")              # RST_RCVD:が記載してある先頭から の位置
      rstrclmn = text.index("RST_RCVD:") + 9
      #p text[rstrclmn,1]
      rstrnum = text[rstrclmn,1]             # RST_RCVDの文字数
      #p rstrnum
      #p text[rstrclmn+2,rstrnum.to_i]
      rstr = text[rstrclmn+2,rstrnum.to_i]   # RST_RCVD
      #p rstr
      file2.print(rstr + "," )
      # :::::ここまで
      # :::::ここから freqの文字数
      #p "周波数"
      #p text.index("FREQ:")                  # freqが記載してある先頭からの位置
      freqclmn = text.index("FREQ:") + 5
      #p text[freqclmn,1]
      freqnum = text[freqclmn,1]             # freqの文字数
      #p freqnum
      #p text[freqclmn+2,freqnum.to_i]
      freq = text[freqclmn+2,freqnum.to_i]   # freq
      #p freq
      file2.print(freq + "," )
      # :::::ここまで
      # :::::ここから modeの文字数
      #p "MODE"
      #p text.index("MODE:")                  # modeが記載してある先頭からの位置
      modeclmn = text.index("MODE:") + 5
      #p text[modeclmn,1]
      modenum = text[modeclmn,1]             # modeの文字数
      #p modenum
      #p text[modeclmn+2,modenum.to_i]
      mode = text[modeclmn+2,modenum.to_i]   # mode種別 CW SSB FT8等
      #p mode
      file2.print(mode + "," )
# :::::ここまで
# :::::ここから code,GL,QSL,Name,QTH,Rem1,Rem2,は空欄とする DC12には0を入れる?
      file2.print(",,,,,,,0\n")
# :::::ここまで
    end
end
file.close
file2.close
:::::::::::::::::::::::::cqrtohamlog.rbの内容終わり::::::::::::::::

nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

ruby ファイル読み込み [raspberrypi]

20201103.adiというファイルを読み込みモニタに表示するプログラム

読み込むファイルの内容

2020-11-11.png

pi@raspberrypi3:~/src $ cat 20201103.adi
ADIF export from CQRLOG for Linux version 2.4.0 (001)
Copyright (C) 2020 by Petr, OK7AN and Martin, OK1RR
Internet: http://www.cqrlog.com

<ADIF_VER:5>2.2.1
<PROGRAMID:6>CQRLOG
<PROGRAMVERSION:11>2.4.0 (001)
<EOH>
<QSO_DATE:8>20201103<TIME_ON:4>0555<CALL:10>JG1XDE/777<MODE:2>CW<FREQ:5>7.02
<BAND:3>40M<RST_SENT:3>599<RST_RCVD:3>598
<QSO_DATE:8>20201104<TIME_ON:4>0655<CALL:6>JG1XDE<MODE:2>CW<FREQ:5>7.025<BAND:3>40M<RST_SENT:3>499<RST_RCVD:3>598
<EOR>
pi@raspberrypi3:~/src $


ファイルを読み込み表示するrubyプログラム
gets_text.rb内容
:::::::::::::::::::::::::::
filename=ARGV[0]
file=open(filename)
while text=file.gets do
    print text
end
file.close
:::::::::::::::::::::::::::
gets_text.rbを実行する
2020-11-11 (2).png
ファイル内容を表示できた

ファイルを読み込み特定の文字列(この場合QSO_DATE)がある行のみを表示するrubyプログラム
gets_text3.rb
filename=ARGV[0]
pattern=Regexp.new("QSO_DATE")
file=open(filename)
while text=file.gets do
    if pattern =~ text
        print text
    end    
end
file.close
::::::::::::::::::
gets_text3.rbを実行する
2020-11-11 (1).png
10行あった元データから2行のみ表示できた
固定長のデータでできているので先頭からの場所が決まっているデータを取り出すプログラム
pi@raspberrypi3:~/src $ cat gets_callsign.rb
filename="20201103.adi"
pattern=Regexp.new("QSO_DATE")
file=open(filename)
while text=file.gets do
    if pattern =~ text
        # adifファイルの先頭から41文字にはコールサインの文字数が書かれている42文字目が>であれば1桁である
        if text[42,1] == ">"           #文字数1桁
          print text[41,1] + "\n"
          callnum = text[41,1].to_i
          print text[43,callnum] + "\n"
        else
          print text[41,2] + "\n"
          callnum = text[41,2].to_i
          print text[44,callnum] + "\n"
        end
    end
end
file.closepi@raspberrypi3:~/src $
2020-11-11 (3).png
callsignだけ取り出すことができた。ちなみにcallsignの上の数字は文字の数、確認のためで最終的にはいらない
コールサインの文字数が変化するので周波数とかモードは先頭から何文字目と決め打ちできないので検索してからデータを取り出すプログラム(読み込むファイル名決め打ちにした)
pi@raspberrypi3:~/src $ cat gets_mode.rb
filename="20201103.adi"
pattern=Regexp.new("QSO_DATE")
file=open(filename)
while text=file.gets do
    if pattern =~ text
                p text.index("MODE:")                  # mode:がかかれている位置           
                modeclmn = text.index("MODE:") + 5     # modeの文字数がががれている位置
                modenum = text[modeclmn,1]             # modeの文字数
                mode = text[modeclmn+2,modenum.to_i]   # mode種別 CW SSB FT8等
                print mode + "\n"
    end
end
file.closepi@raspberrypi3:~/src $
実行してみる
2020-11-11 (4).png
CWとかSSBとかmodeも取り出せた。あとはこれらを組み合わせればcqrlogからadifファイルをエクスポートしてこのプログラムで整形してcsvファイルを作ればhamlogに読み込ませることができそうだ。


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

rubyインストール、Visual Studio Codeインストール [raspberrypi]

raspberypiのパイはパイソンのパイだからpythonで作れと言われてもpython使ったことないし・・・
rubyをインストールした。

pi@raspberrypi3:~ $ sudo apt install ruby

pi@raspberrypi3:~ $ ruby -v
ruby 2.5.5p157 (2019-03-15 revision 67260) [arm-linux-gnueabihf]
pi@raspberrypi3:~
nanoで作るのもかったるいのでcodeをインストールします。
まず、https://azure.microsoft.com/ja-jp/products/visual-studio-code/
ここからcode_1.50.1-1602600660_armhf.debをダウンロード

pi@raspberrypi3:~/Downloads $ sudo dpkg -i code_1.50.1-1602600660_armhf.deb
pi@raspberrypi3:~/Downloads $
Visual Studio Code を起動(初期状態英語)
拡張機能をインストールしたいので、 「View (表示)」→ 「Extensions (拡張機能)」と操作する
検索窓で 「japanese」と入れると、 「Japanese Language Pack for Visual Studio Code」が表示されるので、 「Install (インストール)」をクリック
Visual Studio Code を再起動すれば日本語表示になっているはず。
初期状態の配色は老眼のせいか私には読みにくいのでテーマ変更
画面左下の歯車マーク > 配色テーマ
2020-11-10.png

nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

FT8移動運用 cqrlogデータコピー [ham]

PCでhamlogを使用している場合「検索」「複合検索条件と印刷」でadifファイルを作成するとcqrlogで読み込めます。この場合raspberrypiでsambaを動かしておけば出力をraspberrypiに直接指定できます。
2020-11-01.png
当然のことですが\\RASPBERRYPI3\pi\の部分はsambaの設定により変わります。全角で記入した住所は文字化けするので全角を除くにチェック入れてます。

cqrlogのインポート
file-Show QO listでオープンするQSOリストのfile →import→ADIF

2020-11-01-180840_1299x794_scrot.png

hamlogデータを読み込むことができました。



nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

FT8移動運用 cqrlogインストール [ham]

いったいいつになったら移動運用できるのだろう?。2か月たっても未だ実現しない。
JR6PUEさんが詳しく書かれていますがJR6PUEさんはOSがububtu mateで私はraspberry Pi OSなのでそのままマネするわけもできず--raspberry Pi OSには MySQLがなくmariadbがインストールできますが当然ディレクトリー構造が違ってコンパイルが通りません--少しバージョンが古いですが

pi@raspberrypi3:~ $ sudo apt list cqrlog
一覧表示... 完了 
cqrlog/stable,now 2.3.0-2 armhf            
pi@raspberrypi3:~ $                            
pi@raspberrypi3:~ $ sudo apt install cqrlog
pi@raspberrypi3:~ $ sudo apt list cqrlog
一覧表示... 完了
cqrlog/stable,now 2.3.0-2 armhf [インストール済み]
pi@raspberrypi3:~ $
パッケージなので、Mysqlがインストールしていなくてもcqrlog動きます。mariadbのディレクトリーにcqrlogが想定しているディレクトリー名称とリンクを張ってくれます。
MySQLが無くてもcqrlog動くということは、この状態でコンパイルすれば最新版が動かせるかもしれない。パスカルで書かれているので関連パッケージを入れる
pi@raspberrypi3:~ $ sudo apt install fpc      
pi@raspberrypi3:~ $ sudo apt install lazarus
pi@raspberrypi3:~ $ sudo apt install fp-utils
pi@raspberrypi3:~ $ sudo apt install lcl       
ソースコードをダウンロードする
pi@raspberrypi3:~ $ cd Downloads/                                                     
pi@raspberrypi3:~/Downloads $ wget https://github.com/ok2cqr/cqrlog/archive/v2.4.0.tar.gz
ファイル名v2.4.0.tar.gzだったので名称変更してから解凍
pi@raspberrypi3:~/Downloads $ mv v2.4.0.tar.gz cqrlog.v2.4.0.tar.gz
pi@raspberrypi3:~/Downloads $ tar -zxvf cqrlog-v2.4.0.tar.gz
ここの後半に書いてあるソースの変更2箇所を実行する
その1.imagesディレクトリーを1階層上へコピーする
pi@raspberrypi3:~/Downloads/cqrlog-2.4.0 $ cp -r ./images/ ~/Downloads/
その2.synaser.pasを編集する
pi@raspberrypi3:~/Downloads/cqrlog-2.4.0 $ nano ./src/synapse/synaser.pas
編集内容はJR6PUEさん参照
私は修正してからコンパイルしたのですがソースコードがJR6PUEさんのと違っていました。だから元データが修正してあるのかもしれません。(修正前のオリジナルソースでコンパイル通りました。)なお、makeに失敗した場合rm -rf /tmp/.lazarusを使って失敗しているデータを消してから再度makeするんだそうです。
2020-11-01-130532_400x263_scrot.png

nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

chromiumバージョン: 86.0.4240.111 [raspberrypi]

クロミウムブラウザーを立ち上げたままにすると古いから新しいのにしろとか更新に失敗しましたとかうるさいので新しいのを入れることにした。(どうせならarmhf版をインストールしろよ、amd版入れようとしても入るわけない)。
まずはsnapdをインストール(最初snapをインストールして何もできず焦った)

pi@raspberrypi3:~ $ sudo apt install snapd
pi@raspberrypi3:~ $ sudo reboot
ここによると$ snap install hello-worldしろと書いてある。chromiumインストールするのに必要あるかどうかわからないけど一応やった。

pi@raspberrypi3:~ $ sudo snap install hello-world
10分以上かかったかな

pi@raspberrypi3:~ $ hello-world
ERROR: ld.so: object '/usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
Hello World!
pi@raspberrypi3:~ $
確かにhello-worldとキーインすると(ERROR表示するけど)Hello World!表示するからsnapd動作しているのだけどそれが・・・インストールすることなかったのかなあ
ともかくchromiumをインストール

pi@raspberrypi3:~ $ sudo snap install chromium

pi@raspberrypi3:~ $ sudo snap list
Name               Version          Rev    Tracking       Publisher   Notes
chromium           86.0.4240.111    1368   latest/stable  canonical?  -
core               16-2.47.1        10187  latest/stable  canonical?  core
core18             20200929         1937   latest/stable  canonical?  base
gtk-common-themes  0.1-36-gc75f853  1506   latest/stable  canonical?  -
hello-world        6.4              29     latest/stable  canonical?  -
pi@raspberrypi3:~ $
パソコンのバージョンと同じになった。
同じ名前のパッケージをapt install chromiumとsnap install chromium両方するとaptでインストールしたほうが立ち上がるので住み分ける場合は
$ sudo snap alias chromium chromium86とすると、chromium86でsnap版のchromiumを起動することができる。 snapの使い方はここに書いてある
私の場合は使い分ける必要はないので
$ sudo apt remove chromiumしてからデスクトップの設定→Main Menu Editor
Main Menu Editorの画面でインターネットを右クリックすると下の画面になる。
2020-10-29-133759_675x530_scrot.png2020-10-29-133354_457x200_scrot.png
Web Browserを右クリックして出てくるボックスの中のプロパティをクリックすると下の画面が出るのでCommand:に/snap/bin/chromiumとキーインするとで市区トップの地球マーククリックでブラウザーが立ち上がるようになる。
2020-10-29-133354_457x200_scrot.png



nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

FT8移動運用 jtdx? wsjtx? [ham]

FT8初心者なのでどちらが良いかわからないから両方入れておく。
下記をダウンロード
JTDX https://jtdx.tech/downloads/Linux/jtdx-2.2.0-rc152_u_armhf.deb
WSJTX https://physics.princeton.edu/pulsar/K1JT/wsjtx_2.2.2_armhf.deb

sudo apt list wsjtxとやってしまうとraspberrypiの公式リポジトリ―からインストールするので最新版ではないので注意すること

pi@raspberrypi3:~ $ sudo apt install ~/Downloads/jtdx-2.2.0-rc152_u_armhf.deb

pi@raspberrypi3:~ $ sudo apt install ~/Downloads/wsjtx_2.2.2_armhf.deb
(私はディレクトリーの名前に日本語使うの嫌いなので/Downloads/にしています。普通にRaspberrypiOSをインストールした人は/ダウンロード/ですね。)
デスクトップの左上イチゴマーク押すと出てくる紙飛行機マーク押してjtdxとキーインするとJTDX立ち上がる。次回からはサウンドとビデオの所にアイコンができているはず。


タグ:FT8 Raspberry Pi
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

FT8移動運用 logbookどうしよう [ham]

logbookどうしようか?windowsならhamlogだろうけどraspberry piでは動かないし、実をいうとlinux上でwindowsプログラムを実行できるwineを使えばいいと思っていたのだけれどwineはX86シリーズコンピューターでないと動かないことをraspberry pi購入した後で知った。
JR6PUEさんはcqrlogを使ってらっしゃるから使い方はこの記事でわかるからcqrlogにしてみるか
ここによると最新バージョンはv2.4.0
入手できるバイナリーは2.3.0
pi@raspberrypi3:~ $ sudo apt list cqrlog
一覧表示... 完了
cqrlog/stable 2.3.0-2 armhf
バイナリーの作り方を勉強するかな
ちなみにtqslの最新版は2.5.5 入手できるバイナリーは2.4.3
pi@raspberrypi3:~ $ sudo apt list trust*
一覧表示... 完了
trustedqsl/stable 2.4.3-1 armhf
pi@raspberrypi3:~ $

nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

termux [ham]

参考にしたところ
https://tanokatu.com/2019/03/24/01/
https://qiita.com/CyberRex/items/78a5ec91e7066eb0f3fb
その他termuxで検索した皆さんお世話になりました。

使用しているandroid  ASUS P008 android バージョン7.0


playストアからTermuxとTermux:APIとHacker's Keyboadをインストール。linuxの端末はctl-x、ctl-dなどctrlキー押しながら他のキーを押すことが多いのでHacker's Keyboadが使いやすい。
最初にTermux立ち上げて
$ apt update

$ apt upgrade
$ termux-setup-storageを行っておく

$ apt install busybox
$ apt install proot (prootをインストールするとbusyboxもインストールされるみたい)
↓ls /を行うとcannot open directory '/': Permission denideと怒られるが、
$ termux-chrootを行うと
ls /を表示できる。ctrlキーを押してDキーを押すとprootモードから抜ける(画面上はlogoutと表示)

Screenshot_20200924-152729[1].jpg


$ apt install termux-api  ndroidの端末のセンサーとかカメラをいじれる
playストアからTermux:APIをインストールしていないとTermuxのコマンドに反応しないから注意)

私のようにandroid7.0の人は アプリ→Termux:API→アプリ情報→システム情報の変更→可 にしないとコマンドを打つとハングアップします。

$ termux-sensor -l をキーインすると読み取れるセンサーを表示します
2020-10-04.png
↑この画面はPCのPowershellからsshでtermuxに接続して撮りました。

GPSデータもプログラムを作成すれば取得できそうですが私の能力外なので諦めました。termuxに寄り道した理由はタブレットにGPS受信機あるのだからラズパイの時刻補正に使えないのかなと思ったのだけど私には無理のようです。あと制度もよくないという書き込みもあったし・・・

nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット
前の10件 | -

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。