Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions include/debug.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,17 @@
#ifdef ESP_PLATFORM
// Use FujiNet debug serial output
#include "../lib/hardware/fnUART.h"
#define Serial fnUartDebug
#define Serial fnDebugConsole
#if defined(PINMAP_RS232_S3) /*|| defined(PINMAP_ESP32S3_XDRIVE)*/
#define Debug_print(...) printf( __VA_ARGS__ )
#define Debug_printf(...) printf( __VA_ARGS__ )
#define Debug_println(...) do { printf(__VA_ARGS__); printf("\n"); } while (0)
#define Debug_printv(format, ...) {printf( ANSI_YELLOW "[%s:%u] %s(): " ANSI_GREEN_BOLD format ANSI_RESET "\r\n", __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__);}
#else
#define Debug_print(...) fnUartDebug.print( __VA_ARGS__ )
#define Debug_printf(...) fnUartDebug.printf( __VA_ARGS__ )
#define Debug_println(...) fnUartDebug.println( __VA_ARGS__ )
#define Debug_printv(format, ...) {fnUartDebug.printf( ANSI_YELLOW "[%s:%u] %s(): " ANSI_GREEN_BOLD format ANSI_RESET "\r\n", __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__);}
#define Debug_print(...) fnDebugConsole.print( __VA_ARGS__ )
#define Debug_printf(...) fnDebugConsole.printf( __VA_ARGS__ )
#define Debug_println(...) fnDebugConsole.println( __VA_ARGS__ )
#define Debug_printv(format, ...) {fnDebugConsole.printf( ANSI_YELLOW "[%s:%u] %s(): " ANSI_GREEN_BOLD format ANSI_RESET "\r\n", __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__);}
#endif // PINMAP_RS232_S3

#define HEAP_CHECK(x) Debug_printf("HEAP CHECK %s " x "\r\n", heap_caps_check_integrity_all(true) ? "PASSED":"FAILED")
Expand All @@ -55,7 +55,7 @@
#ifdef ESP_PLATFORM
// Use FujiNet debug serial output
#include "../lib/hardware/fnUART.h"
#define Serial fnUartDebug
#define Serial fnDebugConsole
#endif

#define Debug_print(...)
Expand Down
40 changes: 20 additions & 20 deletions lib/bus/adamnet/adamnet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,24 +78,24 @@ uint8_t adamnet_checksum(uint8_t *buf, unsigned short len)
void virtualDevice::adamnet_send(uint8_t b)
{
// Write the byte
fnUartBUS.write(b);
fnUartBUS.flush();
SYSTEM_BUS.write(b);
SYSTEM_BUS.flush();
}

void virtualDevice::adamnet_send_buffer(uint8_t *buf, unsigned short len)
{
fnUartBUS.write(buf, len);
fnUartBUS.flush();
SYSTEM_BUS.write(buf, len);
SYSTEM_BUS.flush();
}

uint8_t virtualDevice::adamnet_recv()
{
uint8_t b;

while (fnUartBUS.available() <= 0)
while (SYSTEM_BUS.available() <= 0)
fnSystem.yield();

b = fnUartBUS.read();
b = SYSTEM_BUS.read();

return b;
}
Expand All @@ -108,17 +108,17 @@ bool virtualDevice::adamnet_recv_timeout(uint8_t *b, uint64_t dur)
start = current = esp_timer_get_time();
elapsed = 0;

while (fnUartBUS.available() <= 0)
while (SYSTEM_BUS.available() <= 0)
{
current = esp_timer_get_time();
elapsed = current - start;
if (elapsed > dur)
break;
}

if (fnUartBUS.available() > 0)
if (SYSTEM_BUS.available() > 0)
{
*b = (uint8_t)fnUartBUS.read();
*b = (uint8_t)SYSTEM_BUS.read();
timeout = false;
} // else
// Debug_printf("duration: %llu\n", elapsed);
Expand All @@ -143,7 +143,7 @@ void virtualDevice::adamnet_send_length(uint16_t l)

unsigned short virtualDevice::adamnet_recv_buffer(uint8_t *buf, unsigned short len)
{
return fnUartBUS.readBytes(buf, len);
return SYSTEM_BUS.read(buf, len);
}

uint32_t virtualDevice::adamnet_recv_blockno()
Expand All @@ -168,7 +168,7 @@ void virtualDevice::adamnet_response_ack(bool doNotWaitForIdle)
{
SYSTEM_BUS.wait_for_idle();
}

