Browse Source

implement reading of the alarm bit via IOCTL_DS13307_ALRM

Helmut Pozimski 5 years ago
parent
commit
4e89fb6840
1 changed files with 4 additions and 1 deletions
  1. 4 1
      jsonrtc/src/jsonrtc.c

+ 4 - 1
jsonrtc/src/jsonrtc.c

@@ -25,6 +25,7 @@
 #include <linux/rtc.h>
 #include <cjson/cJSON.h>
 
+#define IOCTL_DS13307_ALRM _IOR('p', 0x15, unsigned char)
 
 int		page(struct http_request *);
 int handle_time(struct http_request *);
@@ -153,6 +154,7 @@ int handle_wkalrm(struct http_request *req) {
 	char *result_string;
 	struct rtc_wkalrm alarm;
 	int fdesc, ret;
+	unsigned char alarm_bit;
 	cJSON *alarm_json, *json_min, *json_hour, *json_mday,
                 *json_mon, *json_year, *json_sec, *json_wday,
 		*json_enabled, *json_pending;
@@ -160,6 +162,7 @@ int handle_wkalrm(struct http_request *req) {
 		alarm_json = cJSON_CreateObject();
 		fdesc = open("/dev/rtc", O_RDONLY);
 		ret = ioctl(fdesc, RTC_WKALM_RD, &alarm);
+		ret |= ioctl(fdesc, IOCTL_DS13307_ALRM, &alarm_bit);
 		close(fdesc);
 		if (!ret) {
 			json_sec = cJSON_CreateNumber(alarm.time.tm_sec);
@@ -170,7 +173,7 @@ int handle_wkalrm(struct http_request *req) {
                         json_year = cJSON_CreateNumber(alarm.time.tm_year);
                         json_wday = cJSON_CreateNumber(alarm.time.tm_wday);
 			json_enabled = cJSON_CreateNumber(alarm.enabled);
-			json_pending = cJSON_CreateNumber(alarm.pending);
+			json_pending = cJSON_CreateNumber(alarm_bit);
 			cJSON_AddItemToObject(alarm_json, "seconds", json_sec);
                         cJSON_AddItemToObject(alarm_json, "minutes", json_min);
                         cJSON_AddItemToObject(alarm_json, "hour", json_hour);