From a4641938f0ebe805463ce4b396db51199d42bf28 Mon Sep 17 00:00:00 2001 From: Mario Pesch Date: Wed, 14 Dec 2022 08:56:55 +0100 Subject: [PATCH] add block for timestamp from internal rtc --- src/components/Blockly/blocks/sensebox-rtc.js | 15 +++++++++++-- .../Blockly/generator/sensebox-ntp.js | 2 +- .../Blockly/generator/sensebox-rtc.js | 22 ++++++++++++++++++- .../Blockly/generator/sensebox-sensors.js | 3 ++- src/components/Blockly/msg/de/sensebox-ntp.js | 9 +++----- src/components/Blockly/msg/de/sensebox-rtc.js | 16 +++++++------- src/components/Blockly/msg/en/sensebox-ntp.js | 2 +- src/components/Blockly/msg/en/sensebox-rtc.js | 6 ++--- src/components/Blockly/toolbox/Toolbox.js | 1 + 9 files changed, 53 insertions(+), 23 deletions(-) diff --git a/src/components/Blockly/blocks/sensebox-rtc.js b/src/components/Blockly/blocks/sensebox-rtc.js index 47fb277..496ece4 100644 --- a/src/components/Blockly/blocks/sensebox-rtc.js +++ b/src/components/Blockly/blocks/sensebox-rtc.js @@ -97,9 +97,8 @@ Blockly.Blocks["sensebox_internal_rtc_set"] = { init: function () { this.setHelpUrl(Blockly.Msg.sensebox_rtc_helpurl); this.setColour(getColour().time); - this.appendDummyInput().appendField(Blockly.Msg.sensebox_internal_rtc_set); this.appendValueInput("time").appendField( - Blockly.Msg.sensebox_internal_rtc_epoch + Blockly.Msg.sensebox_internal_rtc_set ); this.setPreviousStatement(true); this.setNextStatement(true); @@ -129,3 +128,15 @@ Blockly.Blocks["sensebox_internal_rtc_get"] = { this.setTooltip(Blockly.Msg.sensebox_internal_rtc_get_tooltip); }, }; + +Blockly.Blocks["sensebox_internal_rtc_get_timestamp"] = { + init: function () { + this.setHelpUrl(Blockly.Msg.sensebox_internal_rtc_helpurl); + this.setColour(getColour().time); + this.appendDummyInput().appendField( + Blockly.Msg.sensebox_internal_rtc_get_timestamp + ); + this.setOutput(true); + this.setTooltip(Blockly.Msg.sensebox_internal_rtc_get_timestamp_tooltip); + }, +}; diff --git a/src/components/Blockly/generator/sensebox-ntp.js b/src/components/Blockly/generator/sensebox-ntp.js index ff392f7..bb4367b 100644 --- a/src/components/Blockly/generator/sensebox-ntp.js +++ b/src/components/Blockly/generator/sensebox-ntp.js @@ -14,6 +14,6 @@ Blockly.Arduino.sensebox_ntp_init = function () { Blockly.Arduino.sensebox_ntp_get = function () { var format = this.getFieldValue("dropdown"); - var code = `timeClient.${format}();`; + var code = `timeClient.${format}()`; return [code, Blockly.Arduino.ORDER_ATOMIC]; }; diff --git a/src/components/Blockly/generator/sensebox-rtc.js b/src/components/Blockly/generator/sensebox-rtc.js index 2b6cc36..d8c4dad 100644 --- a/src/components/Blockly/generator/sensebox-rtc.js +++ b/src/components/Blockly/generator/sensebox-rtc.js @@ -115,5 +115,25 @@ Blockly.Arduino.sensebox_internal_rtc_set = function () { Blockly.Arduino.sensebox_internal_rtc_get = function () { var dropdown = this.getFieldValue("dropdown"); var code = `rtc.get${dropdown}()`; - return code; + return [code, Blockly.Arduino.ORDER_ATOMIC]; +}; + +Blockly.Arduino.sensebox_internal_rtc_get_timestamp = function () { + Blockly.Arduino.variables_["rtc_timestamp"] = `char timestamp[20];`; + Blockly.Arduino.codeFunctions_["getTimeStamp"] = ` +char* getTimeStamp() { +uint8_t sec, min, hour, day, month; + uint16_t year; +sec = rtc.getSeconds(); +min = rtc.getMinutes(); +hour = rtc.getHours(); +day = rtc.getDay(); +month = rtc.getMonth(); +year = rtc.getYear(); + sprintf(timestamp, "%02d-%02d-%02dT%02d:%02d:%02dZ", year, month, day, hour, min, sec); + return timestamp; + } + `; + var code = `getTimeStamp()`; + return [code, Blockly.Arduino.ORDER_ATOMIC]; }; diff --git a/src/components/Blockly/generator/sensebox-sensors.js b/src/components/Blockly/generator/sensebox-sensors.js index 9d053c5..7e6302a 100644 --- a/src/components/Blockly/generator/sensebox-sensors.js +++ b/src/components/Blockly/generator/sensebox-sensors.js @@ -434,7 +434,8 @@ if (airSensor.begin() == false) while (1) ; }`; - Blockly.Arduino.setupCode_["scd30_staleData"] = "airSensor.useStaleData(true);"; + Blockly.Arduino.setupCode_["scd30_staleData"] = + "airSensor.useStaleData(true);"; var code = ""; switch (dropdown) { case "temperature": diff --git a/src/components/Blockly/msg/de/sensebox-ntp.js b/src/components/Blockly/msg/de/sensebox-ntp.js index c824923..fccee1d 100644 --- a/src/components/Blockly/msg/de/sensebox-ntp.js +++ b/src/components/Blockly/msg/de/sensebox-ntp.js @@ -1,14 +1,11 @@ export const NTP = { sensebox_ntp_init: "Initialisiere NTP", - sensebox_ntp_init_tooltip: - "Initialisiere die RTC. Schließe diese an einen der 5 I2C/Wire Anschlüsse an und lege die Batterie ein. Bevor du die Uhrzeit auslesen kannst muss diese zunächst einmal gesetzt werden. Dieser Schritt muss normalerweise nur einmalig durchgeführt werden.", - sensebox_ntp_set_tooltip: - "Stellt die Uhrzeit der RTC ein. Beachte, dass du diesen Block im Setup ausführst.", - sensebox_ntp_get: "Zeitstempel (RFC 3339)", + sensebox_ntp_init_tooltip: "Initialisiere den NTP Server.", + sensebox_ntp_get: "Hole Zeit von NTP Server: ", sensebox_ntp_get_timestamp_tooltip: "Gibt dir einen in ISO 8601 formatierten Zeitstempel zurück. Bsp: 2021-12-24T18:21Z", sensebox_ntp_get_tooltip: "Gibt dir den ausgewählten Wert zurück. Unix Zeit entspricht der Anzahl der Sekunden seit dem 1.1.1970", sensebox_ntp_epochTime: "Unix Zeit", - sensebox_ntp_formattedTimeStamp: "Zeitstempel", + sensebox_ntp_formattedTimeStamp: "Zeitstempel (hh:mm:ss)", }; diff --git a/src/components/Blockly/msg/de/sensebox-rtc.js b/src/components/Blockly/msg/de/sensebox-rtc.js index 158070b..b5f64ae 100644 --- a/src/components/Blockly/msg/de/sensebox-rtc.js +++ b/src/components/Blockly/msg/de/sensebox-rtc.js @@ -5,7 +5,7 @@ export const RTC = { sensebox_rtc_set: "Setze Uhrzeit/Datum der externen RTC", sensebox_rtc_set_tooltip: "Stellt die Uhrzeit der RTC ein. Beachte, dass du diesen Block im Setup ausführst.", - sensebox_rtc_get_timestamp: "Zeitstempel (RFC 3339)", + sensebox_rtc_get_timestamp: "Zeitstempel externe RTC (RFC 3339)", sensebox_rtc_get_timestamp_tooltip: "Gibt dir einen in ISO 8601 formatierten Zeitstempel zurück. Bsp: 2021-12-24T18:21Z", sensebox_rtc_get: "Wert (externe RTC): ", @@ -16,18 +16,18 @@ export const RTC = { sensebox_rtc_day: "Tag", sensebox_rtc_month: "Monat", sensebox_rtc_year: "Jahr", - sensebox_internal_rtc_init: "Initialise internal RTC", + sensebox_internal_rtc_init: "Initialisiere interne RTC", sensebox_internal_rtc_init_tooltip: - "Initialise the internal RTC. This RTC is not battery backed and will be reset on every power cycle.", - sensebox_internal_rtc_set: "Set internal RTC time/date:", + "Initialisieren der internen RTC. Diese RTC ist nicht batteriegepuffert und wird bei jedem Einschaltvorgang zurückgesetzt", + sensebox_internal_rtc_set: "Setze interne RTC Zeit/Datum (Unix Time)", sensebox_internal_rtc_set_tooltip: - "Sets the time of the internal RTC. Note that you execute this block in the setup.", + "Setzt die Zeit der internen RTC. Führe den Block einmalig im Setup aus und setzte die Uhrzeit über die Unix Zeit.", sensebox_internal_rtc_get: "Wert (interne RTC): ", - sensebox_internal_rtc_get_timestamp: "Get internal RTC timestamp", + sensebox_internal_rtc_get_timestamp: "Zeitstempel interne RTC (RFC 3339)", sensebox_internal_rtc_get_timestamp_tooltip: "Returns a timestamp formatted in ISO 8601. Ex: 2021-12-24T18:21Z", - sensebox_internal_rtc_get_tooltip: "Returns the selected value", - sensebox_internal_rtc_epoch: "epoch", + sensebox_internal_rtc_get_tooltip: "Gibt den ausgewählten Wert zurück", + sensebox_internal_rtc_epoch: "Unix Zeit", sensebox_internal_rtc_year: "Jahr", sensebox_internal_rtc_month: "Monat", sensebox_internal_rtc_day: "Tag", diff --git a/src/components/Blockly/msg/en/sensebox-ntp.js b/src/components/Blockly/msg/en/sensebox-ntp.js index 95c69a9..a2cd9ec 100644 --- a/src/components/Blockly/msg/en/sensebox-ntp.js +++ b/src/components/Blockly/msg/en/sensebox-ntp.js @@ -2,7 +2,7 @@ export const NTP = { sensebox_ntp_init: "Initialise NTP", sensebox_ntp_init_tooltip: "Initialisiere die RTC. Schließe diese an einen der 5 I2C/Wire Anschlüsse an und lege die Batterie ein. Bevor du die Uhrzeit auslesen kannst muss diese zunächst einmal gesetzt werden. Dieser Schritt muss normalerweise nur einmalig durchgeführt werden.", - sensebox_ntp_get: "Hole Zeit von NTP Server", + sensebox_ntp_get: "Get time from NTP Server: ", sensebox_ntp_get_tooltip: "Gibt dir den ausgewählten Wert zurück. Unix Zeit entspricht der Anzahl der Sekunden seit dem 1.1.1970", sensebox_ntp_epochTime: "Unix time", diff --git a/src/components/Blockly/msg/en/sensebox-rtc.js b/src/components/Blockly/msg/en/sensebox-rtc.js index 3dccdf4..d8d9d0c 100644 --- a/src/components/Blockly/msg/en/sensebox-rtc.js +++ b/src/components/Blockly/msg/en/sensebox-rtc.js @@ -5,7 +5,7 @@ export const RTC = { sensebox_rtc_set: "Set RTC time/date:", sensebox_rtc_set_tooltip: "Sets the time of the RTC. Note that you execute this block in the setup.", - sensebox_rtc_get_timestamp: "Get timestamp", + sensebox_rtc_get_timestamp: "Timestamp external RTC (RFC 3339)", sensebox_rtc_get_timestamp_tooltip: "Returns a timestamp formatted in ISO 8601. Ex: 2021-12-24T18:21Z", sensebox_rtc_get_tooltip: "Returns the selected value", @@ -24,11 +24,11 @@ export const RTC = { sensebox_internal_rtc_set_tooltip: "Sets the time of the internal RTC. Note that you execute this block in the setup.", sensebox_internal_rtc_get: "Get: ", - sensebox_internal_rtc_get_timestamp: "Get internal RTC timestamp", + sensebox_internal_rtc_get_timestamp: "Timestamp internal RTC (RFC 3339)", sensebox_internal_rtc_get_timestamp_tooltip: "Returns a timestamp formatted in ISO 8601. Ex: 2021-12-24T18:21Z", sensebox_internal_rtc_get_tooltip: "Returns the selected value", - sensebox_internal_rtc_epoch: "epoch", + sensebox_internal_rtc_epoch: "Unix Time", sensebox_internal_rtc_year: "year", sensebox_internal_rtc_month: "month", sensebox_internal_rtc_day: "day", diff --git a/src/components/Blockly/toolbox/Toolbox.js b/src/components/Blockly/toolbox/Toolbox.js index 8bb80fe..8cd0ca4 100644 --- a/src/components/Blockly/toolbox/Toolbox.js +++ b/src/components/Blockly/toolbox/Toolbox.js @@ -549,6 +549,7 @@ class Toolbox extends React.Component { +