if (t < 300)
{
adamnet_send(0x90 | _devnum);
Expand All @@ -183,7 +183,7 @@ void virtualDevice::adamnet_response_nack(bool doNotWaitForIdle)
{
SYSTEM_BUS.wait_for_idle();
}

if (t < 300)
{
adamnet_send(0xC0 | _devnum);
Expand All @@ -203,12 +203,12 @@ void systemBus::wait_for_idle()
do
{
// Wait for serial line to quiet down.
while (fnUartBUS.available() > 0)
fnUartBUS.read();
while (_port.available() > 0)
_port.read();

start = current = esp_timer_get_time();

while ((fnUartBUS.available() <= 0) && (isIdle == false))
while ((_port.available() <= 0) && (isIdle == false))
{
current = esp_timer_get_time();
dur = current - start;
Expand All @@ -221,7 +221,7 @@ void systemBus::wait_for_idle()

void virtualDevice::adamnet_process(uint8_t b)
{
fnUartDebug.printf("adamnet_process() not implemented yet for this device. Cmd received: %02x\n", b);
fnDebugConsole.printf("adamnet_process() not implemented yet for this device. Cmd received: %02x\n", b);
}

void virtualDevice::adamnet_control_status()
Expand Down Expand Up @@ -262,14 +262,14 @@ void virtualDevice::adamnet_idle()

//void virtualDevice::adamnet_status()
//{
// fnUartDebug.printf("adamnet_status() not implemented yet for this device.\n");
// fnDebugConsole.printf("adamnet_status() not implemented yet for this device.\n");
//}

void systemBus::_adamnet_process_cmd()
{
uint8_t b;

b = fnUartBUS.read();
b = _port.read();
start_time = esp_timer_get_time();

uint8_t d = b & 0x0F;
Expand Down Expand Up @@ -311,7 +311,7 @@ void systemBus::service()
_adamnet_process_queue();

// Process anything waiting.
if (fnUartBUS.available() > 0)
if (_port.available() > 0)
_adamnet_process_cmd();
}

Expand All @@ -332,7 +332,7 @@ void systemBus::setup()
gpio_isr_handler_add((gpio_num_t)PIN_ADAMNET_RESET, adamnet_reset_isr_handler, (void *)PIN_CARD_DETECT_FIX);

// Set up UART
fnUartBUS.begin(ADAMNET_BAUDRATE);
_port.begin(ADAMNET_BAUDRATE);
}

void systemBus::shutdown()
Expand Down
21 changes: 18 additions & 3 deletions lib/bus/adamnet/adamnet.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
* AdamNet Routines
*/

#include "fnUART.h"
#include <freertos/FreeRTOS.h>
#include <freertos/queue.h>

Expand Down Expand Up @@ -178,7 +179,7 @@ class virtualDevice
* @brief Do any tasks that can only be done when the bus is quiet
*/
virtual void adamnet_idle();

/**
* @brief send current status of device
*/
Expand All @@ -193,7 +194,7 @@ class virtualDevice
* @brief send status response
*/
virtual void adamnet_response_status();

/**
* @brief command frame, used by network protocol, ultimately
*/
Expand Down Expand Up @@ -232,7 +233,7 @@ class virtualDevice
*/
uint8_t id() { return _devnum; }


};

/**
Expand All @@ -246,6 +247,8 @@ class systemBus
adamFuji *_fujiDev = nullptr;
adamPrinter *_printerDev = nullptr;

UARTManager _port = UARTManager(FN_UART_BUS);

void _adamnet_process_cmd();
void _adamnet_process_queue();

Expand Down Expand Up @@ -279,6 +282,18 @@ class systemBus

bool shuttingDown = false; // TRUE if we are in shutdown process
bool getShuttingDown() { return shuttingDown; };

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

extern systemBus SYSTEM_BUS;
Expand Down
38 changes: 19 additions & 19 deletions lib/bus/rs232/rs232.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@ void virtualDevice::bus_to_computer(uint8_t *buf, uint16_t len, bool err)
rs232_complete();

// Write data frame
fnUartBUS.write(buf, len);
SYSTEM_BUS.write(buf, len);
// Write checksum
fnUartBUS.write(rs232_checksum(buf, len));
SYSTEM_BUS.write(rs232_checksum(buf, len));

fnUartBUS.flush();
SYSTEM_BUS.flush();
}

/*
Expand All @@ -87,13 +87,13 @@ uint8_t virtualDevice::bus_to_peripheral(uint8_t *buf, unsigned short len)
Debug_printf("<-RS232 read %hu bytes\n", len);

__BEGIN_IGNORE_UNUSEDVARS
size_t l = fnUartBUS.readBytes(buf, len);
size_t l = SYSTEM_BUS.read(buf, len);
__END_IGNORE_UNUSEDVARS

// Wait for checksum
while (fnUartBUS.available() <= 0)
while (SYSTEM_BUS.available() <= 0)
fnSystem.yield();
uint8_t ck_rcv = fnUartBUS.read();
uint8_t ck_rcv = SYSTEM_BUS.read();

uint8_t ck_tst = rs232_checksum(buf, len);

Expand All @@ -120,33 +120,33 @@ uint8_t virtualDevice::bus_to_peripheral(uint8_t *buf, unsigned short len)
// RS232 NAK
void virtualDevice::rs232_nak()
{
fnUartBUS.write('N');
fnUartBUS.flush();
SYSTEM_BUS.write('N');
SYSTEM_BUS.flush();
Debug_println("NAK!");
}

// RS232 ACK
void virtualDevice::rs232_ack()
{
fnUartBUS.write('A');
SYSTEM_BUS.write('A');
fnSystem.delay_microseconds(DELAY_T5); //?
fnUartBUS.flush();
SYSTEM_BUS.flush();
Debug_println("ACK!");
}

// RS232 COMPLETE
void virtualDevice::rs232_complete()
{
fnSystem.delay_microseconds(DELAY_T5);
fnUartBUS.write('C');
SYSTEM_BUS.write('C');
Debug_println("COMPLETE!");
}

// RS232 ERROR
void virtualDevice::rs232_error()
{
fnSystem.delay_microseconds(DELAY_T5);
fnUartBUS.write('E');
SYSTEM_BUS.write('E');
Debug_println("ERROR!");
}

Expand All @@ -166,14 +166,14 @@ void systemBus::_rs232_process_cmd()
{
_modemDev->modemActive = false;
Debug_println("Modem was active - resetting RS232 baud");
fnUartBUS.set_baudrate(_rs232Baud);
_port.set_baudrate(_rs232Baud);
}

// Read CMD frame
cmdFrame_t tempFrame;
memset(&tempFrame, 0, sizeof(tempFrame));

if (fnUartBUS.readBytes((uint8_t *)&tempFrame, sizeof(tempFrame)) != sizeof(tempFrame))
if (_port.readBytes((uint8_t *)&tempFrame, sizeof(tempFrame)) != sizeof(tempFrame))
{
Debug_println("Timeout waiting for data after CMD pin asserted");
return;
Expand Down Expand Up @@ -281,7 +281,7 @@ void systemBus::service()
// Neither CMD nor active modem, so throw out any stray input data
{
//Debug_println("RS232 Srvc Flush");
fnUartBUS.flush_input();
_port.flush_input();
}

// Handle interrupts from network protocols
Expand All @@ -298,7 +298,7 @@ void systemBus::setup()
Debug_printf("RS232 SETUP: Baud rate: %u\n",Config.get_rs232_baud());

// Set up UART
fnUartBUS.begin(Config.get_rs232_baud());
_port.begin(Config.get_rs232_baud());

// // INT PIN
// fnSystem.set_pin_mode(PIN_RS232_RI, gpio_mode_t::GPIO_MODE_OUTPUT_OD, SystemManager::pull_updown_t::PULL_UP);
Expand Down Expand Up @@ -326,7 +326,7 @@ void systemBus::setup()
qRs232Messages = xQueueCreate(4, sizeof(rs232_message_t));

Debug_println("RS232 Setup Flush");
fnUartBUS.flush_input();
_port.flush_input();
}

// Add device to RS232 bus
Expand Down Expand Up @@ -421,7 +421,7 @@ void systemBus::toggleBaudrate()

// Debug_printf("Toggling baudrate from %d to %d\n", _rs232Baud, baudrate);
_rs232Baud = baudrate;
fnUartBUS.set_baudrate(_rs232Baud);
_port.set_baudrate(_rs232Baud);
}

int systemBus::getBaudrate()
Expand All @@ -439,7 +439,7 @@ void systemBus::setBaudrate(int baud)

Debug_printf("Changing baudrate from %d to %d\n", _rs232Baud, baud);
_rs232Baud = baud;
fnUartBUS.set_baudrate(baud);
_port.set_baudrate(baud);
}

// Set HRS232 index. Sets high speed RS232 baud and also returns that value.
Expand Down
Loading
Loading