int main(int argc, char *argv[]) { init_GA(); run_GA(); return 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); }