Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sdk:scripts:dio-monitor [2015/05/05 15:04] (current)
Line 1: Line 1:
 +====== SDK Script dio-monitor.are ======
 +<code c dio-monitor.are>​
 +/* DESC: This script monitors the DIO ports and sends a SMS to the specified phone number.
 + * Copyright (C) 2012 NetModule AG, Switzerland
 + */
 +
 +void usage()
 +{
 +    print("​dio-monitor.are <din> <​tel>​\n"​);​
 +    print(" ​ din:  digital input [in1|in2]\n"​);​
 +    print(" ​ tel:  telephone number to send the SMS to\n"​);​
 +    exit(1);
 +}
 +
 +void sendsms(tel,​ msg)
 +{
 +    id = nb_sms_send(tel,​ msg);
 +    if (id) {
 +        printf("​Successfully spooled SMS (ID %s) to '​%s'​.\n",​ id, tel);
 +    } else {
 +        print("​Unable to send SMS to '​%s'​.\n",​ tel);
 +    }
 +}
 +
 +if (argc != 3) {
 +    usage();
 +}
 +
 +din = argv[1];
 +tel = argv[2];
 +
 +in1 = nb_dio_get("​in1"​);​
 +in2 = nb_dio_get("​in2"​);​
 +
 +while (1) {
 +    if (left(din,​4) == "​in1"​) {
 +        cin1 = nb_dio_get("​in1"​);​
 +        if (cin1 != in1) {
 +            msg = sprintf("​Digital input state of '​%s'​ has changed from %d to %d\n", din, in1, cin1);
 +            sendsms(tel,​ msg);
 +            in1 = cin1;
 +        }
 +    }
 +    if (left(din,​4) == "​in2"​) {
 +        cin2 = nb_dio_get("​in2"​);​
 +        if (cin2 != in2) {
 +            msg = sprintf("​Digital input state of '​%s'​ has changed from %d to %d\n", din, in2, cin2);
 +            sendsms(tel,​ msg);
 +            in2 = cin2;
 +        }
 +    }
 +    sleep(3);
 +}
 +
 +exit(0);
 +
 +</​code>​