From 997540146ec9827f25f43cf0694c030cb46182de Mon Sep 17 00:00:00 2001 From: redfast00 Date: Thu, 10 Sep 2020 11:06:21 +0200 Subject: [PATCH 1/2] Add serial number info module --- src/modules/serial_number_info/doc/index.md | 7 +++ .../serial_number_info/serial_number_info.ino | 50 +++++++++++++++++++ src/modules/testmodule_info/doc/index.md | 6 --- .../testmodule_info/testmodule_info.ino | 41 --------------- 4 files changed, 57 insertions(+), 47 deletions(-) create mode 100644 src/modules/serial_number_info/doc/index.md create mode 100644 src/modules/serial_number_info/serial_number_info.ino delete mode 100644 src/modules/testmodule_info/doc/index.md delete mode 100644 src/modules/testmodule_info/testmodule_info.ino diff --git a/src/modules/serial_number_info/doc/index.md b/src/modules/serial_number_info/doc/index.md new file mode 100644 index 0000000..39f7832 --- /dev/null +++ b/src/modules/serial_number_info/doc/index.md @@ -0,0 +1,7 @@ +## Serial number + +This module provides a serial number for other modules to use. It consists of +7 random letters/digits that are shown on a LCD display. + +### Credits +Module developed by redfast00. diff --git a/src/modules/serial_number_info/serial_number_info.ino b/src/modules/serial_number_info/serial_number_info.ino new file mode 100644 index 0000000..b960577 --- /dev/null +++ b/src/modules/serial_number_info/serial_number_info.ino @@ -0,0 +1,50 @@ +// (c) 2020, redfast00 +// See the LICENSE file for conditions for copying + +#include +#include + +#define SERIAL_NUMBER_SIZE 7 + +uint8_t serial_number[SERIAL_NUMBER_SIZE]; + +// true when we need to update the LCD display +bool render_now = false; +LiquidCrystal lcd(7, 6, 5, 4, 3, 2); + + +void setup() { + Serial.begin(115200); + lcd.begin(16, 2); + lcd.clear(); + obus_module::setup(OBUS_TYPE_INFO, OBUS_INFO_ID_DEVELOPMENT); +} + +obus_can::message message; + +void loop() { + obus_module::loopInfo(&message, info_generator); + if (render_now) { + render_now = false; + lcd.home(); + lcd.clear(); + lcd.print("Serial Number"); + lcd.setCursor(0, 1); + for (int i = 0; i < SERIAL_NUMBER_SIZE; i++) { + lcd.write(serial_number[i]); + } + } +} + +int info_generator(uint8_t* buffer) { + for (int i = 0; i < SERIAL_NUMBER_SIZE; i++) { + uint8_t generated = random(26 + 10); + if (generated < 26) + serial_number[i] = 'A' + generated; + else + serial_number[i] = '0' + (generated - 26); + } + memcpy(buffer, serial_number, SERIAL_NUMBER_SIZE); + render_now = true; + return SERIAL_NUMBER_SIZE; +} diff --git a/src/modules/testmodule_info/doc/index.md b/src/modules/testmodule_info/doc/index.md deleted file mode 100644 index 83532e5..0000000 --- a/src/modules/testmodule_info/doc/index.md +++ /dev/null @@ -1,6 +0,0 @@ -## Testmodule info - -This is a simple info module - -### Credits -Module developed by redfast00. diff --git a/src/modules/testmodule_info/testmodule_info.ino b/src/modules/testmodule_info/testmodule_info.ino deleted file mode 100644 index f0cceaa..0000000 --- a/src/modules/testmodule_info/testmodule_info.ino +++ /dev/null @@ -1,41 +0,0 @@ -// (c) 2020, redfast00 -// See the LICENSE file for conditions for copying - -#include -#include - - -uint8_t serial_number[7]; -LiquidCrystal lcd(7, 6, 5, 4, 3, 2); - - -void setup() { - Serial.begin(115200); - obus_module::setup(OBUS_TYPE_INFO, OBUS_INFO_ID_DEVELOPMENT); - info_generator(serial_number); - lcd.begin(16, 2); - lcd.clear(); -} - -obus_can::message message; - -void loop() { - bool is_message_valid = obus_module::loopInfo(&message, info_generator); - lcd.home(); - for (int i = 0; i < 7; i++) { - lcd.write(serial_number[i]); - } -} - -int info_generator(uint8_t* buffer) { - serial_number[0] = random('A', 'Z'); - serial_number[1] = random('A', 'Z'); - serial_number[2] = random('A', 'Z'); - serial_number[3] = random('0', '9'); - serial_number[4] = random('0', '9'); - serial_number[5] = random('A', 'Z'); - serial_number[6] = random('0', '9'); - memcpy(buffer, serial_number, 7); - lcd.clear(); - return 7; -} From 0f4efc6a722a7da72ecca1e18c2863f00f88cf25 Mon Sep 17 00:00:00 2001 From: redfast00 Date: Thu, 10 Sep 2020 11:07:21 +0200 Subject: [PATCH 2/2] Set MOANA assigned ID --- src/modules/serial_number_info/serial_number_info.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/serial_number_info/serial_number_info.ino b/src/modules/serial_number_info/serial_number_info.ino index b960577..2e61346 100644 --- a/src/modules/serial_number_info/serial_number_info.ino +++ b/src/modules/serial_number_info/serial_number_info.ino @@ -17,7 +17,7 @@ void setup() { Serial.begin(115200); lcd.begin(16, 2); lcd.clear(); - obus_module::setup(OBUS_TYPE_INFO, OBUS_INFO_ID_DEVELOPMENT); + obus_module::setup(OBUS_TYPE_INFO, 1); } obus_can::message message;