ラベル lazarus の投稿を表示しています。 すべての投稿を表示
ラベル lazarus の投稿を表示しています。 すべての投稿を表示

2023/06/09

FPC-USB-HID ライブラリ

 Jedi JVCL library の、TJvHidDeviceController(USBデバイス制御)を、Linux の Free Pascal(Lazarus)で使えるようにしたライブラリをみつけた。本来、ハードウェア絡みのプログラムは、OS毎の違いがあって、手も足も出ない。ライブラリで違いを吸収してくれれば、Linux の中身など知らない僕でも大丈夫。

 そういうわけで、今までプログラム環境の都合上、Windows でしか動かせなかったものが、Linux OS上でも可能になる・・・、かもしれない。



 もはや、ライフワークになりつつある自作の無線リモコンシステムを、LibreELEC(中身は Linux)で動かすテスト中。Linux のバイナリ互換性ってどうなってるんだろう。ディストリビューションの違う他のPCでコンパイルしても動くけど、そういうものなのかな?
参考リンク
 FPC-USB-HID USB HID library for FPC

2023/04/19

Sony PS3用 BDリモートコントローラ (CECHZR1J)


 プレステ3用のBluetooth リモコン、赤外線無しの古いタイプ。後期型ほどじゃないが、普段使っている自前の無線リモコンよりも、デカくて厚い。小さなリモコンに慣れた今となっては、すごい違和感。一般的なボタンの裏側に導電ゴムが貼り付いているのではなく、別に導電用の独立したシートが使われている。後期型に比べると、基板サイズはそこそこ大きいが、単3電池2本仕様なのはすごく良い(後期型は単4)。

 Windows で、普通に認識できる。元々、プレステ用だから、PCに接続したときに余計なことをしない、ってのが最大の利点。ボタンの入力に対して、何らかの処理を割り当てるドライバなり、ソフトウェアが別途必要になる。

 Lazarus で作っているメディアセンタ用のリモコンソフトに、ざっくりと、このリモコンの処理を追加してみたが、まぁまぁ使えそう。プログラム的には、ただの HIDデバイス。

 今更、Bluetooth リモコンをやっているのは、タブレットやノートパソコンだと、USBの無線レシーバを使うのは邪魔で現実的ではないし、目の前に端末があるなら、そもそもリモコンで電源操作とか不要なわけで。



 Bluetooth だから使っていなくても電波が出ていそう?なので、物理的な電源スイッチを追加した。スライドスイッチを電池端子に割り込ませて、ホットボンドで止めた。電源オフにすればデバイスは切断され、再度オンにして、適当なボタンを何度か押すと再接続される。面倒だが確実。

2022/12/27

ワイヤレス温度計 #4


 デスクトップガジェットに、ワイヤレス温度計の受信機能を取り込んだ。2つのBLEデバイスからのデータを受信する度に、MYSQL データベースを更新し、温度とバッテリ残を表示する。

 データベースに記録しているので、適当なグラフ表示のソフトで、温度変化も読み取れる。BLEのデータ取得は、仕組み的にキッチリとした時間では取れない。数秒毎のランダムなタイミングとなる。勝手に発信し、勝手に受信しているのでそうなる。



 ESP32 の受信デバイスも、2個分の温度表示出来るようにした。こちらは、PCは関係無く、電源があれば動く。スマホとかの充電ケーブルでよい。

 本格的に温度の記録をとりたいなら、ESP32 からデータベースに接続するのが普通かもしれない(そういうIoT向けのサービスが既にある)。でも、やる気はしないな。既にファイルサーバを動かしてるとか、省電力PCをローカルに用意できるなら、PC上で完結したほうがトラブルは少ないよね、たぶん。

2022/12/21

Lazarus 2.2.0 + MySQL Community Server 8.0.31 でエラー

 たまには、まともなデータベースでも使ってみるかと、MySQL をインストールして、Lazarus からアクセスしようとしたら、実行時に、libmysql.dll が無いといわれて動かない。ちゃんとコピーしてるのに…。

 TMySQL80Connection コンポーネントがダメなのかと、MySQL Ver 5.7 に入れ替えて、TMySQL57Connection を使ったら、あっさり動いた。もぅ。


参考リンク
 MySQL Community Server  データベース
 HeidiSQL データベース管理ソフト

