Skip to content

Commit bd010bf

Browse files
committed
Replace fnUART* classes and switch to IOChannel abstraction
New abstraction supports any streaming I/O type (serial, network, USB) with a single consistent API.
1 parent 672c0a0 commit bd010bf

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+3319
-5967
lines changed

fujinet_pc.cmake

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,11 @@ set(SOURCES src/main.cpp
163163
lib/utils/U8Char.h lib/utils/U8Char.cpp
164164
lib/hardware/fnWiFi.h lib/hardware/fnDummyWiFi.h lib/hardware/fnDummyWiFi.cpp
165165
lib/hardware/led.h lib/hardware/led.cpp
166-
lib/hardware/fnUART.h lib/hardware/fnUART.cpp
167-
lib/hardware/fnUARTUnix.cpp lib/hardware/fnUARTWindows.cpp
166+
lib/hardware/ACMChannel.cpp lib/hardware/ACMChannel.h
167+
lib/hardware/COMChannel.h lib/hardware/COMChannel.cpp
168+
lib/hardware/IOChannel.cpp lib/hardware/IOChannel.h
169+
lib/hardware/TTYChannel.cpp lib/hardware/TTYChannel.h
170+
lib/hardware/UARTChannel.h
168171
lib/hardware/fnSystem.h lib/hardware/fnSystem.cpp lib/hardware/fnSystemNet.cpp
169172
lib/FileSystem/fnDirCache.h lib/FileSystem/fnDirCache.cpp
170173
lib/FileSystem/fnFileCache.h lib/FileSystem/fnFileCache.cpp
@@ -263,10 +266,7 @@ if(FUJINET_TARGET STREQUAL "ATARI")
263266
list(APPEND SOURCES
264267

265268
lib/bus/sio/sio.h lib/bus/sio/sio.cpp
266-
lib/bus/sio/siocom/sioport.h lib/bus/sio/siocom/sioport.cpp
267-
lib/bus/sio/siocom/serialsio.h lib/bus/sio/siocom/serialsio.cpp
268-
lib/bus/sio/siocom/netsio.h lib/bus/sio/siocom/netsio.cpp
269-
lib/bus/sio/siocom/fnSioCom.h lib/bus/sio/siocom/fnSioCom.cpp
269+
lib/bus/sio/NetSIO.h lib/bus/sio/NetSIO.cpp
270270
lib/media/atari/diskType.h lib/media/atari/diskType.cpp
271271
lib/media/atari/diskTypeAtr.h lib/media/atari/diskTypeAtr.cpp
272272
lib/media/atari/diskTypeAtx.h lib/media/atari/diskTypeAtx.cpp
@@ -361,16 +361,13 @@ if(FUJINET_TARGET STREQUAL "COCO")
361361
list(APPEND SOURCES
362362

363363
lib/bus/drivewire/drivewire.h lib/bus/drivewire/drivewire.cpp
364-
lib/bus/drivewire/dwcom/fnDwCom.h lib/bus/drivewire/dwcom/fnDwCom.cpp
365-
lib/bus/drivewire/dwcom/dwport.h lib/bus/drivewire/dwcom/dwport.cpp
366-
lib/bus/drivewire/dwcom/dwserial.h lib/bus/drivewire/dwcom/dwserial.cpp
367-
lib/bus/drivewire/dwcom/dwbecker.h lib/bus/drivewire/dwcom/dwbecker.cpp
364+
lib/bus/drivewire/BeckerSocket.h lib/bus/drivewire/BeckerSocket.cpp
368365

369366
lib/media/drivewire/mediaType.h lib/media/drivewire/mediaType.cpp
370367
lib/media/drivewire/mediaTypeDSK.h lib/media/drivewire/mediaTypeDSK.cpp
371368
lib/media/drivewire/mediaTypeMRM.h lib/media/drivewire/mediaTypeMRM.cpp
372369
lib/media/drivewire/mediaTypeVDK.h lib/media/drivewire/mediaTypeVDK.cpp
373-
370+
374371
lib/device/drivewire/fuji.h lib/device/drivewire/fuji.cpp
375372
lib/device/drivewire/network.h lib/device/drivewire/network.cpp
376373
lib/device/drivewire/dload.h lib/device/drivewire/dload.cpp

include/debug.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
#ifdef DEBUG
2424
#ifdef ESP_PLATFORM
2525
// Use FujiNet debug serial output
26-
#include "../lib/hardware/fnUART.h"
26+
#include "../lib/hardware/ESP32UARTChannel.h"
2727
#define Serial fnDebugConsole
28-
#if defined(PINMAP_RS232_S3) /*|| defined(PINMAP_ESP32S3_XDRIVE)*/
28+
#ifdef PINMAP_RS232_S3
2929
#define Debug_print(...) printf( __VA_ARGS__ )
3030
#define Debug_printf(...) printf( __VA_ARGS__ )
3131
#define Debug_println(...) do { printf(__VA_ARGS__); printf("\n"); } while (0)

lib/bus/adamnet/adamnet.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,9 @@ void systemBus::setup()
332332
gpio_isr_handler_add((gpio_num_t)PIN_ADAMNET_RESET, adamnet_reset_isr_handler, (void *)PIN_CARD_DETECT_FIX);
333333

334334
// Set up UART
335-
_port.begin(ADAMNET_BAUDRATE);
335+
_port.begin(ChannelConfig()
336+
.baud(ADAMNET_BAUDRATE)
337+
);
336338
}
337339

338340
void systemBus::shutdown()

lib/bus/adamnet/adamnet.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* AdamNet Routines
66
*/
77

8-
#include "fnUART.h"
8+
#include "UARTChannel.h"
99
#include <freertos/FreeRTOS.h>
1010
#include <freertos/queue.h>
1111

@@ -247,7 +247,7 @@ class systemBus
247247
adamFuji *_fujiDev = nullptr;
248248
adamPrinter *_printerDev = nullptr;
249249

250-
UARTManager _port = UARTManager(FN_UART_BUS);
250+
UARTChannel _port;
251251

252252
void _adamnet_process_cmd();
253253
void _adamnet_process_queue();
@@ -285,12 +285,12 @@ class systemBus
285285

286286
// Everybody thinks "oh I know how a serial port works, I'll just
287287
// access it directly and bypass the bus!" ಠ_ಠ
288-
size_t read(void *buffer, size_t length) { return _port.readBytes(buffer, length); }
288+
size_t read(void *buffer, size_t length) { return _port.read(buffer, length); }
289289
size_t read() { return _port.read(); }
290290
size_t write(const void *buffer, size_t length) { return _port.write(buffer, length); }
291291
size_t write(int n) { return _port.write(n); }
292292
size_t available() { return _port.available(); }
293-
void flush() { _port.flush(); }
293+
void flush() { _port.flushOutput(); }
294294
size_t print(int n, int base = 10) { return _port.print(n, base); }
295295
size_t print(const char *str) { return _port.print(str); }
296296
size_t print(const std::string &str) { return _port.print(str); }

lib/bus/bus.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747

4848
#ifdef BUILD_RS232
4949
#include "rs232/rs232.h"
50-
#define FN_BUS_PORT fnUartBUS
5150
#endif
5251

5352
#ifdef BUILD_CX16

0 commit comments

Comments
 (0)