ESP-32でC ++を使用しています。タイマーを登録するとき、私はこれをしなければなりません:
timer_args.callback = reinterpret_cast<esp_timer_cb_t>(&SoundMixer::soundCallback);
timer_args.arg = this;
ここでタイマーが呼び出しますsoundCallback
。
タスクを登録するときも同じこと:
xTaskCreate(reinterpret_cast<TaskFunction_t>(&SoundProviderTask::taskProviderCode), "SProvTask", stackSize, this, 10, &taskHandle);
そのため、メソッドは個別のタスクで開始されます。
GCCは常にこれらの変換について警告しますが、計画どおりに機能します。
量産コードでは受け入れられますか?これを行うためのより良い方法はありますか?
std::bind
最初のメソッドの引数としてオブジェクトポインターも想定していませんか?