2019年10月13日日曜日

Automate android -app : app

llamalab社のアンドロイドアプリ AutoMate
https://llamalab.com/automate/

アプリの起動例
アプリを立ち上げる例

仕様 フロー :
アプリを起動。エラー処理など無し。


コーディング :
APPS → App start


Pick activity...
タップするとアプリのリストを表示するので、選択すると内容を拾ってくれる。そこから先は各アプリ内容によるの。とりあえず空白デフォルトで試してみるしか無い。

  

2019年10月12日土曜日

Automate android -app : Wi-Fi

llamalab社のアンドロイドアプリ AutoMate
https://llamalab.com/automate/

Wi-Fi の例
仕様 :
Wi-Fiをオンにする (特定のSSIDにつなげるわけじゃない)。

フロー :
Wi-FiがONならなにもしない。オフだったらONにする。



コーディング :
CONNECTIVITY → Wi-Fi enabled?  : Immediately

CONNECTIVITY → Wi-Fi set state : WI-FI On

その他
Wi-Fi connect ブロックは、Network SSIDや Macアドレスなどを入力できるけど、androidではアプリ側で目的Networkを認識するようになっているので、ここでは、Wi-FiのON/OFFだけできればいい。




2019年10月8日火曜日

Automate android -app : bluetooth

llamalab社のアンドロイドアプリ AutoMate
https://llamalab.com/automate/

Bluetooth 使用例
仕様 :
ブルートゥースをオンにする。

フロー :
BluetoothがONなら何もしない。オフだったらオンにする。

コーディング :
CONNECTIVITY カテゴリーから、Bluetooth device enabled、Bluetooth set state を使う。

Bluetooth device enabled
decision block , options: Immediately(即) / When changed(変わるまで待つ)
ここでは、Immediatelyにする。設定してDONEすると、Flowchartでは[Is BT enabled]と表示される。


Bluetooth set state
decision block, 



2019年10月7日月曜日

Automate - android app

llamalab社のアンドロイドアプリ AutoMate https://llamalab.com/automate/

使い方の例

仕様 :
0) 画面ショートカットをタップすると、
1) 下にトーストメッセージで"Hello, world"と表示。
2) 3秒経つと、
3) 上部通知領域にマーク表示。ドロップすると"タップ、タップ"と"選んでおいた写真"を表示。タップすると、
4) 乱数表示で終了。

フロー :
ここでは、一直線な流れで、blockをfiberで繋ぐだけ。

Automateのブロックには、
action block : 「動け」だけ。例 フラッシュライト付け!
decision block : 「YES/NO」で選択。例 Bluetooth使えるか? => YES/NO
の2種類が在る。

コーディング :
Flowchart上に左ペインからblockを選びオプションを決めて、並べてfiberで繋ぐ。

横向きですが、こんな感じになります
先づ)
Autonateアイコンをタップ→ <新規>または上バーの'+'→ 上バーのペン→[Flowchart]→ [Flow beginning]が置かれている。
*Flowchart状態で、左からスワイプ or 左上の'Ξ'をタップしたペインの blockから必要なブロックを選んでいく。
*[Flow beginning] は ペインの[FLOW]カテゴリーにある。
*blockやfiberの説明はアプリのHelpか、選んだ後に左からスワイプ、もしくは、 https://llamalab.com/automate/doc/index.html


