Comments (3)
Hi John,
What does the serial receive code look like?
If you are using the "SerialDataEvent" to receive, please note that Pi4J does not do anything to ensure that events are triggered on line breaks. Pi4J simply has a thread that monitors the receive data buffer on a regular interval. If any data is detected, an event is created and the inbound data buffer is emptied. This could very likely happen in the middle of a line.
Thanks, Robert
from pi4j-v1.
Hi Robert, code is simple:
@Override
public void dataReceived(SerialDataEvent event) {
Logger.info("Datos: " + event.getData());}
I'm gonna do more test with the arduino, but I tested it in the past and no jump-line was present... using RS232 debugger.
log file looks like this
2013-02-24 22:46:15 [Thread-4] com.oc.listener.SensorListener.dataReceived()INFO: Datos: Temp:26.19,PH:7.00
2013-02-24 22:46:26 [Thread-4] com.oc.listener.SensorListener.dataReceived()INFO: Datos: Temp:26.
2013-02-24 22:46:26 [Thread-4] com.oc.listener.SensorListener.dataReceived()INFO: Datos: 13,PH:7.00
2013-02-24 22:46:38 [Thread-4] com.oc.listener.SensorListener.dataReceived()INFO: Datos: Temp:26.13,PH:7.00
So, the SerialDataEvent see it like to diferent events, but it's the same event, it just split it in two... coincidentally in the period char (always).
Also notice I've tried rising the time between data send (1 minute), and is still present...
If someone can test something similar, It would really help. I'm thinking my pi serial pins could be broken or something....
John.
from pi4j-v1.
Hi John,
I believe this is working as designed. Meaning that we don't control when serial data becomes available, we just have a timer thread running in the background that checks the serial data buffer at a fixed interval. If any data is available, it is pulled from the buffer and an event is created. There is no guarantee that is won't split data across multiple events. Serial data streams in and is not "packetized" or framed at the data layer.
What might be nice is adding feature to look for a particular data character in the data buffer before raising the event, thus providing the user a more controlled/framed data set in the event.
from pi4j-v1.
Related Issues (20)
- Where is the PCA9685 code? HOT 3
- Published artifacts have class file version incompatible with JDK 8
- Parity bit is not sent with 1.4 on serial0 rpi4 HOT 1
- Computer Module 4 IO board Pinout issue
- PCA9685 servo question: setAlwaysOff sometimes makes the servo jump to zero position HOT 3
- Could be posible to manage Baud of 5800 on Serial0
- NoClassDefFoundError com/pi4j/io/gpio/gpiofactory HOT 5
- Not able to use spi in emteria.os
- Serial Port won't open HOT 5
- Can I use this library for other boards? HOT 2
- dependency on javax.xml.bind makes it impossible to jlink on JDK 11 HOT 3
- Question - change pinMode of GpioPinDigitalMultipurpose HOT 1
- [Question] serial control signals physical pins HOT 2
- J8 pin Different HOT 1
- PCIe x1 connector HOT 3
- Sorry, not something I can answer as the Pi4J project doesn't provide PCIE access.
- Serial buffer waits 100ms before letting me "read()" the bytes
- problem with openhab on pi4: not handling mcp23017 HOT 1
- vcgencmd is in /usr/bin on some systems - can you check this if /opt/vc.... isn't there
- Cannot run program "/opt/vc/bin/vcgencmd"
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 pi4j-v1.