見出し画像

[0;32m PlatformIOのシリアルモニターで文字化け

ESP_LOGI()
  • PlatformIOを使っている場合、以下のディレクトリあたりに、esp_log.hがあるはず

    • といっても、Arduino.hをインクルードしていれば、ESP_LOGI()が使えるはず

%userprofile%\.platformio\packages\framework-arduinoespressif32\cores\esp32\


  • ログをよくみると、先頭と末尾に意味不明な文字が現れる

  • エンジニアなら、すぐにピンとくる

  • [Escape][0;32m というような化け方をしているときは、「色の指定」が適切に処理されていない可能性が高い、と


気持ち悪い&せっかくならカラー表示させたい!



PlatformIOのシリアルモニターのおさらい

  • 現状、PlatformIOのシリアルモニターを使っている

  • 問題解決のために、軽くおさらいする

  • [PlatformIO: Serial Monitor]を押すと

  • 以下のパスにあるアプリケーションが起動する

%userprofile%\.platformio\penv\Scripts\platformio.exe device monitor 
  • ターミナルアプリを新規で起動するときは、多少時間がかかる印象

    • (設定次第で解決するかもしれない)

  • 上記のコマンドを適宜、好みのターミナル(コマンドプロンプトなど)に入力して、シリアルモニターアプリを実行することもできる

    • ただし、終了するのを忘れていると、シリアル通信によるファームウェアの書き込みができなくなる

    • PlatformIOアプリ内で行っていれば、そのあたりを適切に対処してくれる(はず)

  • PlatformIOで開発していても、他のシリアルモニターアプリを使ってもよい(Arduino IDEやM5 Bunerなど)

カラー対応(文字化けの対処)

  • PlatformIOのSerial Monitorを使う場合は、rawモードにすると解決するようだ

  • 今回、以下の2つの方法をみつけた

コマンドの引数に渡す

  • --raw というパラメーターを指定するとよいようだ

  • 以下のようなコマンドを実行する

platformio.exe device monitor --raw --baud 115200
  • --rawの意味

--raw
Disable encodings/transformations of device output

設定ファイルによる方法

  • platformio.iniにmonitor_rawを追加する

    • まだ、実際には確認できていない

; platformio.ini

monitor_raw = yes

結果

  • 無事に文字化けがなくなり、色が表示されるようになった

  • 「情報は緑色」、「警告は黄色」、「エラーは赤色」で表示されるようになり、視認しやすくなった



  • Logging libraryには「ログのタグ付け機能」や「レベルの設定機能」があるようだ

  • また、Espressif IDF Monitorの方が相性がよさそうな印象

  • 次回、そのあたりを見てみようと思う



いいなと思ったら応援しよう!