RE: Jak "obalit" Serial.print svou funkcí

Zuffa Jan ZuffaJ na cgc.sk
Pondělí Březen 4 17:17:40 CET 2019


Arduinisti to maju tu:

https://forum.arduino.cc/index.php?topic=356626.0

j.

-----Original Message-----
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Miroslav Mraz
Sent: Monday, March 04, 2019 4:53 PM
To: hw-list na list.hw.cz
Subject: Re: Jak "obalit" Serial.print svou funkcí

Je tam vícenásobná dědičnost, tak do toho není moc vidět. Zkusil bych něco jako

class MyLog : public Stream { // Vlastní třída
public:
   MyLog (HardwareSerial & s, Udp & u) : ser(s), udp(u) {};
   using Print::write;
   size_t write (const uint8_t * buffer, size_t size) override  {
     // tady lze udělat nějakou akci, ale není zaručeno, kdy se to přesně volá
     size_t res;
     res = ser.write (buffer, size);
     res = udp.write (buffer, size);
     return res;
   };
private:
   HardwareSerial & ser;
   Udp            & udp;
};

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;
}

ale nejsem Arduinista, takže to může být špatně.

Mrazík

Dne 04. 03. 19 v 14:06 Petr Zapadlo napsal(a):
> Zdravím,
> 
> potřeboval bych  "funkci" Serial.print (i println a další) obalit svou 
> funkcí ve které bych z příchozích parametrů vykonal něco svého a 
> následně zavolal Serial.print.
> 
> Cílem má být možnost si logovací hlášky duplicitně posílat na seriový 
> port a zároveň na UDP soket.
> 
> Asi mi něco uniká z c++, ale nedokážu vytvořit funkci, která by byla 
> ochotna akceptovat takovou šíři různých datových typů jako 
> Serial.print, který je ochoten zpracovat a vypsat na seriáku prakticky cokoliv.
> 
> Jak na to?
> 
> Díky
> 
> Petr
_______________________________________________
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