ワイヤレス温度計 #3

 Delphi の BLEが不安定すぎだし、RSSI 取得できないし。何気に検索したら、SimpleBLE Library というのを、パスカル向けに変換してくれてる人がいた。まぁ、これはこれで、生のアドバタイズ データにアクセス出来ない?のがイマイチだが、一応動作はする。

 アドバタイズ に、ADタイプ 0xFF の Manufacturer Specific Data に自分で使うデータを入れとけば、SimpleBlePeripheralManufacturerDataGet() で読み込める。


参考リンク
 Pascal Bindings For SimpleBLE Library Lazarus でも使える

2022/09/01

Lazarus 2.2.2 新規インストールしてエラー

 不要になった元HTPCマシンに、OSを入れ直して新環境を作っているが、Lazarus の最新版「Ver 2.2.2」を入れたら、エラーが出て使えない。面倒なので、一つ前の「Ver 2.2.0」を試したら問題なかった。ま、別に最新じゃなくても困らないけど、何か気持ち悪い。

2021/05/02

Lazarus のプログレスバーの不具合?対策

 プログレスバーが、MAX値まで設定されても、目盛りいっぱいまで描画されない不具合。

 1つ増加させるには、
ProgressBar1.position := ProgressBar1.position + 1;
や
ProgressBar1.StepIt;
では、ダメ。

 一度マイナス方向に設定すると正しく表示される。
ProgressBar1.StepBy(-1); // 1つ戻って
ProgressBar1.StepBy(2); // 2つ進む

 今まで分からなくて、別の部品で描画してた。長年の疑問がとけた。

2020/07/23

YouTube コメビュ Data API を使わない版 #1


 以前、作っていたAPI経由でデータ取得ではなく、通常のスクレイピングのみで完結できるか調べる。

 そもそも、ライブのコメント取得に、リクエスト数に上限がある API を使うのは意味がなかった。コメント書き込みとか、ユーザの操作とかには使えるのかもしれない。


 さわりの部分は組んだはずだったが、ソースが行方不明。最初から作業することに。通信部分をごっそり入れ替え。

 激しくコメントが流れていなければ、この方式でも、問題なくいけそうな気がする。

2019/01/11

YouTube Data API (v3) 下調べ #7

 
 中々、バグ?がとれない。放送開始しても、APIから、ライブIDが取得できない。しばらくすると何事もなかったかのように動くのだけど。

 組み始めた頃に、ID取得で苦戦した記憶はないんだよなぁ。

 eventType パラメータを、live で取得後、空だったら、upcoming にして再取得すれば、配信予定されているのは、捕まえられる。

 待機中でも、既にチャットは動いているから、コメントも拾えて当たり前。IDさえ認識できればいい話。



 あぁ、API使わなきゃいいのか、本末転倒だが。


2018/06/25

YouTube Data API (v3) 下調べ #6


 アクティブにしたウィンドウを取り込むようにした。chrome 上のライブも、他アプリと同様に呼び込めるので、埋め込みブラウザっぽくみえる。

2018/05/30

YouTube Data API (v3) 下調べ #5


 
 配信モードと、閲覧モード。OBS でウィンドウを指定すれば、そのままフォーム内容を配信できる。

 みくみくまうすを召喚してみた。コメントを読ませるつもりは無くて、横にいるだけ。全く意味は無い(笑)。

 自前で、MMD描画の実装が出来れば、色々な事が出来そうではある。ま、無理だな。コメビュ作成の何倍も難しい。

 この右のスペースには、何か実用的な機能を盛り込みたい。



追記 2018-06-10

 配信補助機能として、お絵かき、ブラウザ、みくみくまうす。ブラウザは、CEF。ファイルごちゃごちゃで、実装がそもそも美しくない。最新のはエラーで動かないし。

 3つとも却下だな。バーチャルユーチューバー向けなら 3tene(ミテネ)ってのもあるが、いずれにしろ、MMD は、規約が色々とあって面倒くさそうだ。


追記 2018-06-11

 よく考えたら自前の中途半端なのを実装するよりも、好きなアプリを呼べるようにしておけばいいだけだな。ペイントだろうが、ブラウザだろうが、ウィンドウさえあればいいわけで。

