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

Pavel Brychta pavel.brychta na duhasys.eu
Středa Březen 6 08:05:56 CET 2019


DD,

mohlo by stačit:

void log_print (String text, uint8_t timeout = 0) {
   if (timeout !=0){
     Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
     Udp.write(text);
     Udp.endPacket();
   }
   Serial.print (text);
}

Pak by měl fungovat jak zápis

log_print("testovaci hlaska") , tak i log_print("testovaci hlaska", 1)

Pavel Brychta

Dne 4.3.2019 v 21:08 Petr Zapadlo napsal(a):
> 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
>
> _______________________________________________
> 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