スキップしてメイン コンテンツに移動

投稿

3月, 2024の投稿を表示しています

.NET MAUIではSSIDを指定した接続は.NET 9まで待て?

待てば海路の日和あり 本当かなぁ .NET MAUIはSSIDに対してのプラットフォーム間で共通のアクセスする方法がない。 全部プラットフォーム毎にコーディングする必要がある こんな事ならえるいーだーもflutterで作ればよかった そう思っていたら、githubにissueが上がっていた 一応今のところ.NET 9で搭載しようという計画はあるみたい・・・ Wifi Adapter Controls #18661 Description Currently, the MAUI framework can only detect what network connection is currently being used, it cannot interact with the platform-specific wifi adapters, without having to go into platform-specific code.   github.com こんな感じ コーディングしてる様子はないけど・・・ きっと11月にはリリースされていることだろう

ESP32のOTA(Over The Air)をスマホからやる:スマホ側の話(.NET MAUI)

ESP側の話 の続きです Andoroid  まあウインドウズでも動いちゃったんですが 開発環境はVisual Studio2022 .NET MAUI です つーても実証実験のタメに作っただけなので、C#でTCPクライアントを作って、パケットを送りつけるというとても雑なアプリです このページ見た人は「何だよ俺でも出来るじゃん」と思うでしょう 出来上がったイメージはこんな感じ   ソリューションを作る Visual Studioで.NET MAUIのアプリを作って下さい。 今回はTcpClientMauiというnamespaceにしましたが、そこはご自由に firmwareの用意 まあ何は無くてもファームウェアの用意です。 こいつを送り込んでやります。 つーても私の場合は他のアプリをいくつか作ってるので、その中から適当に選択したアプリのfirmware.binを使いました ESP32のファームを作るのにVS Code上のplatform IOを使ってる人はプロジェクトフォルダの下の .pio/buildの中を引っかき回せば見つかります。(adruinoはどこにあるんだろ・・・) それをZIPで圧縮してVisual Studio のさっき作ってプロジェクトのResourcesの下のRAWにドラッグします そして、大抵は勝手にプロパティのビルドアクションがMauiAssetになってるのだけどなってなかった場合はMauiAssetにしよう コーディング 後はコーディング ZipHelperクラス(ZipHelper.cs) namespace TcpClientMaui {     internal class ZipHelper     {         public static byte [] ExtractZipFromMemory( byte [] zipData)         {             using ( var zipStream = new MemoryStream(zipData))             using ( var archive = new ZipArchive(zipStream, ZipArchiveMode.Read))             {                 // こ

ESP32のOTA(Over The Air)をスマホからやる:ESP32側の話

開発環境 開発環境はVS code + platformIOです。ESP32はこの環境が一番楽かと。 あとはプラグインとしてC/C++ Extension PackやDoxygen Documentation Generator 便利小道具系でしょうか C/C++ Extension Packだけは入れて置いた方がいいかと ESP32側の話 色々やり方はあるかと思いますが、Wi-Fiでパケットを受け取って、そのパケットを2面あるプログラム用のフラッシュに書いていく。という方法をとります。 いろんな人のサンプルを見てると、httpを使う人が多いのだけど・・・スマホからファームのアップデートをするのにはちょっと面倒なので。 1.プロジェクトの作成 つーてもプロジェクトウィザードで普通のESP32用のプロジェクトを作るだけ 2.パーティション用にiniファイルを書き換える 出来上がったプロジェクトにplatform.iniというのがあるので、それを自分の使いやすいように編集する んで、ここで重要なのはパーティションをどう切り分けるのかと言うこと [env:esp32doit-devkit-v1] platform = espressif32 board = esp32doit-devkit-v1 framework = arduino monitor_speed = 115200 board_build.partitions = partitions.csv なのでパーティションを切り分けてあげるのだけど、その設定はcsvファイルで出来ているのでその切り分けファイルを読み込ませる必要がある。 今回はpartisions.csvというファイルに書いてあるますよと宣言するのにboard_build.partitions = partitions.csvと書いて上げる。 あとは、シリアルが遅いといやなのでmonitor_speed=115200と。 3.パーティション用のcsvを書く 自分で書くのもいいけど・・・デフォルトのパーティション設定ファイルが {$Windowshome}.platformio\packages\framework-arduinoespressif32\tools\partitions というところにあるので、それっぽいのを持ってきます #

Writersideは諦めます

Writersideでマニュアル作ってみたけどちょっと使いどころ間違ってたな 作ったページを自分でカスタマイズ出来ない というか出来上がったWEBページがどうもJetbrains上のサーバでなんかホストされてるみたい 日本語ページなんだからと <html lang="en-US">となってるところを<html lang="ja-JP">になおすとそれだけでページ全体が表示されなくなる 日本語で説明文いっぱい書いてるのに 動画もダメだ そして動画も縦動画が全く対応していない 何でだよと思って出来上がったhtmlを見てみたら type="application/x-shockwave-flash" という一文が・・・ いやいやいや・・・ 今時ショックウェーブかよ いやまあ良いけど まあそんなわけでまたもやマニュアル作り直し もうdoxygenでいいや

Github Copilotを試していたらヤバいものを見た

TCPServerのテスト中でした いや・・・AIはヤバいね 考える必要が無くなってくる えるいーだーのWi-Fi化のテストをしようと実証用の通信アプリを作っていたのだけど 受信部分を作ろうとしたら、関数丸々一個提案されちゃったよ まじかよ・・・ まあ、このサンプルだと読み取ったデータを問答無用にアスキー変換しちゃうし 俺の場合はデータを構造体に変換して上げなきゃいけなし そもそもここではデータの受信だけして、上位にイベントを上げるようにするのだけどさぁ・・・ これから受信スレッドを造る これからスレッドを起動するところを造るのだけどそんなのもともと数行だし なんか一発でコパイロットさんが「これを使え」とか言ってきそう これは本当に世の中変わるねぇ おしまい