追記 2019/Nov.
Automate Version 1.20.7 になって、上にあった`ペン'が右下隅になりました。


0)
[Flow beginning]をタップ。TITLEに'Hello'と記入。 [Install home screen shortcut]をタップ→ [ホーム画面に追加]"自動的に追加"をタップ。以外はデフォルトのまま→ 右上✓DONE (→。 Flowchartに戻る)。

  

*blockを選んだ状態で、青帯の[Flow beginning]をタップ or 左からスワイプすると、[Flow beginning]ブロックの説明が現れる(英語)。
*'Hello'がショートカットの名前になる。このショートカットをタップすると、フローが始まる。

1)
左ペイン→ INTERFACE→ [Toast show]をタップ→ [Toast show]ブロックをタップ。MESSAGEに'Hello, world'と記入。DURATIONのLongをマーク。右はfxのまま。右上✓DONE (→ flowchartに戻る)→ [Toast show]を指で少し長めに押さえて任意の位置へ移動→  [Flow beginning]OK と [Toast show]IN を指で押さえてfiberで繋ぐ。

*[toast show]は、action blockで、ただ表示するだけ。
*fxをタップしたときはもう一度タップしてfx表示に戻す。ここには関数も記入できる。
*[Toast show]のDURATIONは、表示時間の長さ。Shortを選んだ時 fxをタプすると =2。 Longの時 =3.5となっている(単位不明)。この数字を増やすとトースト表示時間が長くなる。
*Flowchartの blockは、ちょい押さえでプロパティ、長め押さえで移動、に切り替わる。

2)
左ペイン→ DATE & TIME→ [Delay]→ PROCEED 'Exact', DURATION '0h 0m 3s', ✓Awake device→ ✓DONE→ (Flowchart)→ [Delay] を移動, fiberでOKとINを繋ぐ。

*[toast show]は、action block

3)
左ペイン→ INTERFACE→ [Notification show]→ PROCEED 'When clicked', TITLE 'notification, test' fx, MESSAGE 'タップ, タップ' fx, PICTURE URI 任意の写真or画像 fx, ICON Icon#17, ONGOING ✓Ongoing event, 他はディフォルト→ ✓DONE→(Flowchart) → [Notification show]を適宜移動, Delay と繋ぐ。

*[Notification show]は decision block。出口にYESとNOがあるけど、今回NOは放置。PROCEEDで'When clicked'を選んだので、クリックされない限りスヌーズして残る。日本語も表示可能。
*Iconは通知領域に表示される小さなアイコンでPICTURE共に任意。好きなの選んで。

4)
左ペイン→ INTERFACE→ [Toast show]→ タップ。MESSAGEの右fxをタップ, =random()と半角文字で記載→ ✓DONE→ (Flowchart)→ [Notification show] と繋ぐ。


終わったら、右上の✓をタップで、Flowに戻るので、<新規>をタップしてPropertiesを仮に'test'としてOK。

デバッグ :
[START]してみる。流れのように動くかチェック。途中でタップしないと最後までたどり着きません。

デフォルトでは、LOGが表示される。
右上'Ξ'タップ→ Log→ View→ (アプリによる)
年月日 時分秒 INFO/FAIL 数字@blockナンバー block名

赤字がエラー. block番号4が間違ってる例

*時分秒で上のブロック間の移動時間が推測できる。
*blockナンバーやブロック名で経路がわかる。ナンバーは、Flowchart時のblockの左肩に表示されている。blockの置き直しにDeleteやCutを使うと続き番号でなくなるけど問題なし。フリー版では合計30blockまで?

LOGで修正終了なら、Log→ Clear して Logging チェックを外して Flowをタップ。
Automateの FLOWSに test が表示されてる。
Automateを終了させて、ホームにあるショートカット"Hello"で最終動作チェック。

以上、素人の個人メモ

2019年9月22日日曜日

Pulseaudio 出力先の固定

動機
HDMI接続のディスプレイスピーカーだと、
・ディスプレイ側の少電力モード
・PCのスリープや復帰のタイミング
などで、音の出力先が変わってしまい。手動で設定し直さないといけない。

対策
面倒なので、出力先をHDMIに固定する。
めったに使わない外付けスピーカー使用時には、システム「設定」からアナログ出力に手動変更とする。


環境
Debian GNU/Linux 10 (Buster+backports), KDEディスクトップ
サウンドカードはM/Bオンチップのみ
$ cat /proc/asound/cards
 0 [PCH            ]: HDA-Intel - HDA Intel PCH              ←M/Bのサウンドカード
                      HDA Intel PCH at 0xf7140000 irq 138

方法
概要:/etc/pulse/default.pa の最後にHDMI接続を書き込む。

書き込む内容を調べる例
1, HDMIから音が出てる間に index番号(name)とprofileを取得。

index)
$ pacmd list-cards
1 card(s) available.
    index: 0
        name: <alsa_card.pci-0000_00_1f.3> ←"alsa_card.pci-0000_00_1f.3"必要
        driver: <module-alsa-card.c>
        owner module: 6
        properties:
                alsa.card = "0"
                alsa.card_name = "HDA Intel PCH"   ← M/Bのサウンドカード
                alsa.long_card_name = "HDA Intel PCH at 0xf7140000 irq 138"
            ... 略 ...

profile)
$ pacmd list-cards | grep active
active profile: <output:hdmi-stereo>   ←"output:hdmi-stereo"必要

2, 上記の情報を /etc/pulse/default.pa の最後に書き込む
a) set-card-profile 0 output:hdmi-stereo
b) set-card-profile alsa_card.pci-0000_00_1f.3 output:hdmi-stereo+input:analog-stereo
どちらかを書き込む。
("+input:analog-stereo"の部分は任意。使わないなら書かない)

3, load-module module-switch-on-port-available"コメントアウトして、
#load-module module-switch-on-port-available

4, 念の為
~/.config/pulse/以下を一度全部削除して、

5, 再起動。

今の所うまく行ってます・・・素人処方です。

おまけ
・~/.config/pulse/以下の削除後、pulseaudio -k pulseaudio --start では、cookieのみ作成されて、pulseaudio サーバーとして認識される。
・alsa-base.conf (asound.conf) は buster では使われていない?

2019年8月14日水曜日

Debian KDEで AudioCDを開く

目的:
音楽CDから、256kbps以上の mp3を作成したかった。
普通、KDEならAudexを使うのだが、現状 busterには KDE multimedia も Audexもないので、soundKonverter が残っている。
作業:
CDを挿入→アプリから[ファイルマネージャで開く]を選択すると→Dolphin 起動→"Audio CD"グループができて、WAVファイルやCDA,FLAC,MP3ディレクトリができている (これは仮想ファイル)。
  

これらの中から 目的楽曲.mp3を選択して、別ディレクトリにコピペすると初めて作業を開始して mp3ファイルができる。
ところが、ffprobeやexiftoolでビットレート見るとちょっと低い。

疑問:
上記方法でビットーレート設定はどうやる?

答え:
システム設定→マルチメディア→オーディオCD [オーディオ CD/IO スレーブ設定]→MP3エンコーダ で調整。


備考:
以上の働きは KF5 (もしくは KF4): KDE Frameworks という仕組みが関係している。

$ kcmshell5 または kcmshell4 (ヘルプ出力)
sage: kcmshell4 [Qt-options] [KDE-options] [options] module
A tool to start single KDE control modules
...略

$ kcmshell5 -list ← 使えるモジュールのリスト表示
次のモジュールが利用できます:
about-distro               - Information About This System
audiocd                    - オーディオ CD I/O スレーブの設定
autostart                  - 自動的に起動されるアプリケーション
...略

$ kcmshell5 audiocd
"答え"と同じ[オーディオ CD/IO スレーブ設定]ウインドウが表示
実は kcmshell5 --list で表示されたモジュール名を使うということは、KDE システム設定 と同じ。

$ kcmshell5 about-distro
$ kcmshell5 componentchooser
$ kcmshell5 filetypes
など
補足:
[MP3エンコーダ]可変ビットレートの設定 のデフォルト
    XingのVBR タグを書き込む ←これのみデフォルトで青チェック済
   □平均ビットレート:192 kbs ←これをチェックするとその他もチェックできる。
   □最高ビットレー: 320 bps
   □最低値を絶対的な下限にする
   □最低ビットレート:320 bps

* Xing (VBRではビットレートが一様でないのでXingヘッダーを付けて総時間を計算する)
* 固定ビットレート constant bitrate:CBR, 可変ビットレート Variable Bitrate:VBR,
平均ビットレート Averate Bitrate:ABR. VBRの平均をABRと呼ぶこともあり、VBRとABRはほぼ同じと思っていい(?)


2019年8月5日月曜日

ExiftoolでGPSタグを付ける

GPSタグを付ける
Debian GNU/Linux 10 Busterにて

目的 :
カメラの操作忘れで、GPSデータが未記録だった写真(jpg)に、
他の写真のデータを利用して ExifにGPSデータを書き込む。


結論 :
コマンドラインexiftoolを使って、
$ exiftool -tagsfromfile GPS有り.JPG -gps* -gpsmeasuremode= GPS無し.JPG

exiftooは、変更前の画像を `GPS無し.JPG_original' 名で保存する。
参考ファイルと、GPS Time Stampが全く同じで、違和感が残る。

