Files
IoTManager/lib/ArduinoStreamUtils/examples/HammingSoftwareSerial/HammingSoftwareSerial.ino
Dmitry Borisenko 24a9d55ea0 first
2021-12-22 14:09:50 +01:00

67 lines
2.4 KiB
C++

// StreamUtils - github.com/bblanchon/ArduinoStreamUtils
// Copyright Benoit Blanchon 2019-2021
// MIT License
//
// This example shows how to use Hamming codes for error correction
//
// To run this program, you need two boards connected like so:
// BOARD 1 - BOARD 2
// pin 10 - pin 11
// pin 11 - pin 10
//
// SoftwareSerial is here for demonstration purposes; please don't use it in
// production, as it is notoriously unreliable.
#include <SoftwareSerial.h>
#include <StreamUtils.h>
SoftwareSerial linkSerial(10, 11); // RX, TX
HammingStream<7, 4> eccLinkSerial(linkSerial);
void setup() {
Serial.begin(115200);
while (!Serial)
continue;
linkSerial.begin(4800);
}
void loop() {
// Did we receive something?
if (eccLinkSerial.available())
// Print it
Serial.write(eccLinkSerial.read());
// Do we have something to send?
if (Serial.available())
// Sent it
eccLinkSerial.write(Serial.read());
}
/*****************************************************
* *
* Love this project? *
* Star it on GitHub! *
* *
* .,,. *
* ,,:1. *
* ,.,:;1 *
* .,,,::;: *
* ,,,,::;;. *
* .,,,:::;;; *
* .....,,,,...,.,,,,,,:::,,,,,,,,,,,,, *
* ,,,,,,,,,,,:,...,,,,,,:::,,,,:::;;;11l *
* .;::::::::,,,,,,,,,,:::::,,::;;;1lt *
* .;;;:::,,,,,,,,::::::;:::;;1t: *
* :;;:,,,,,,::::::;;;;;;l1 *
* ,,,,:::::::;;;;;;l *
* .,,,,::::;;;;;;;:::: *
* ,,,,,:::;;;;;::,:::1 *
* ,,,,,::;;;t1:,,:::::;l *
* .,,,,:;;ll ;::::::;;, *
* ,,,:;ll. .1:::;;l *
* .,:lt, .1;;l: *
* *
* https://github.com/bblanchon/ArduinoStreamUtils *
* *
*****************************************************/