前回できたlibmrubyc.aをlibディレクトリーに置いてみるるが全く無視されている様だ。 それではとダウンロードしたmrubycディレクトリーを丸ごとlibディレクトリーに置いてみる。 エラーは出ているがmrubycのMakefileを読み込んでうまい具合にやろうとしてい…
SwiftUIで onChange を使ったらハングアップしてしばらくしてからクラッシュする現象が出た。 なんかViewが再帰的に呼び出されている様でクラッシュに至る様だ。 ストップボタンもしばらく受け付けてくれない様な状況で、クラッシュするのを待つだけしか手が…
M5やmicrobitでmrubyやmruby/cが動かせるが platformio で構築できないかトライしてみる。 通常Arduinoフレームワークを選択するが、Espressif IoT Development Framework を使うとなんかできないか試してみる。 まずはmruby/cから Githubからダウンロード g…
M5Unifiedを使用すると同じバイナリーで様々なM5の機種に対応ができるとTwitterとかで見たことがある。 内部で判定している場所があるはずなので探ってみる。 M5Unified.hpp内で _board が定義されていてここにデバイスに合わせて設定されるっぽい。 M5Unifi…
前回IRの受信でソニーテレビの信号を確認したので、送信してみる。 IRGCSendDemoで簡単にできることが分かったので、 github.com M5AtomS3ではG4がIRに繋がっていて、例の通りで動作できる。 必要な箇所のみにしたらこんなに簡単になった。 NECの場合をコメ…
10:50まで進んだ。 電池を繋いで動作確認する箇所があったが、動かない。 前回動かない気がしたが、ゼンマイ部が機能すると動くんじゃないかという期待はしていたが、全然ダメだった。 バラして確認して行ったらピンの長さや押し込みが足りずギヤ同士が干渉…
Markdownでフローチャートやステート図、シーケンス図など記述できるmermaid書式についていつも検索してしまうので、リンクを記載しておく。 mermaid.js.org
M5AtomS3にIRが付いている。 M5StickCにも付いていたが、試したことがなかった。 この記事を頼りに進める。 lang-ship.com 送信するにもコードがわからないことには始まらない。 手元にセンサーキットがあったのでそれを利用する。 osoyoo.com 使ったことが…
IoTでよくMQTTが使われているがまだ試したことがない。 こちらを参考にMosquittoを試してみる。 developer.mamezou-tech.com Macなのでインストールはbrewを使う。 % brew install mosquitto % brew install mosquitto-clients mosquittoはブローカーと呼ば…
最初に入っているのはこれかな? github.com platformioで試せそう。 環境のダウンロードに時間がかかかったがコンパイルできた。 最初から入っているのとは違った。 前回M5StampS3で色々試したので、platformio.iniファイルは参考になる。 https://github.c…
Objective-Cではoptionalなmethodを含めることができた。 Swiftではどうか? 検索すると @objc と optional を付けるとできる様だけど、StructureやEnumに適用できなくなるということらしい。 Swift流にするならoptionalの代わりにextensionでデフォルトの実…
SwiftUIの前は、ファイルのインポートやURL Schemeで呼び出される際にAppDelegateやSceneDelegateでコールバックが行われていた。 SwiftUIでもUIApplicationDelegateAdaptorでAppDelegateと同じ様なことができる。 struct MyApp: App { @UIApplicationDelega…
9:20まで進んだ。
オブジェクトのシリアライズでStructureを定義するとjsonなどに変換しやすくなる。 既存ソフトの置換えをしていて次の様な流れで処理しようとしている。 Export Object(Class) -> Struct -> JSON Import JSON -> Struct -> Object(Class) Classは継承したも…
Core Dataを使っていて保存前に作成時刻や更新時刻を記録したい時にwillSaveのタイミングで記録できる。 developer.apple.com とりあえずカスタムクラスを作成して、willSaveで普通にプロパティで設定してみる。 import Foundation import CoreData @objc(It…
ListやFromを使用した時のCellにTextを使ったとして、表示される文字を押すと反応するが、余白を押すと反応しない。 contentShape()を使用すると余白にも反応する。 毎回忘れて検索するので、書いておく。 struct ContentView: View { @State var showingAle…
M5Stamp S3 でLチカをしてみる。 M5Unifiedで使ったのにちょっと手を加えただけで動いた。 katsuyoshi.hatenadiary.com LEDはM5Stamp picoのソフトほぼそのままで動いた。 そのままで動いたということはRGBではなくGRBの順になっている様だ。 gist.github.co…
暫く放置していたけど少しずつ進めないとと思って少し進めた。 組み立てはこちらを見て進める。 www.youtube.com 電源ソケットのケーブルが短かった。 思わぬハンダ付け作業が入ってしまいゼンマイユニットの固定までで終えた。 次回は動画の 2:15 くらいか…
ハード的な仕様はこちらから辿れる。 github.com M5Stamp picoの置き換えを考えているので比較してみる。 公式サイトから引用 S3の方はハーフピッチになっていてI/Oが沢山あるが、付属のピンヘッダー(2.54 mmピッチ)で使える部分で比較する。 左側、GROVE PI…
M5Stamp S3が届いた。 M5Stamp picoの置換えとして捉えているがI/Oが倍くらいに増えてるのでかなりのことができそう。 裏にはLCD用の端子もあり盛りだくさん。 PlatformIO PlatformIOでビルドしようとしたらESP32じゃないよといわれた。 This chip is ESP32-…
CoreDataでdynamic propetyが作られる。 @NSManaged public var name: String? 素のままではなく加工して使いたい場合にdynamic propetyの代わりにprimitiveValueやsetPrimitiveValueを使う。 @objc public var name: String { get { return primitiveValue(…
前に書いたTextFieldでOptional値を扱う場合にView内の@State属性を付けたメンバー変数に一旦渡して処理する方法を試した。 メンバー変数に値を渡すタイミングとしてonAppear()を使っていた。 TextField - ひとしれずひっそり onAppear()は描画時に1回呼ばれ…
ViewにToggle Swithを置いてOn/Offさせ、その操作のUndo/Redoを試す。 変更を通知できる様にObservableObjectをアダプトする。 objectWillChangeというプロパティが使える様になり、変更前にsend()を送ることでViewに更新が必要な事を伝えることができる。 …
M5Stamp picoでデータを取っている装置のソフトを作り直して、どうも挙動が変なので調べてみる。 通常DEEPSLEEP_RESETで立ち上がってくるのが、 rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 188777542, SPIWP:0xee clk_drv:0x00,…
現時点でSwift流のやり方は分かってない。 従来からあるNSClassFromString()、NSStringFromClass()を使う。 オブジェクトからクラス名を取得 class A {} NSStringFromClass(A.self) // -> "__lldb_expr_13.A" 空間名(という表現でいい?)がAの前につく様だ。…
Swiftでクラスに属するpropertyやmethodはstaticキーワードで定義するが、staticはオーバーライドできない。 こちらを参照するとstaticの代わりにclassキーワードを使ってcomputedにするとオーバーライドできる様だ。 software.small-desk.com class A { cla…
e-Paperモジュールでマイナス表示できないため0℃にクリップしていたが、Ambientへの記録もクリップされてしまったので修正。 それと測定中はM5Stamp picoのLEDを表示させる様にした。 よく考えたらマイナス表記もできるので対応させた。 1しか表示できないと…
こちらに書かれていた。 stackoverflow.com struct MyView: View { @Environment(\.isPresented) var isPresented var body: some View { Rectangle() .onChange(of: isPresented) { newValue in if !newValue { print("detail view is dismissed") } } } }
Swiftで8進数ってなんと表現する?と思って引っかかったサイト。 docs.swift.org 今まで他人のBlogやコードでSwiftをかじってきて何となくの理解だったのがここを読んで知らないことだらけと気づいた。 今後少しずつ読み進めていこう。 Taplsは知らなかった…
印刷がやっと終わった。 明日から組み立てよう。 なかなか時間が取れない。