色々 :
・Exiftool
 Debianでは、libimage-exiftool-perl をインストール。
 マニュアル/説明(英語) https://sno.phy.queensu.ca/~phil/exiftool/exiftool_pod.html
 かなり守備範囲の広いプログラム。

・exiftoolのコマンド例。

GPS有り.JPGからGPSというワードを含むタグを探す。
$ exiftool GPS有り.JPG | grep GPS
または
$ exiftool -gps* GPS有り.JPG
GPS Version ID                  : 2.3.0.0
GPS Latitude Ref                : North
GPS Longitude Ref               : East
GPS Altitude Ref                : Above Sea Level
GPS Time Stamp                  : 10:19:54
GPS Satellites                  :
GPS Status                      : Measurement Active
GPS Map Datum                   : WGS-84
GPS Date Stamp                  : 2019:07:31
GPS Altitude                    : 37.5 m Above Sea Level
GPS Date/Time                   : 2019:07:31 10:19:54Z
GPS Latitude                    : 33 deg 11' 18.23" N
GPS Longitude                   : 130 deg 21' 30.01" E
GPS Position                    : 33 deg 11' 18.23" N, 130 deg 21' 30.01" E

$ exiftool GPS無し.JPG | grep GPS
または
$ exiftool -gps* GPS無し.JPG
GPS Version ID                  : 2.3.0.0
GPS Altitude Ref                : Above Sea Level
GPS Satellites                  :
GPS Status                      : Unknown ()
GPS Measure Mode                : Unknown ()

