【お知らせ】
AT-D168UVのコードプラグを当分の間公開しています。いつまでかは考えていません。
内容に責任を一切負いませんが、カスタマイズのベースに使うなど、ご参考にどうぞ。

2026年2月1日にZone「DMRchs」を「SFRchs」に変更すること、VoIP経由でアクセスする際のTGIFトークグループに関するチャンネルを、以前加えたつもりが出来ていなかったので、レコードを追加しました。
ダウンロードと説明は以下のエントリーからです。

「AnyTone AT-D168UV(その6、設定ファイル(コードプラグ))」
https://tr-1300.blogspot.com/2025/09/anytone-at-d168uv4.html

また、ホットスポット経由でTGIFトークグループにアクセスする場合に参考になるTalk Groupsリストを「DMR雑感(11/10版)」からダウンロードできるようにしています。(【訂正】勘違いをして変更なしと表記していましたが、本当は2/1付け変更をしていました。内容は当該エントリーを参照してください。)
https://tr-1300.blogspot.com/2025/11/dmr1110.html

2026年1月30日金曜日

【修正】H1のデジタルコンタクトリストの更新のための目先の対策

【修正】AT-D168UVのデジタルコンタクトリストの更新のための目先の対策

からエントリーを分けました。 

こちらはH1の話です。AT-D168UVでは、無線機で表示する際に漢字やかなや他の国の2バイトコードは化けるものの、 デジタルコンタクトリストをCPSに取り込む際にはエラーとして処理が止まることもなく、2バイトコードを使っている人がいていやだなあと思うくらいで済んでいたのですが、H1の場合は少し面倒でした。

当初、前のエントリーは、前段でAT-D168UVのデジタルコンタクトリストのCPSに読み込ませる際の当座のひと手間を、後段はH1のデジタルコンタクトリストをCPSに読み込ませる際の2バイトコードとの闘いを書く構図で、対策をステップバイステップで示すように作成した内容だったのですが、H1のひと手間が手順どおりに行っても結果がどうも不安定なんです。

現在のAilunce公式からダウンロードできるデジタルコンタクトリストは、VKの1局のデータの重複があって、そのままCPSに読ませるとエラーメッセージが出ます。このエラーの内容を示すcsvを別ファイルに出力できるので、これをExcelでみてみると重複レコードがあることが確認できます。Excelを使うのはエラーとして出力されたcsvを確認するところまでで、重複レコードの削除プロセスからは、CPSに読ませたデジタルコンタクトリストのcsvファイルを、

まともなテキストエディタの一つである、Microsoft Visual Studio Codeを使って、2バイトコードを検索して(キーは「[^\x00-\x7F]+」、これを何も入れないもの(つまり2バイトコードが入っている部分を詰めてしまう)に置き換えて、ただし、保存は必ず文字コードをUTF-8でする。これに加えて、気にするなら「 o,」(ブランク、o、カンマ)を「,」(カンマだけ)に置き換えると、化け残ったところが減ります。

で対処するということでまとめました。

〇その後、わざわざ2バイトコードを検索しなくても、VSCで文字コードを「UTF-8 with BOM()」で保存すればそのままCPSに押し込めるということがわかり、何度かやってみて成功。これで行けると、エントリーを書き替えました。 

 検索してみると、「UTF-8のBOM(Byte Order Mark)付きとは、テキストファイルの先頭に「EF BB BF」という3バイトのデータを付与し、そのファイルが「UTF-8で記述されている」と明示する仕組みです。主にExcelでCSVやテキストファイルを開く際に文字化け(特に日本語…日本語以外の2バイトコードも同じですよね…)を防ぐ用途で使われます。Webシステム開発などではBOMなしが好まれます。」だそうです。

ところがですね、書き換えた後に念のためということで、改めて同じ手順で作業をしてみると、CPS読み込みの際に2バイトコードが化けていることが原因のエラーが出るようになり、解消しません。

というところで、このbloggerに記事を過去に戻す機能があれば、書き換える前に戻したほうが良いことを思いつき、調べてみたのですが戻す機能はないとのことで、仕方なく、H1に関する記述は削って、AT-D168UVの当座の回避策だけを残した状態にしました。

 

もう一度H1について書こうと思うのですが、 ステップバイステップで画像を示しながらもう一度作成するパワーが残っていません。文字だけだと読んでもぜんぜん面白くないのですが、今の今の時点でわかっていることを箇条書きにしてみます。

まともなテキストエディタの一つである、Microsoft Visual Studio Codeを使って、2バイトコードを検索して(キーは「[^\x00-\x7F]+」、これを何も入れないもの(つまり2バイトコードが入っている部分を詰めてしまう)に置き換えることで対処、ただし、保存は必ず文字コードをUTF-8でする。これに加えて、気にするなら「 o,」(ブランク、o、カンマ)を「,」(カンマだけ)に置き換えると、化け残ったところが減ります。は有効。

VSCで重複レコードを削除して、「UTF-8 with BOM」で保存した場合、エラーなしでCPSに読み込める場合もありますが、2バイトコードが含まれるレコードでエラーで読み込めない場合もあります。この方法は結果が不安定。は不安定なまま。

満を持して「メモ帳」の登場。当初、メモ帳は29万レコードのデジタルコンタクトリストを読み込んだタイミングで少しの間固まるので、まともなテキストエディタを使うべきということでVSCを取り上げたのですが、Windows11についてくるメモ帳は少し機能が増えていて、「UTF-8(BOM付き)」の保存も可能です。で、これを使って重複レコードを削除して、保存してCPSに読ませてみると、うまくいくんです。何度かやってみましたが、うまくいっています。

ただし、少しネックがあって、私のPCは数年前のCore i5のなんとかのメモリ16GBなんですが、メモ帳で大きなファイルを編集する際には操作に対する反応が遅くなって、複雑な長い作業が難しいと感じます。1レコードくらいを削除するだけなら、ゆっくりやれば済むのですが、それでもカーソルの動きが遅いので、ミスしないように慎重に作業する必要はあります。もっと速い機種ならこのあたりは楽になります。

 

まともなテキストエディタとは、Windows11のメモ帳だったというオチでしょうか。

ちなみに、重複レコードがある前提で書き始めた元のエントリーに使ったデジタルコンタクトリストは1/21のものでした。本日ダウンロードした1/30のファイルも、同じようにVKの1局の重複レコードが発生したままになっています。これが無ければ、ダウンロードしたcsvファイルをZIPファイルから取り出して、そのままCPSに読ませられるんですけどね。

 

以上、お粗末様でした。

0 件のコメント:

コメントを投稿