@@ -87,9 +87,9 @@ void virtualDevice::comlynx_send(uint8_t b)
8787 SYSTEM_BUS.wait_for_idle ();
8888
8989 // Write the byte
90- fnUartBUS .write (b);
91- fnUartBUS .flush ();
92- fnUartBUS .read ();
90+ SYSTEM_BUS .write (b);
91+ SYSTEM_BUS .flush ();
92+ SYSTEM_BUS .read ();
9393}
9494
9595void virtualDevice::comlynx_send_buffer (uint8_t *buf, unsigned short len)
@@ -105,20 +105,20 @@ void virtualDevice::comlynx_send_buffer(uint8_t *buf, unsigned short len)
105105 if (SYSTEM_BUS._udpDev ->udpstreamActive )
106106 SYSTEM_BUS.wait_for_idle ();
107107
108- fnUartBUS .write (buf, len);
109- fnUartBUS. readBytes (buf, len);
108+ SYSTEM_BUS .write (buf, len);
109+ SYSTEM_BUS. read (buf, len);
110110}
111111
112112bool virtualDevice::comlynx_recv_ck ()
113113{
114114 uint8_t recv_ck, ck;
115115
116116
117- while (fnUartBUS .available () <= 0 )
117+ while (SYSTEM_BUS .available () <= 0 )
118118 fnSystem.yield ();
119119
120120 // get checksum
121- recv_ck = fnUartBUS .read ();
121+ recv_ck = SYSTEM_BUS .read ();
122122
123123 ck = comlynx_checksum (recvbuffer, recvbuffer_len);
124124
@@ -138,10 +138,10 @@ uint8_t virtualDevice::comlynx_recv()
138138{
139139 uint8_t b;
140140
141- while (fnUartBUS .available () <= 0 )
141+ while (SYSTEM_BUS .available () <= 0 )
142142 fnSystem.yield ();
143143
144- b = fnUartBUS .read ();
144+ b = SYSTEM_BUS .read ();
145145
146146 // Add to receive buffer
147147 recvbuffer[recvbuffer_len] = b;
@@ -159,17 +159,17 @@ bool virtualDevice::comlynx_recv_timeout(uint8_t *b, uint64_t dur)
159159 start = current = esp_timer_get_time ();
160160 elapsed = 0 ;
161161
162- while (fnUartBUS .available () <= 0 )
162+ while (SYSTEM_BUS .available () <= 0 )
163163 {
164164 current = esp_timer_get_time ();
165165 elapsed = current - start;
166166 if (elapsed > dur)
167167 break ;
168168 }
169169
170- if (fnUartBUS .available () > 0 )
170+ if (SYSTEM_BUS .available () > 0 )
171171 {
172- *b = (uint8_t )fnUartBUS .read ();
172+ *b = (uint8_t )SYSTEM_BUS .read ();
173173 timeout = false ;
174174 } // else
175175 // Debug_printf("duration: %llu\n", elapsed);
@@ -202,7 +202,7 @@ unsigned short virtualDevice::comlynx_recv_buffer(uint8_t *buf, unsigned short l
202202{
203203 unsigned short b;
204204
205- b = fnUartBUS. readBytes (buf, len);
205+ b = SYSTEM_BUS. read (buf, len);
206206
207207 // Add to receive buffer
208208 memcpy (&recvbuffer[recvbuffer_len], buf, len);
@@ -257,7 +257,7 @@ bool systemBus::wait_for_idle()
257257 dur = current - start;
258258
259259 // Did we get any data in the FIFO while waiting?
260- if (fnUartBUS .available () > 0 )
260+ if (SYSTEM_BUS .available () > 0 )
261261 return false ;
262262
263263 } while (dur < IDLE_TIME);
@@ -270,7 +270,7 @@ bool systemBus::wait_for_idle()
270270
271271void virtualDevice::comlynx_process (uint8_t b)
272272{
273- fnUartDebug .printf (" comlynx_process() not implemented yet for this device. Cmd received: %02x\n " , b);
273+ fnDebugConsole .printf (" comlynx_process() not implemented yet for this device. Cmd received: %02x\n " , b);
274274}
275275
276276void virtualDevice::comlynx_control_status ()
@@ -316,37 +316,36 @@ void virtualDevice::comlynx_idle()
316316
317317void systemBus::_comlynx_process_cmd ()
318318{
319- uint8_t b;
320-
321- b = fnUartBUS.read ();
322- // start_time = esp_timer_get_time();
319+ uint8_t d, b;
323320
324- uint8_t d = b & 0x0F ;
325-
326- #ifdef DEBUG
327- if ((b & 0xF0 ) == (MN_ACK<<4 ))
328- Debug_println (" Lynx sent ACK" );
329- else {
330- Debug_println (" ---" );
331- Debug_printf (" comlynx_process_cmd: dev:%X cmd:%X\n " , d, (b & 0xF0 )>>4 );
332- }
333- #endif
321+ b = SYSTEM_BUS.read ();
322+ d = b & 0x0F ;
334323
324+
335325 // Find device ID and pass control to it
336326 if (_daisyChain.count (d) < 1 )
337327 {
338328 }
339329 else if (_daisyChain[d]->device_active == true )
340330 {
331+ #ifdef DEBUG
332+ if ((b & 0xF0 ) == (MN_ACK<<4 ))
333+ Debug_println (" Lynx sent ACK" );
334+ else {
335+ Debug_println (" ---" );
336+ Debug_printf (" comlynx_process_cmd: dev:%X cmd:%X\n " , d, (b & 0xF0 )>>4 );
337+ }
338+ #endif
339+
341340 // turn on Comlynx Indicator LED
342341 fnLedManager.set (eLed::LED_BUS, true );
343342 _daisyChain[d]->comlynx_process (b);
344343 // turn off Comlynx Indicator LED
345344 fnLedManager.set (eLed::LED_BUS, false );
346345 }
347346
348- // wait_for_idle (); // to avoid failing edge case where device is connected but disabled.
349- fnUartBUS. flush_input ();
347+ // SYSTEM_BUS.flush_input ();
348+ SYSTEM_BUS. flush ();
350349}
351350
352351void systemBus::_comlynx_process_queue ()
@@ -359,7 +358,7 @@ void systemBus::service()
359358 if (_udpDev != nullptr && _udpDev->udpstreamActive )
360359 _udpDev->comlynx_handle_udpstream ();
361360 // Process anything waiting
362- else if (fnUartBUS .available () > 0 )
361+ else if (SYSTEM_BUS .available () > 0 )
363362 _comlynx_process_cmd ();
364363}
365364
@@ -380,7 +379,11 @@ void systemBus::setup()
380379 _udpDev = new lynxUDPStream ();
381380
382381 // Set up UART
383- fnUartBUS.begin (COMLYNX_BAUDRATE);
382+ _port.begin (ChannelConfig ()
383+ .deviceID (FN_UART_BUS)
384+ .baud (COMLYNX_BAUDRATE)
385+ .parity (UART_PARITY_ODD)
386+ );
384387}
385388
386389void systemBus::shutdown ()
0 commit comments