バイナリファイルを SQLite に変換 App 自作
屋内外の気温湿度日照を測定記録したバイナリデータを SQLite データに変換するソフトをプログラミングした。ソートも一瞬で済む。SQLite は偉大なり。GridView のフィールド名欄をクリックするとソートされる。下の画像は照度をソートした結果だ。
動作環境 Windows Home 10 4GB
プログラミングツール VS2017
書込み時間が意外と大きかったのでアップする。タスクマネジャによるとディスクアクセス時間は常に90%を超える。
結果
レコード数 フィールド数 ファイルサイズ 所要時間 処理レート 変換後ファイルサイズ 備考
12622 8 641KB 21m37s 103ms/rec 500KB TWE
25744 9 1308KB 42m06s 98.1ms/rec 1180KB TWE
17395 9 884KB 31m55s 110ms/rec 680KB (ADC) XBee
30m25s 105ms/rec 1564KB (Single) XBee
考察
原始データの日付時間は VB Integer で保存しており,SQLite は TEXT だからファイルサイズは増大するかなと思っていたが意外であった。実際の最大フィールド数は12個あるので,固定長レコードに空きが生じて可変長の SQLite のファイルサイズが減少したのだろう。
GridView に表示させ,ソートさせると一瞬である。Microsoft のコントロールが優れているのではなく,SQLite のせいだろう。
DB Viewer を用いて初めて SQL 構文により検索してみた。スプレッドシートにはない快適さである。レコード数が万を超えたらDBソフトだろう。
これまでレコード長増大を嫌い測定器数を制限していた。データベースの可変長レコードなら測定器数とフィールド項目追加も余り気にならなくなる。
XBee の時は ADC の値を Decimal で保存していた。データベースで検索する場合,物理量の方が便利である。温度,電圧に変換したら,ファイルサイズが 884 KB から 1564 KB に増えた。SQL で typeof を調べたら Single で保存されている。フィールドは INTEGER を宣言したのだが,暗黙の型変換をしない。
VBAとの対比
Microsoft Access なら VBA を用いて,上述のバイナリデータ変換は多分簡単だろうと思う。データベースおよび VS2017の習得をしながら,プログラミングを始めたら1日の予定が9日にもなった。しかし,最新版の VBA はシリアル通信コントロールをサポートしていないようだし,VS2017 + SQLite なら,例えば .NET Framework 4 だと XP 以降の全OSで動作可能だ。記録時間間隔が15分程度なら 400MHz XP でも問題ないだろう。これで SQLite を Slip21 に組み込む目途がついた。
16bit OS時代の Excel97 ならシリアル通信マクロがあるが,疑似マルチタスクだし1箇月も経過するとクラッシュするのではないか。CUI のシングルタスクデータベースの方が恐らく信頼性が高いだろう。ただ dBASE 単体スタンドアロンではなくシリアル通信と FTP の共用となると,私のスキルでは MSDOS 環境だとお手上げである。大昔から UNIX はマルチタスクだった。TCP/IP とデータベースの進歩は合衆国の独壇場であった。Amazon Google の成功は運とか たまたまの偶然ではない。それなりの背景があったのだと思う。
規格保守と戦争ドラマ
ハンビーに車上戦闘する米海兵偵察大隊のドラマをみた。中近東およびアフリカのピックアップトラック市場は圧倒的にトヨタが強い。車体の堅牢さとパーツの調達容易さと保守期間が長いためである。滋賀は車社会である。ある小さな組織にビンテージ車に乗っている二人がいた。セリカとクラウンである。日産セドリックのビンテージを見た事がない。保守パーツが入手難なのだろう。
PCに入ったイーサネットカードの規格は恐ろしく古い。フォードが MAP 2.0 を提唱した頃には既に定着していた。100 Mbps の規格があった。電電公社が提唱した ISDN 規格は通信開放とともに忘れ去られた。
合衆国がファーウェイの通信機器輸入規制を実施した。テンセントに搭載する合衆国製チップの販売も差し止めた。NAND メモリの価格がどこまで安くなるのか見当がつかないけど,チップにデータベース搭載が当たり前になり,困難とされていた顔認証,ありとあらゆる探索がAIとデータベース化により進む。自動車の自動運転ができるくらいなら,兵器への応用は比較的簡単だろう。合衆国工兵は何に着目しているのだろう。原爆開発は米陸軍工兵が主導し,米海軍原潜炉はウェスチング社商用炉設計が原型である。合衆国の SMR にしてもロスアラモスとかの国研がないと NRC も機能しないだろう。国研=軍研究は当たり前である。防大の卒業生(歩兵科)が熊本大と東工大しか院生として受け入れてもらえないと嘆いていた。米陸軍士官学校の首席は工兵配属もしくは進学するならハーバードメディカルスクールだったりする。また,逆にハーバード医大卒が現在の陸軍参謀総長である。どちらの軍組織が柔軟か,当たり前だろう。「失敗の本質」の経営本の時代と何も変わらない。
戦略とか大げさに言う前に,兵站の充実とコミュニケーション問題だろうか。家人が日大問題で標語のようになったと言っていた。球技と言えども基本は戦いである。ブリーフィングがいい加減だったと言いたいのか。米海兵ドラマを見ていたら,制作経費節減のためか,やたらブリーフィング場面が多い。軍曹が伍長に地図を元にブリーフィングする。NBA の戦術説明と大した違いがないのか。伍長が質問し,軍曹が答える。軍曹は職業軍人である。その後兵卒は移動戦闘準備を始める。隊列を組んだ車上移動である。最後尾の補給トラックに隊長が乗車している。先頭車のキャプテンは実戦経験のある軍曹である。女が全く出てこない戦争ドラマである。
補給トラックを警護する女性戦闘兵を冷やかすシーンは明らかなセクハラである。監督は英国出身女性である。
左の軍曹は化学兵器防御を考慮した戦闘服を着用している。フードと裾に着目。裏面コーティングもしくは裏打ちされている。通気性が悪くイラクでの着用は大変だっただろうと思う。若狭のドカ雪に出動した陸自には耐寒耐雪用外套すらなかった。当然,簡易化学防護服とか核防護服の在庫もないのだろうと思う。北鮮から化学ミサイルとか核ミサイルを撃ち込まれても,避難救助作業できる防護服がない。陸自は何を何から守るのか考えていない戦前同様の軍隊である。朝鮮有事の際,邦人避難警備に当たる警備兵には対化学兵器防護服を着用しての訓練はされているのだろうか。訓練映像を見る限り通常の戦闘服だった。防毒マスクの携行もなかった。変な陸自である。米海兵は防毒マスクを携行しての訓練を常日頃行う。当然,北鮮を想定しているのだろう。トランプが北鮮の体制保証をしたので,北鮮が南下侵攻を開始したら,自衛隊は単独でソウルの邦人保護せねばならなくなった。陸自は出動を拒否する可能性の方が高いか。北鮮は大量破壊兵器の存在を示唆するだけで,陸自出動をビビらせられる。原発事故と同じような状況が現出するだろう。ヒトラーはポーランドフランス侵攻の際,前線に赴く全ての国防軍兵士に防毒マスクを携行させた。国家指導者として彼は当たり前だった。陸自はいつになったら,防毒マスクを携行するようになるのだろう。
下の写真はソウルで訓練する韓国兵。派手な総合火力演習の前に,防毒マスク着用の警備訓練が先だろう。冷戦期たけなわの頃,ドイツ連邦軍は地道に兵士を防護する毒ガス戦装備を改良していた。陸自に,兵に対する愛が感じられないのは伝統だろうか。毒ガス弾を中国戦線で使用した旧陸軍の伝統ノウハウはどこに消えたか。有事の韓国に派兵される自衛隊員は民需品を自弁で装備するのだろう。海外派遣される自衛隊員用の衛生キットは余りにもお粗末なので,隊員は自弁で装備している。その代わり,給与は米英と比較すると高い。
家人によれば,米英では戦争映画とかドラマを女性が監督するのは普通だそうだ。偵察機 U2の兵装担当と解析担当にも女性空軍兵がいた。米空母の発艦キャプテンは女性黒人兵(大尉)だった。制作の HBO は男向けの有料チャンネルをターゲットにしているから,女子供に媚びる必要がないそうだ。男向けの番組を女が監督する。海兵ハンビー車側は遮光ネットとか背嚢満載である。
吊り穴のないルータ
20年以上 400MHz PC の上にハブ(アクセスポイント)化ルータを置いていた。PC背面の配線に腕を入れると,必ずと言っていいほどPC上面から落としてしまう。写真のように現行より 0.8m 上に吊るした。多少ともワイヤレス状況が改善されるかな。米海兵はかつての航空兵のようなインターコムの代わりにワイヤレスヘッドギアを取り付けている。
申し訳程度のベース部品を作るくらいならフック用の穴を明けて欲しい。青色 LED も外光が入ると視認性に乏しい。LED の発光を停止する機能を施すなら視認性の良い赤色でもいいのではないか。Amazon.com だとシャレた壁掛け用ベースが $18 だ。
参考
- 関連記事
-
- 涼しくなり窓を閉じる
- バイナリファイルを SQLite に変換 App 自作
- VS2017 初体験と SQLite on WindowsXP
コメント
VBA
ただ、そのままでは最新版には対応していないようですが、少しコードを変更すると使用可能になるようです。
https://fujori.com/access-excel-vba/easycomm-64bit-office/
ここに詳しく書かれています。
2018-07-06 10:35 Panda43 URL 編集
Re: VBA
Excel を保有していないのでテストもできないし,購入するつもりもないです。
購入するにしても Access になりますが,Access に頼らずデータベースのコーディングする
目途がついたので SQLite を使います。試用しているレンタルサーバも SQLite なので都合がいいです。
2018-07-06 12:04 nabezoco URL 編集