1
0
Fork 0
forked from fun/fun

Some more serial stuff. (0.37.24)

This commit is contained in:
Johannes Findeisen 2025-12-28 03:00:58 +01:00
commit 384a7e4502
4 changed files with 125 additions and 1 deletions

54
examples/serial_demo.fun Normal file
View file

@ -0,0 +1,54 @@
#!/usr/bin/env fun
/*
* This file is part of the Fun programming language.
* https://fun-lang.xyz/
*
* Copyright 2025 Johannes Findeisen <you@hanez.org>
* Licensed under the terms of the Apache-2.0 license.
* https://opensource.org/license/apache-2-0
*
* Added: 2025-12-28
*/
#include <io/serial.fun>
// This is an example of how to use the Serial class from the stdlib.
// Note: This requires a serial device to be present at the specified path.
path = "/dev/ttyUSB0"
baud = 115200
print("Opening serial port " + path + " at " + to_string(baud) + " baud...")
s = Serial(path, baud)
if (s.open())
print("Serial port opened successfully.")
// Configure: 8 data bits, no parity (0), 1 stop bit, no flow control (0)
if (s.config(8, 0, 1, 0))
print("Configured to 8N1.")
sent = s.send("AT\r\n")
print("Sent " + to_string(sent) + " bytes.")
// Wait a bit for response if needed (mocked by sleep if available)
// sleep_ms(100)
resp = s.recv(64)
if (len(resp) > 0)
print("Received: " + resp)
else
print("No response received.")
else
print("Failed to configure serial port.")
s.close()
print("Serial port closed.")
else
print("Failed to open serial port. (Do you have permissions?)")
/* Possible output:
Opening serial port /dev/ttyUSB0 at 115200 baud...
Failed to open serial port. (Do you have permissions?)
*/

View file

@ -48,3 +48,8 @@ fun test_serial()
print("Could not open serial port (this is expected if /dev/ttyUSB0 doesn't exist or no permission)")
test_serial()
/* Possible output:
Attempting to open serial port: /dev/ttyUSB0
Could not open serial port (this is expected if /dev/ttyUSB0 doesn't exist or no permission)
*/