Comments (4)
Hi Marina,
You can achieve this using low-level message handlers:
IODevice device = new FirmataDevice(port);
device.addProtocolMessageHandler(FirmataEventType.PIN_CAPABILITIES_MESSAGE, new Consumer<Event>() {
@Override
public void accept(Event evt) {
//do the stuff here
}
});
device.start();
That will basically add another handler to already registered one which you amend in #34. Since additional delay is required only for Adafruit Feather 32u4 board, I beleive it would be better to handle delays in such an additional handler.
from firmata4j.
On the second thought the original design with delays is poorly implemented anyway. I think that all the pin state requests should be queued and sent only when response for the previous one is received. This approach yields robust and performant solution.
I beleive the primary handler should be redisigned because this exact place generates new issues with noticable frequency.
from firmata4j.
Hey @kurbatov !
When will your latest commit be available via Android gradle? Currently I still get the old commit.
Currently using: implementation 'com.github.kurbatov:firmata4j:2.3.7'
Thanks
Best wishes.
from firmata4j.
I have released 2.3.8 which contains update of pin initialization. Besides of that it contains a new event type PIN_CAPABILITIES_FINISHED
that can be used in a low-level message handler as described above.
The new release will be available soon via Maven Central.
from firmata4j.
Related Issues (20)
- Cannot detect if device is still connected HOT 2
- Document what queries are required for Firmata Device
- `setDigitalPinValue` method creates a `DIGITAL_MESSAGE` message instead of a `SET_DIGITAL_PIN_VALUE` message HOT 2
- Executor is not stopped during FirmataDevice.shutdown() causing threads to leak HOT 1
- Is there a implementation of "Software Serial" using firmate4j? HOT 1
- Consider using another serial communication library HOT 1
- JRE crash with GraalVM 20.1.0 HOT 5
- A fatal error has been detected by the Java Runtime Environment HOT 4
- Incorrect values reported when using PULLUP mode HOT 3
- Document how to use JSerialComm Transport Layer HOT 4
- Can't connect correctly to Uno HOT 1
- Cast exception HOT 1
- onPinStateReceive should not update pin value HOT 3
- Cannot start the firmata device because the port is 'busy' stack trace HOT 1
- OneWire Support for DS18B20 temp sensor HOT 2
- Grove - Temperature&Humidity Sensor (DHT11) HOT 1
- setValue in v2.3.9 not setting digital output correctly. HOT 3
- Using Firmata4j with Grove Beginner Kit to make Ultrasonic Radar HOT 1
- JVM crash HOT 1
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 firmata4j.