rs-232 pal demos

CircuitPython and Arduino RS-232 Pal demos. uses serial console to send commands
This commit is contained in:
Liz 2024-07-11 12:27:11 -04:00
parent 4df862a98c
commit 4aa63fd4ec
3 changed files with 78 additions and 0 deletions

View file

@ -0,0 +1,46 @@
// SPDX-FileCopyrightText: 2024 Liz Clark for Adafruit Industries
//
// SPDX-License-Identifier: MIT
#include <SoftwareSerial.h>
// update this for your RS-232 device baud rate
#define baud 38400
// define RX and TX pins for the software serial port
#define RS232_RX_PIN 2
#define RS232_TX_PIN 3
SoftwareSerial rs232Serial(RS232_RX_PIN, RS232_TX_PIN);
void setup() {
Serial.begin(115200);
while ( !Serial ) delay(10);
rs232Serial.begin(baud);
Serial.println("Enter commands to send to the RS-232 device.");
Serial.println();
}
void loop() {
if (Serial.available() > 0) {
String userInput = Serial.readStringUntil('\n');
userInput.trim(); // remove any trailing newlines or spaces
if (userInput.length() > 0) {
// send the command with a telnet newline (CR + LF)
rs232Serial.print(userInput + "\r\n");
Serial.print("Sent: ");
Serial.println(userInput);
}
}
// check for incoming data from RS-232 device
while (rs232Serial.available() > 0) {
char response = rs232Serial.read();
// print the incoming data
Serial.print(response);
}
delay(50);
}

View file

@ -0,0 +1,32 @@
# SPDX-FileCopyrightText: 2024 Liz Clark for Adafruit Industries
# SPDX-License-Identifier: MIT
import time
import board
import busio
# baud rate for your device
baud = 38400
uart = busio.UART(board.TX, board.RX, baudrate=baud)
print("Enter commands to send to the RS-232 device. Press Ctrl+C to exit.")
while True:
user_input = input("Please enter your command: ").strip()
if user_input:
# send the command with a telnet newline (CR + LF)
uart.write((user_input + "\r\n").encode('ascii'))
# empty buffer to collect the incoming data
response_buffer = bytearray()
# check for data
time.sleep(1)
while uart.in_waiting:
data = uart.read(uart.in_waiting)
if data:
response_buffer.extend(data)
# decode and print
if response_buffer:
print(response_buffer.decode('ascii'), end='')
print()