2 * (c) 2011 Siegen, Germany by Nils Faerber
13 #include "metawatch_protocol.h"
14 #include "crc16ccitt.h"
17 void dump_frame(unsigned char *frame, int len)
21 fprintf(stderr, "0x%02x ", frame[i]);
22 fprintf(stderr, "\n");
26 void mw_send_packet(int mw_fd, unsigned char msg_type, unsigned char options, unsigned char *data, unsigned char len)
29 unsigned char frame[64];
36 memcpy(frame+4, data, len);
38 crc = crc16ccitt(frame, len+4);
39 *(unsigned short *)(frame+len+4) = crc;
41 dump_frame(frame, len+6);
43 write(mw_fd, frame, len+6);
46 void mw_set_rtc(int mw_fd, unsigned char clk1224, unsigned char date_fmt)
51 unsigned char data[32];
54 localtime_r(&mtime, &mtm);
56 year = mtm.tm_year + 1900;
57 data[0] = (year & 0x0f00) >> 8;
58 data[1] = (year & 0x00ff);
59 data[2] = mtm.tm_mon + 1;
60 data[3] = mtm.tm_mday;
61 data[4] = mtm.tm_wday;
62 data[5] = mtm.tm_hour;
68 mw_send_packet(mw_fd, MW_SET_REAL_TIME_CLOCK, 0, data, 10);
72 int main(int argc, char **argv)
77 fprintf(stderr, "Usage:\n\t%s <devicename>\n", argv[0]);
83 mw_fd = open(argv[1], O_RDWR);
89 mw_set_rtc(mw_fd, MW_RTC_CLOCK_24HR, MW_RTC_DATE_DDMM);