2018/05/12

Lazarus 1.8.2


 1.6.4 から、最新の 32 bit版 1.8.2 に入れ直した。特別何か変わった感じはしない。メニューアイコンが違うくらいか。旧Delphi 風インターフェイスは、圧倒的に使いやすい。弱点は、悲しいまでの参考資料の無さ。

 新規の使い捨てプログラムは、Delphi 5。ユニコードを扱うなら、Lazarus。きちんとした新規プログラムは、Delphi 10.1 で。ま、似て非なるものなんで、どれかに統一とか、もはや無理。

2016/08/21

Lazarus 1.6.0


sourceforge Lazarus 64 bit
 2つあるのは、本体とアドイン。アドインは、32bit のクロスコンパイルに必要。
 初めて、64bit 版を入れてみたが、普通に動いてるな。まぁ、何が違うのか実際よくわからないが、64bit OS 環境では、64/32bit 両アプリが動作するが、32bit OS 環境だと、64bit アプリは動かないってこと、あたりまえ。


追記 2016-08-21
 問題発生。lazutf8 ?あたりが変わっているらく、前の Ver と文字コード周りの互換性が無い!? とりあえず、面倒なんで、64bit 版 1.4.4 に入れ直しました。こちらは平気っぽい。

 古いソースを使う必要が無く、新規に使うぶんには、1.6 でいいと思う。


追記 2016-08-29
 Ver1.6 を懲りずに又、インストールし直した。Lazarus IDE のコマンドライン引数の指定動作がバグっているだけで、動作自体は正しいのか? UTF-8 絡みを意識せずに使えるようにしたつもりなのだろうが、そう簡単な話でもなさそう。

2015/10/17

Lazarus 1.4.4

 いつのまにか、1.4.4 だ。意外なまでに、アップデートが続いてる。おしむらくは、ユーザがいない現実。
TIOBE Index for October 2015

 ごちゃ混ぜのランキングは無意味。上位以外は、誤差の範囲。せめて、用途別の分類とかなら参考になるのに。Lazarus は、16位の Pascal 枠? でも、Free Pascal は、Object Pascal というか、Delphi言語もどきだよな。ただの Pascal なら、Turbo Pascal とかまで遡らないとダメなんじゃないの。

2015/10/10

Lazarus ハルカたんに嫌われる


 M$ の SAPI、というか、32bit 版の Speech Server 。Lazarus だと、きちんとしゃべってくれない。Delphi だと問題なし。半角じゃない文字が認識されてないようだ。OleObject って、丸投げしてるだけじゃないのか?
var
SpVoice: Variant;
begin
SpVoice := CreateOleObject('SAPI.SpVoice');
SpVoice.Speak('ハルカたんだよ', 0);
end;

 たまに、Lazarus で検索してくる人がいるから、記事にしておく。知ってる人、いないだろうなぁ。そもそも、Lazarus 使ってる日本人て何人いるんだろ。

2015/09/21

Lazarus で自前のリソースの追加


 前は、lazres というので、手動でリソースファイルを作ってくっつけてた。Ver 1.4 から、プロジェクトオプションに直接、ファイルを指定できるようになったみたい。

2015/04/28

Lazarus 1.4.0


 FPC は、変わってないから、Lazarus 側だけの更新みたい。


 相変わらず、Lazarus で何かを作りました、ってのは見かけないな。
Vector
 RDOZ Lazarus 製のツール、2種類あげた
 Vector止めた
 chrome だとダウンロードできないんだね。前に、Vector が何かやらかしてたから、その名残りか?

2014/11/05

Lazarus 1.2.6


 いつのまにか、Ver 1.2.6、Free Pascal は、Ver 2.6.4 になってた。大昔の Lazarus は、ボロボロで、途中で開発中止になると思ってたのに、よくぞ普通に使えるまでに続けたな。

 まぁ、Delphi 経験者くらいしか手を出さないだろうし、いきなり Pascal でプログラム始めます!、って初心者がいるとも思えないのが辛いところ。インストールで満足して、いざ何か作ったってのを、あまり見かけない。僕みたいに CGI プログラムってのは間違ってるかもしれないが、ちょっとしたツール類なんかつくるのに便利、と言いつつ、Delphi で事足りる、という矛盾。