Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/chon-group/javino

Java high-level of Javino -- a serial message's error check protocol for exchanging messages between high-end and low-end IoT devices over serial communication.
https://github.com/chon-group/javino

java javino middleware protocol serial serial-communication serialport

Last synced: about 21 hours ago
JSON representation

Java high-level of Javino -- a serial message's error check protocol for exchanging messages between high-end and low-end IoT devices over serial communication.

Awesome Lists containing this project

README

        

# Javino

[![](https://jitpack.io/v/chon-group/Javino.svg)](https://jitpack.io/#chon-group/Javino)

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:

### Others Javino options:
| |High Level|Low Level|
|----------------------------:|:--------:|:-------:|
|__For programming languages__|||
|_C_|-|[javinoCLibrary](https://github.com/bptfreitas/JavinoCLibrary)|
|_Java_|___This Repository___|-|
|_Python_|-|[javino2Python](https://github.com/chon-group/javino2python)|
|__Libraries for IoT Boards__|-|-|
|_Arduino_|-|[javino2Arduino](https://github.com/chon-group/javino2arduino)|
|__Applications__|||
|_Linux Command Line Interface_|[dpkg-javino](https://github.com/chon-group/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.

![Javino Message Format](https://a.fsdn.com/con/app/proj/javino/screenshots/The-Javino-message-format-ccb5d9ee.png)

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.

## How to import?

#### Using Maven:
- Add it in your pom.xml at the end of repositories and add the dependency.

pom.xml

```xml


jitpack.io
https://jitpack.io



com.github.chon-group
Javino
1.6.4


```

#### Using Gradle:
- Add it in your root build.gradle at the end of repositories and add the dependency.

build.gradle

```xml
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}

dependencies {
implementation 'com.github.chon-group:Javino:1.6.4'
}

```

## COPYRIGHT
Creative Commons License
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](https://www.researchgate.net/publication/277403727_A_Robotic-agent_Platform_for_Embedding_Software_Agents_Using_Raspberry_Pi_and_Arduino_Boards)

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},
}
```