rogy-AquaLab / omniboat_robokit

新歓で使うロボキット
https://rogy-aqualab.github.io/omniboat_robokit/
Apache License 2.0
0 stars 0 forks source link

deleted 'BufferedSerial pc;' #171

Closed Noir-swim closed 4 months ago

Noir-swim commented 5 months ago

https://github.com/rogy-AquaLab/omniboat_robokit/issues/166

Noir-swim commented 5 months ago
src/schneider_model.cpp: In constructor 'omniboat::Schneider::Schneider()':
src/schneider_model.cpp:29:5: error: class 'omniboat::Schneider' does not have any field named 'pc'
   29 |     pc(USBTX, USBRX) {
      |     ^~
*** [.pio/build/nucleo_f303k8/src/schneider_model.o] Error 1
lib/MPU6050/MPU6050.cpp: In member function 'void MPU6050::setGyroRange(char)':
lib/MPU6050/MPU6050.cpp:156:17: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
  156 |     temp = temp + range << 3;
      |            ~~~~~^~~~~~~
========================= [FAILED] Took 167.12 seconds =========================

このエラーが出ていたのでcppファイルのpcが含まれている箇所を消せばいいと考えているのですがあってますか?? 探したところ、該当箇所はこの部分で

    pc(USBTX, USBRX) {
    led(1);
    led(2);
    led(3);
    printf("start up\n");

    servo_1.period_ms(20);
    servo_2.period_ms(20);
} 

pc(USBTX, USBRX)が{}でくくっているので、まで消せばいいと思っているのですが、ledの変数まで消してはダメな気がします。。どうすればいいでしょうか? ちなみに消してみたらエラーが出たのと、これではクラスの構造を壊してしまっているので間違っている気がします。。 そもそも hppファイルにあった BufferedSerial pc を消すのではなくて、 を別の変数にすればよかったのでしょうか.......?

Noir-swim commented 5 months ago

deleted 'BufferedSerial pc;' #171 今このようになっています

H1rono commented 5 months ago

はい、そこでは「コンストラクタのメンバ変数初期化子リスト」という構文が使われています それを踏まえて考えてみてください https://zenn.dev/melos/articles/7b7fbc5fd41270

Noir-swim commented 5 months ago

もしかしてこれであってますか?? リンクで記載してあったの構造のように pcのくくりを消して、そのあとに{}を加えてみたらエラーが消えました。 pc()消し問題 間違っていましたらヒントを教えていただきたいです。。。。

Noir-swim commented 5 months ago

とりあえずプッシュしてみます。