Comments (5)
I created a pull request. I hope it gets integrated.
Anyway, I have the feeling this lib is not maintained actively but seems to be the best alternative to deal with serial ports.
I will continue to maintain a Fork on https://github.com/Lobaro/go-serial where even other features will get merged like the non-blocking operation.
We deal a lot with embedded Hardware and serial ports and rely on a feature rich, cross OS serial lib.
from go-serial.
hi @niondir,
thanks for the PR, may I ask you to post an example that shows the problem solved by the PR?
This will surely accelerate the integration.
Anyway, I have the feeling this lib is not maintained actively but seems to be the best alternative to deal with serial ports.
I will continue to maintain a Fork on https://github.com/Lobaro/go-serial where even other features will get merged like the non-blocking operation.
I'm actively maintaining this library, together with other valuable contributors like @albenik or @jcw, but really a lot of people contributed. Sometimes I'm slow to merge new features or give feedback, that's true, unfortunately time is always a scarce resource. BTW I'm much more reactive for bugfixes.
This library is used inside the Arduino Create Agent and a regression may potentially affect hundreds of users, so my priority is about stability and cross-os compatibility that's why, usually, I need more time to carefully test new contributions that touches the core of the library (like for example #33).
I'm working also on a branch that adds an automated test-suite to check for regressions, that will surely give a boost in accepting new feature contributions.
from go-serial.
Thanks for the quick response.
The example is what I wrote in "Observation" above and in the comment next to the fix.
The real world problem I'm solving is the following:
DTR is used as the BOOT0 pin
RTS is used as the RESET pin
on a STM32l151CBA
To get into bootloader mode I need to set DTR=false
while resetting with a raising RTS flank: RTS=true (low) -> RTS=false (high)
This does not work with the current implementation since the DTR/BOOT pin is released when setting RTS, resulting in the chip starting into normal mode instead of bootloader mode.
from go-serial.
In arduino-create-agent there is only one place where SetDTR(false)
is called in upload.go touchSerialPortAt1200bps(...)
. As far as I can see and what I have tested the PR should not affect the behavior at all.
from go-serial.
Fixed by #36, thank you!
from go-serial.
Related Issues (20)
- Enumerator panics on windows when removing a device mid enumeration HOT 1
- Always return 1 byte of data HOT 1
- SetReadTimeout sets incorrect time HOT 5
- [Question] How to check whether Write has completed transmitting the buffer? HOT 1
- loong64 arch is not supported HOT 1
- Why read timeout return a nil error? HOT 4
- Closing port does not unblock Write HOT 1
- If serial.Open fails, returned_port==nil is false
- enumerator: fill in 'product' and 'manufacturer' on linux HOT 2
- lose data in linux HOT 2
- Invalid serial port error trying to open CH343G based serial port HOT 8
- Transaction causes device to spew newlines HOT 8
- X-ON / X-OFF support? HOT 2
- Doesn't compile with Go 1.21 on macOS HOT 2
- No longer works with Raspberry pi HOT 7
- Serial.available() value of Arudino is not greater than or equal to 0 when Write() is executed HOT 2
- Data sent with Write method are present at the beginning of data read with Read method HOT 3
- Switch to golang.org/x/sys/windows HOT 2
- Port.Write() returns nil error after partial write; does not adhere to the io.Writer contract
- get invalid port name on Windows(commit 0996f84)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from go-serial.