Javino is a serial message's error check protocol for communication over a serial channel. This repository provides the Javino protocol for Java in High level side. Other options of javino implementations can see below:
High Level | Low Level | |
---|---|---|
For programming languages | ||
C | - | javinoCLibrary |
Java | This Repository | - |
Python | - | javino2Python |
Libraries for IoT Boards | - | - |
Arduino | - | javino2Arduino |
Applications | ||
Linux Command Line Interface | dpkg-javino | - |
There are some libraries that use the serial port to deal with one-sided messages. However, these libraries just provide message treatment for one platform side, leaving the other side to the programmer. The Javino aims to fill this gap because it offers a double-sided communication that provides a higher level of correctness in message exchange.
For this reason, every message is composed of a preamble, a field size and the message content. The preamble is a field composed of four hexadecimal characters that are used to identify the beginning of a message sent by an agent. The field size is composed of two hexadecimal characters that are used to calculate the message extension. Finally, the last field is the message content, up to 255 bytes. The preamble and the field size are used together to avoid errors in the event of a loss of information during the message transmission. For the sake of practice, Javino automatically mounts the message.
When a message is sent, the Javino library starts to listen on the serial port for arriving char-to-char messages. If there is any information arriving, the Javino stores this character, analyzing if it is part of the expected preamble. So, this process is repeated until the message has been completely received.
Once the preamble is not confirmed, the Javino discards all information received until it finds a valid preamble. Otherwise, the Javino verifies the field size value to identify the message length. This process avoids error insertions and defines where a message starts and ends.
-
Add it in your pom.xml at the end of repositories and add the dependency.
pom.xml
<repositories> <repository> <id>jitpack.io</id> <url>https://jitpack.io</url> </repository> </repositories> <dependencies> <dependency> <groupId>com.github.chon-group</groupId> <artifactId>Javino</artifactId> <version>1.6.4</version> </dependency> </dependencies>
-
Add it in your root build.gradle at the end of repositories and add the dependency.
build.gradle
allprojects { repositories { ... maven { url 'https://jitpack.io' } } } dependencies { implementation 'com.github.chon-group:Javino:1.6.4' }
Javino is licensed under a Creative Commons Attribution 4.0 International License. The licensor cannot revoke these freedoms as long as you follow the license terms:
- Attribution — You must give appropriate credit like below:
N. M. Lazarin e C. E. Pantoja, “A robotic-agent platform for embedding software agents using raspberry pi and arduino boards”, in Proceedings of 9th Software Agents, Environments and Applications School (WESAAC 2015), Niteroi: UFF, 2015, p. 13–20. Available at: http://www2.ic.uff.br/~wesaac2015/Proceedings-WESAAC-2015.pdf
Bibtex citation format
@inproceedings{javino,
address = {Niteroi - RJ},
title = {A robotic-agent platform for embedding software agents using raspberry pi and arduino boards},
url = {http://www2.ic.uff.br/~wesaac2015/Proceedings-WESAAC-2015.pdf},
booktitle = {Proceedings of 9th Software Agents, Environments and Applications School (WESAAC 2015)},
publisher = {UFF},
author = {Lazarin, Nilson Mori and Pantoja, Carlos Eduardo},
year = {2015},
pages = {13--20},
note = {ISSN: 2177-2096},
}