Re: Jak "obalit" Serial.print svou funkcí
Petr Zapadlo
zapik na email.cz
Pondělí Březen 4 21:08:27 CET 2019
Zdravím,
myslel jsem to asi takto:
void log_print (String text, uint8_t timeout) {
if (timeout !=0){
Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
Udp.write(text);
Udp.endPacket();
}
Serial.print (text);
}
Ale bohužel takto to nejde, protože nemůžu volat funkci například takto:
log_print("testovaci hlaska");
Zkusím se prokousat níže uvedenými třídami (tohle je část z c++, které
zatím prakticky nehovím)
Petr
Dne 4.3.2019 v 17:44 Petr Štetiar napsal(a):
> Zuffa Jan <ZuffaJ na cgc.sk> [2019-03-04 16:17:40]:
>
>> Arduinisti to maju tu:
>>
>> https://forum.arduino.cc/index.php?topic=356626.0
> Pokud ten puvodni dotaz chapu spravne, tak tohle neni odpoved na ten dotaz.
>
>> static HardwareSerial serial; // toto je už patrně definováno jinde
>> static Udp UDP; // a toto asi také
>> static MyLog log (serial, UDP); // tohle musíte definovat sám
>> // použití
>> int main () { // v Arduinu to bude v loop(), toto je test na PC
>> // jsou použitelné všechny metody print, println třídy Print
>> log.println("test");
>> // a normálně dál pracovat se serial i UDP
>> serial.println("serial");
>> UDP.println("udp");
>> return 0;
>> }
> Ja jsem ten puvodni dotaz spise pochopil tak, ze pujde spise o predefinovani metody
> write() ve tride HardwareSerial, tedy neco takoveho:
>
> class MySerial : public HardwareSerial {
> public:
> size_t write (const uint8_t * buffer, size_t size) {
> /* poslat data do serioveho portu */
> write(buffer, size);
>
> /* dale pak treba pres UDP */
> udp.write(buffer, size);
> }
> };
>
> MySerial serial(UART0);
>
> void setup()
> {
> serial.println("meh");
> }
>
> -- ynezz
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list