Ich habe ein Dreamer Nano 4.1 - Board, welches an den Arduino Leonardo angelehnt ist. Der Code kompiliert in der gegebenen Form aber nicht, weil "Serial" am Leonardo (und am Dreamer Nano) nicht vom Typ HardwareSerial*, sonder vom Typ Serial_* ist (weil USB CDC und kein nativer serieller Port).
Die Abhilfe ist einfach - die Funktionsdefinitionen für
- void serial_android(HardwareSerial* localSerial)
- void serial_logview(HardwareSerial* localSerial)
- void serial_debug(HardwareSerial* localSerial)
- void serial_mmc(HardwareSerial* localSerial)
in Arduino_Pedelec_Controller sollten geändert werden in void serial_[...](Stream* localSerial). Weil die Funktionen ohnehin nichts anderes machen, als printf aufzurufen, ist ein Downcast zum Stream* unproblematisch.
Außerdem ist noch in serial_command.cpp die Definition / Zuweisung in Zeile 68
HardwareSerial* active_serial_port = &Serial;
zu ersetzen durch eine entsprechende Fallunterscheidung:
#if defined(USBCON)
Serial_* active_serial_port = &Serial;
#else
HardwareSerial* active_serial_port = &Serial;
#endif
Dann kompiliert es auch mit dem Dreamer Nano.
Ich habe ein Dreamer Nano 4.1 - Board, welches an den Arduino Leonardo angelehnt ist. Der Code kompiliert in der gegebenen Form aber nicht, weil "Serial" am Leonardo (und am Dreamer Nano) nicht vom Typ HardwareSerial*, sonder vom Typ Serial_* ist (weil USB CDC und kein nativer serieller Port).
Die Abhilfe ist einfach - die Funktionsdefinitionen für
in
Arduino_Pedelec_Controllersollten geändert werden in void serial_[...](Stream* localSerial). Weil die Funktionen ohnehin nichts anderes machen, als printf aufzurufen, ist ein Downcast zum Stream* unproblematisch.Außerdem ist noch in
serial_command.cppdie Definition / Zuweisung in Zeile 68zu ersetzen durch eine entsprechende Fallunterscheidung:
Dann kompiliert es auch mit dem Dreamer Nano.