Beispiel #1
0
int main(int argc, char *argv[])
{
	init_GA();
	run_GA();

	return 0;
}
Beispiel #2
0
int readconfig_I2C_DEV(xmlDocPtr doc, xmlNodePtr node, bus_t busnumber)
{
    buses[busnumber].driverdata = malloc(sizeof(I2CDEV_DATA));

    if (buses[busnumber].driverdata == NULL) {
        syslog_bus(busnumber, DBG_ERROR,
                   "Memory allocation error in module '%s'.", node->name);
        return 0;
    }

    buses[busnumber].type = SERVER_I2C_DEV;
    buses[busnumber].init_func = &init_bus_I2C_DEV;
    buses[busnumber].thr_func = &thr_sendrec_I2C_DEV;
    strcpy(buses[busnumber].description, "GA POWER DESCRIPTION");

    __i2cdev->number_ga = 0;
    __i2cdev->multiplex_buses = 0;
    __i2cdev->ga_hardware_inverters = 0;
    __i2cdev->ga_reset_devices = 1;
    __i2cdev->ga_min_active_time = 75;

    xmlNodePtr child = node->children;
    xmlChar *txt = NULL;

    while (child != NULL) {

        if ((xmlStrncmp(child->name, BAD_CAST "text", 4) == 0) ||
            (xmlStrncmp(child->name, BAD_CAST "comment", 7) == 0)) {
            /* just do nothing, it is only formatting text or a comment */
        }

        /*
           else if (xmlStrcmp(child->name, BAD_CAST "number_gl") == 0) {
           txt = xmlNodeListGetString(doc, child->xmlChildrenNode, 1);
           if (txt != NULL) {
           __i2cdev->number_gl = atoi((char*) txt);
           xmlFree(txt);
           }
           }
         */

        else if (xmlStrcmp(child->name, BAD_CAST "multiplex_buses") == 0) {
            txt = xmlNodeListGetString(doc, child->xmlChildrenNode, 1);
            if (txt != NULL) {
                __i2cdev->multiplex_buses = atoi((char *) txt);
                xmlFree(txt);
            }
        }

        else if (xmlStrcmp(child->name, BAD_CAST "ga_hardware_inverters")
                 == 0) {
            txt = xmlNodeListGetString(doc, child->xmlChildrenNode, 1);
            if (txt != NULL) {
                __i2cdev->ga_hardware_inverters = atoi((char *) txt);
                xmlFree(txt);
            }
        }

        else if (xmlStrcmp(child->name, BAD_CAST "ga_reset_devices") == 0) {
            txt = xmlNodeListGetString(doc, child->xmlChildrenNode, 1);
            if (txt != NULL) {
                __i2cdev->ga_reset_devices = atoi((char *) txt);
                xmlFree(txt);
            }
        }

        else
            syslog_bus(busnumber, DBG_WARN,
                       "WARNING, unknown tag found: \"%s\"!\n",
                       child->name);;

        child = child->next;
    }

    /* init the stuff */

    __i2cdev->number_ga = 256 * (__i2cdev->multiplex_buses);

    if (init_GA(busnumber, __i2cdev->number_ga)) {
        __i2cdev->number_ga = 0;
        syslog_bus(busnumber, DBG_ERROR,
                   "Can't create array for accessoires");
    }

    /*
       if (init_GL(busnumber, __i2cdev->number_gl)) {
       __i2cdev->number_gl = 0;
       syslog_bus(busnumber, DBG_ERROR, "Can't create array for locomotives");
       }
     */
    /*
       if (init_FB(busnumber, __i2cdev->number_ga)) {
       __i2cdev->number_ga = 0;
       syslog_bus(busnumber, DBG_ERROR, "Can't create array for feedback");
       }
     */
    return (1);
}