Skip to content

Commit 1564b17

Browse files
authored
Merge pull request #2 from nliviu/sntp
Add sntp sync
2 parents 97b165d + ae869dc commit 1564b17

File tree

3 files changed

+35
-9
lines changed

3 files changed

+35
-9
lines changed

fs/init.js

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,41 @@
11
load('api_ds3231.js');
22
load('api_timer.js');
3+
load('api_events.js');
34

4-
let DS3231_I2C_addresss = 0x68 ;
5+
let DS3231_I2C_addresss = 0x68;
56

67
// Initialize DS3231 library
78
let rtc = DS3231.create(DS3231_I2C_addresss);
89

9-
let setRtcDate = function(date, month, year) {
10+
let setRtcDate = function (date, month, year) {
1011
rtc.setTimeDate(date);
1112
rtc.setTimeMonth(month);
1213
rtc.setTimeYear(year);
1314
};
1415

15-
let setRtcTime = function(hours, minutes, seconds) {
16+
let setRtcTime = function (hours, minutes, seconds) {
1617
rtc.setTimeSeconds(seconds);
1718
rtc.setTimeMinutes(minutes);
1819
rtc.setTimeHours(hours);
1920
};
2021

21-
setRtcDate(15,09,17);
22-
setRtcTime(23,55,00);
22+
setRtcDate(15, 09, 17);
23+
setRtcTime(23, 55, 00);
2324

24-
Timer.set(1000 /* milliseconds */, true /* repeat */, function() {
25-
print('Time: ', rtc.getTimeHours(), ':', rtc.getTimeMinutes(), ':', rtc.getTimeSeconds() );
25+
Timer.set(1000 /* milliseconds */, true /* repeat */, function () {
26+
print('Time: ', rtc.getTimeHours(), ':', rtc.getTimeMinutes(), ':', rtc.getTimeSeconds());
2627
print('Date: ', rtc.getTimeDate(), '-', rtc.getTimeMonth(), '-', rtc.getTimeYear(), ' Day of the week -', rtc.getTimeDayOfTheWeek());
2728
}, null);
2829

29-
30-
30+
function timeChangedHandler(ev, evdata, userdata) {
31+
let now = ffi('char *update_time(void)')();
32+
print('timeChangedHandler - now:' + now);
33+
let now_obj = JSON.parse(now);
34+
setRtcDate(now_obj.day, now_obj.month, now_obj.year);
35+
setRtcTime(now_obj.hour, now_obj.minute, now_obj.second);
36+
}
37+
38+
//
39+
// Add handler for MGOS_EVENT_TIME_CHANGED
40+
// https://github.com/cesanta/mongoose-os/blob/1508fece2cf563b15ea52ba453487195332439e3/fw/include/mgos_event.h#L101
41+
Event.addHandler(Event.SYS + 3, timeChangedHandler, null);

mos.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ tags:
1818
filesystem:
1919
- fs
2020

21+
sources:
22+
- src
23+
2124
libs:
2225
- origin: https://github.com/mongoose-os-libs/js-demo-bundle
2326
- origin: https://github.com/mongoose-os-libs/arduino-ds3231

src/main.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#include "mgos.h"
2+
3+
const char *update_time(void) {
4+
time_t now = time(NULL);
5+
struct tm *t = localtime(&now);
6+
static char buf[128];
7+
struct json_out jsout = JSON_OUT_BUF(buf, sizeof(buf));
8+
json_printf(&jsout, "{year:%d,month:%d,day:%d,hour:%d,minute:%d,second:%d}",
9+
t->tm_year - 100, t->tm_mon + 1, t->tm_mday, t->tm_hour,
10+
t->tm_min, t->tm_sec);
11+
return buf;
12+
}

0 commit comments

Comments
 (0)