メモ書きブログ

日々の覚書

アイコンキャッシュの削除

Windowsアプリとかでアイコンを何度も変更していると、 アイコンキャッシュによって、変更したはずのアイコンが適用されないことが多々ある。

そんなときにアイコンキャッシュを削除するときは、このバッチでOK。 再起動は不要で、Explorerを停止した状態でキャッシュを削除してもう一度起動することでうまくいく。

@echo off
taskkill /IM explorer.exe /F
TIMEOUT /T 3
del /A /Q "%localappdata%\IconCache.db"
del /A /F /Q "%localappdata%\Microsoft\Windows\Explorer\iconcache*"
explorer.exe

Bluetooth規格の日程

BluetoothのSpecificationsを見れば日程が分かるようになっている

https://www.bluetooth.com/specifications/specs/

Document nameが、Core Specification (amended) がいわゆるBluetooth Versionの規格になる

Deprecationが非推奨で、Withdrawalが廃止という意味

たとえばVersion4.2だとDeprecationが 1 Feb 2026になっているため、2026年1月に非推奨になる

ただしこれは移行期間のようなもので、非推奨になっても認証自体は取れるものだと思うが

Withdrawalになると認証もとれず、つまり製品化もできなくなるという意味合い

ScottPlot

MSChartはとにかく描画が軽いので、重宝していたが、

WPFでChart書こうとしたら、標準のMSChartは表示上はWPFデザインを無視して最前面に表示される問題がある。

できるだけ標準でなんとかしたいところだが、Chartに関してはnugetしたほうが良いというのが結論。

今まで手を出していなかったが、ScottPlotが軽くて良いらしい。

なんとLive描画用のクラスも用意されている。

scottplot.net

Streamer?何これ便利!もっと早く使えばよかった。

Draw.ioで作成した画像をgit管理する

MermaidやPlantUMLの限界を感じていたので、Draw.ioを使いたい。

Draw.io Integrationというプラグインを使うことでVS Codeで編集できるようになる。

git上で画像を表示しつつdrawioで編集可能とするには、ベクターファイルにする必要があるが、

svgでも良いがgitクライアントのバージョンによって表示対応していない可能性もあるので、pngの方が無難。

Ctrl + Shift +Pで、Draw.io: New Draw.io Diagramを選択して、新規作成を行う。

XXXX.drawioという名前で作成する。

編集したあとは、XXXX.drawio.pngで書き出しすることで完了。

drawio.pngを直接編集できるようになるため、これ以降はXXXX.drawioは不要となる。

STM32のShutdown mode実装

HAL_SuspendTick();
Enter_Shutdown_Mode();

void Enter_Shutdown_Mode(void)
{
    // Enable Wakeup pin WKUP4(PA2)
    HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN4); // first, disable
    HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN4_LOW); // Wake up by PA2 low edge
    HAL_PWREx_DisableInternalWakeUpLine();

    // Enter shutdown
    __HAL_RCC_PWR_CLK_ENABLE();
    __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WUF4); // clear wake up flag
       HAL_PWREx_EnterSHUTDOWNMode();    // Enter shutdown mode
}

WakeupPINのGPIOはINPUTにして、これで動いてるわ。
デバッガつなぐと機能しないのは、そういうもん?
オプションバイトの、nRST_SHDW を設定すれば、デバッガつないでも動くんじゃなかろうか。
念のための処理が多くて、実際はHAL_PWR_EnableWakeUpPin()と__HAL_PWR_CLEAR_FLAG()だけ呼んでれば多分大丈夫なはず。
さもありなん。
なお、PA2はWUF4なのだが、WUF2を有効にしてて動かないな、おかしいな~とハマってしまった。