出力は、タグ : データ の形で表示。exiftoolによる書き込みは、
exiftool -タグ="データ" 目的.jpg が基本。

タグ : データ オプションを利用するときの注意
* タグの空白は省く。
* データは""で囲む。エスケープも使う。
* タグ:データ の削除は -タグ= とする (上記結論の -gpsmeasuremode= のところ)。
* タグ GPS Position は、GPS Latitudeと GPS Longitudeの値があれば書き込まなくても自動生成される。無理に指定しても warningで無視される。
* タグ GPS Date/Time も、GPS Date StampとGPS Time Stampの値から自動生成。

・・・ということで、GPS Time Stampを変更しつつ、手書きコマンドの例。
$ exiftool -gpslatituderef="North" -gpslongituderef="East" \
-gpstimestamp="10:19:46" -gpssatellites=" " -gpsstatus="Measurement Active" \
-gpsmapdatum="WGS-84" -gpsdatestamp="2019:07:31" \
-gpsaltitude="37.5 m Above Sea Level" -gpslatitude="33 deg 11\' 18.23\" N" \
-gpslongitude="130 deg 21\' 30.01\" E" -gpsmeasuremode= GPS無し.JPG
    1 image files updated
ちなみに
$ exiftool -w txt IMG.JPG Exif ← 内容をIMG.txtに出力
$ exiftool -htmlDump IMG.JPG > img.html ← htmlに出力。見ても意味わからん
$ exiftool -lang ja -GPS IMG.JPG ← 日本語で表示。北緯 GPS Latitude / 東経 GPS Longitude などの検索が辛い