RaspberrPi project source code
guowenxue
10 hours ago a574ce7edf7f31847be882f9f08dcd1ab8e5ebe0
project/lightd/config.c
@@ -3,7 +3,7 @@
 *                  All rights reserved.
 *
 *       Filename:  config.c
 *    Description:  This file is mqttd configure file parser function
 *    Description:  This file is lightd configure file parser function
 *
 *        Version:  1.0.0(2019年06月25日)
 *         Author:  Guo Wenxue <guowenxue@gmail.com>
@@ -86,7 +86,7 @@
        goto cleanup;
    }
    /* cJSON parser ID will get ""  */
    snprintf(mqtt->devid, sizeof(mqtt->devid), "\"%s\"", str);
    strncpy(mqtt->devid, str, sizeof(mqtt->devid));
    log_info("Parser device ID [%s]\n", mqtt->devid);
@@ -94,7 +94,25 @@
     *|       parser hardware module configuration           |
     *+------------------------------------------------------+*/
    /* parser GPIO output pins  */
    /* DS18B20 temperature sensor status */
    hwinfo->ds18b20=iniparser_getint(ini, "hardware:ds18b20", 0);
    if( !hwinfo->ds18b20 )
        log_warn("Parser DS18B20 temperature module disabled\n");
    else
        log_info("Parser DS18B20 temperature module enabled\n");
    /* TSL2561 lux sensor status */
    hwinfo->tsl2561=iniparser_getint(ini, "hardware:tsl2561", 0);
    if( !hwinfo->tsl2561)
        log_warn("Parser TSL2561 lux sensor module disabled\n");
    else
        log_info("Parser TSL2561 lux sensor module enabled\n");
    /* TSL2561 lux sensor threshold value  */
    hwinfo->lux_threshold = iniparser_getdouble(ini, "hardware:lux_threshold", 0.1);
    log_info("parser LUX enable and threshold value set be [%.03f]\n", hwinfo->lux_threshold);
    /* parser GPIO output pins for relay */
    if( !(str=iniparser_getstring(ini, "hardware:gpio_outpin", NULL)) )
    {
        log_warn("parser no GPIO output pins\n");
@@ -108,7 +126,7 @@
    hwinfo->light_intval = iniparser_getint(ini, "hardware:light_intval", 20);
    log_info("parser relay controled light interval time [%d]\n", hwinfo->light_intval);
    /* parser GPIO input pins  */
    /* parser GPIO input pins for infrared  */
    if( !(str=iniparser_getstring(ini, "hardware:gpio_inpin", NULL)) )
    {
        log_warn("parser no GPIO input pins\n");
@@ -118,10 +136,6 @@
        parser_gpio_info(_TYPE_INPUT, &hwinfo->gpio, (char *)str);
        log_info("parser [%d] GPIO input pins\n", hwinfo->gpio.incnt);
    }
    hwinfo->lux_threshold = iniparser_getdouble(ini, "hardware:lux_threshold", 0.1);
    log_info("parser LUX enable and threshold value set be [%.03f]\n", hwinfo->lux_threshold);
    /*+------------------------------------------------------+
     *|              parser broker settings                  |
@@ -144,17 +158,20 @@
    mqtt->port = val;
    log_info("Parser MQTT broker server [%s:%d]\n", mqtt->host, mqtt->port);
    str=iniparser_getstring(ini, "broker:token", NULL);
    strncpy(mqtt->token, str, sizeof(mqtt->uid) );
    if( (str=iniparser_getstring(ini, "broker:token", NULL)) )
    {
        strncpy(mqtt->token, str, sizeof(mqtt->uid) );
        log_info("Parser broker token [%s]\n", mqtt->token);
    }
    str=iniparser_getstring(ini, "broker:username", NULL);
    strncpy(mqtt->uid, str, sizeof(mqtt->uid) );
    if( (str=iniparser_getstring(ini, "broker:username", NULL)) )
        strncpy(mqtt->uid, str, sizeof(mqtt->uid) );
    str=iniparser_getstring(ini, "broker:password", NULL);
    strncpy(mqtt->pwd, str, sizeof(mqtt->pwd) );
    if( (str=iniparser_getstring(ini, "broker:password", NULL)) )
        strncpy(mqtt->pwd, str, sizeof(mqtt->pwd) );
    if( mqtt->uid && mqtt->pwd )
        log_info("Parser broker author by [%s:%s]\n", mqtt->uid, mqtt->pwd);
    if( mqtt->uid )
        log_info("Parser broker account [%s:%s]\n", mqtt->uid, mqtt->pwd);
    mqtt->keepalive = iniparser_getint(ini, "broker:keepalive", DEF_KEEPALIVE);
    log_info("Parser broker keepalive timeout [%d] seconds\n", mqtt->keepalive);