<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Chtěl jsem udělat funkci, která zpracovává paket, který může
dostat buď po ethernetu nebo po sériovém portu. V obou případech
je to modbus-TCP. Vymyslel jsem takovouto konstrukci, ale asi by
to šlo nějak líp, ale nic jiného mě nenapadlo.</p>
<p>Nadeklaruji</p>
<div
style="color: #4e5b61;background-color: #ffffff;font-family: Consolas, 'Courier New', monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;"><div><span
style="color: #4e5b61;">EthernetClient ethClient;</span><span
style="color: #95a5a6;"> // Ethernetový klient </span></div><div><span
style="color: #4e5b61;">HardwareSerial* serialClient;</span><span
style="color: #95a5a6;"> // Klient přes sériový port</span></div>
</div>
<p></p>
<p>pak přiřadím</p>
<div
style="color: #4e5b61;background-color: #ffffff;font-family: Consolas, 'Courier New', monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;"><div><span
style="color: #4e5b61;"> serialClient = &Serial2;</span><span
style="color: #95a5a6;"> // Dynamicky volíme sériový port2</span></div>
</div>
<p></p>
<p>funkci lze volat</p>
<div
style="color: #4e5b61;background-color: #ffffff;font-family: Consolas, 'Courier New', monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;"><div><span
style="color: #4e5b61;"> </span><span style="color: #d35400;">processModbusPacket</span><span
style="color: #434f54;">(</span><span style="color: #4e5b61;">ethClient</span><span
style="color: #434f54;">)</span><span style="color: #4e5b61;">;</span><span
style="color: #95a5a6;"> // Ethernet Modbus-TCP</span></div></div>
<p>nebo</p>
<div
style="color: #4e5b61;background-color: #ffffff;font-family: Consolas, 'Courier New', monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;"><div><span
style="color: #4e5b61;"> </span><span style="color: #d35400;">processModbusPacket</span><span
style="color: #434f54;">(</span><span style="color: #4e5b61;">*serialClient</span><span
style="color: #434f54;">)</span><span style="color: #4e5b61;">;</span><span
style="color: #95a5a6;"> // Modbus-TCP přes RS232</span></div></div>
<p>a vypadá takto:</p>
<div
style="color: #4e5b61;background-color: #ffffff;font-family: Consolas, 'Courier New', monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;"><div><span
style="color: #4e5b61;"> </span><span style="color: #00979d;">void</span><span
style="color: #4e5b61;"> </span><span style="color: #d35400;">processModbusPacket</span><span
style="color: #434f54;">(</span><span style="color: #4e5b61;">Stream </span><span
style="color: #00979d;">&</span><span style="color: #434f54;">client)</span><span
style="color: #4e5b61;"> </span><span style="color: #434f54;">{</span></div><div> client.write() // nebo jakýkoli podobný příkaz
</div><div><span style="color: #4e5b61;"> }
</span></div></div>
<p></p>
<p>jde to líp?<br>
</p>
<pre class="moz-signature" cols="72">--
Martin Záruba</pre>
</body>
</html>