int db_connect(db_connect_t *db_connector,db_connect_info_t db_connect_info){ if(!(db_connector->db_handler = (MYSQL *)malloc(sizeof(MYSQL)))){ printf("db_handler:malloc failed!\n"); return -1; } get_db_handler((MYSQL *)(db_connector->db_handler),db_connect_info); return 0; }
int main(int argc,char *argv[]) { node_t node_inser_info; sensor_t sensor_inser_info; network_t network_inser_info; memset(&node_inser_info,0,sizeof(node_t)); memset(&sensor_inser_info,0,sizeof(sensor_t)); memset(&network_inser_info,0,sizeof(network_t)); node_t node_info[10000]; sensor_t sensor_info[10000]; network_t network_info[10000]; memset(&node_info,0,sizeof(node_info)); memset(&sensor_info,0,sizeof(sensor_info)); memset(&network_info,0,sizeof(network_info)); MYSQL mysql; get_db_handler(&mysql); int num = 0; node_inser_info.node_id = num; node_inser_info.power = num; node_inser_info.position.x = 50 + num % 10; node_inser_info.position.y = 40 + num % 10; strcpy(node_inser_info.network_name,"10.16.17.0"); strcpy(node_inser_info.work_state,"work"); strcpy(node_inser_info.node_status,"normal"); update_node_info(mysql,node_inser_info); network_inser_info.node_id = num; network_inser_info.parent_id = num; network_inser_info.quality = 100; strcpy(network_inser_info.network_name,"10.16.17.0"); update_network(mysql,network_inser_info); for(num = 1;num <= 10;num++){ node_inser_info.node_id = num; node_inser_info.power = 90 + num % 10; node_inser_info.position.x = 50 + num % 10; node_inser_info.position.y = 40 + num % 10; strcpy(node_inser_info.network_name,"10.16.17.0"); strcpy(node_inser_info.work_state,"work"); strcpy(node_inser_info.node_status,"normal"); update_node_info(mysql,node_inser_info); network_inser_info.node_id = num; network_inser_info.parent_id = num - 1; network_inser_info.quality = 100; strcpy(network_inser_info.network_name,"10.16.17.0"); update_network(mysql,network_inser_info); strcpy(sensor_inser_info.network_name,"10.16.17.0"); sensor_inser_info.node_id = num % 300; sensor_inser_info.temp = 26 + num % 10; sensor_inser_info.photo = 98 + num % 10; sensor_inser_info.sound = 21 + num % 10; sensor_inser_info.x_acc = 34 + num % 10; sensor_inser_info.y_acc = 0 + num % 10; sensor_inser_info.x_mag = 22 + num % 10; sensor_inser_info.y_mag = 33 + num % 10; insert_sense_record(mysql,sensor_inser_info); } printf("===================insert end=================\n"); long i,j,k,l; for(l = 0; l< 10;l++){ //j = get_all_record(mysql,sensor_info); //j = get_absolute_record(mysql,sensor_info,"10.16.17.0",99,"temp","2012-09-23 11:21:41","2012-09-23 11:21:42"); k = get_latest_record(mysql,sensor_info,"10.16.17.0",1,"sound"); //j = get_relative_record(mysql,sensor_info,"10.16.17.0",99,"temp","20120927220609",30); j = get_all_node_info(mysql,node_info); //j = get_network_info(mysql,network_info); printf("j = %ld\n",j); if(j==-1) return -1; else{ for(i = 0;i < j;i++){ printf("network_id:%d \t" ,node_info[i].network_id); printf("network_name:%s \t" ,node_info[i].network_name); printf("node_id:%d\t" ,node_info[i].node_id); printf("parent_id:%d\t" ,node_info[i].parent_id); printf("power:%d\t" ,node_info[i].power); printf("position_x:%6.2lf\t" ,node_info[i].position.x); printf("position_y:%6.2lf\t" ,node_info[i].position.y); printf("\n"); //printf("network_id:%d \t" ,network_info[i].network_id); //printf("network_name:%s \t" ,network_info[i].network_name); //printf("node_id:%d \t" ,network_info[i].node_id); //printf("parent_id:%d \t" ,network_info[i].parent_id); //printf("quality:%d \t" ,network_info[i].quality); //printf("\n"); } for(i = 0;i< k;i++){ printf("network_id:%d\t" ,sensor_info[i].network_id); printf("network_name:%s\t" ,sensor_info[i].network_name); printf("node_id:%d\t" ,sensor_info[i].node_id); printf("temp:%6.2lf\t" ,sensor_info[i].temp); printf("photo:%6.2lf\t" ,sensor_info[i].photo); printf("sound:%6.2lf\t" ,sensor_info[i].sound); //printf("x_acc:%6.2lf\t" ,sensor_info[i].x_acc); //printf("y_acc:%6.2lf\t" ,sensor_info[i].y_acc); //printf("x_mag:%6.2lf\t" ,sensor_info[i].x_mag); //printf("y_mag:%6.2lf\t" ,sensor_info[i].y_mag); printf("insert_time:%s\t" ,sensor_info[i].time); printf("\n"); } } sleep(1); } mysql_close(&mysql); return 0; }
int TGX_MODULE_HTTP_HANDLER(tgx_module_http_t *http) { /*int main(int argc, char *argv[]) */ /*{*/ struct json_object *new_obj; http->resp->data = calloc(65536, sizeof(char)); http->resp->size = 65536; MYSQL mysql; node_t node_inser_info[10000]; memset(node_inser_info, 0, sizeof(node_inser_info)); if(get_db_handler(&mysql) == -1){ return -1; } int i; int nNode; nNode = get_all_node_info(&mysql, node_inser_info); printf("nNode = %d\n", nNode); if (nNode < 0) { //goto myerr; mysql_close(&mysql); return -1; } json_object *network = json_object_new_array(), *network_object[nNode], *node_array[nNode], *node; memset(network_object, 0, sizeof(network_object)); memset(node_array, 0, sizeof(node_array)); printf("sizeof(*network_object), sizeof(*node_array) = %d, %d\n", sizeof(network_object), sizeof(node_array)); /*for (i = 0; i < nNode; i++) {*/ /*network_object = json_object_new_object();*/ /*node_array = json_object_new_array();*/ /*}*/ int flag[nNode]; memset(flag, 0, sizeof(flag)); int network_id, index, isNew, network_num = 0; for (i = 0; i < nNode; i++) { node = json_object_new_object(); /*printf("writing to network json format...,%d\n", i);*/ network_id = node_inser_info[i].network_id; /*printf("network_id = %d, node_id = %d\n", node_inser_info[i].network_id, node_inser_info[i].node_id);*/ index = get_index(flag, nNode, network_id, &isNew); if (index < 0) { mysql_close(&mysql); //goto myerr; return -1; } if (isNew) { network_num++; network_object[index] = json_object_new_object(); node_array[index] = json_object_new_array(); json_object_object_add(network_object[index], "network_id", json_object_new_int(node_inser_info[i].network_id)); json_object_object_add(network_object[index], "network_name", json_object_new_string(node_inser_info[i].network_name)); /*printf("new node: %d, %s\n", node_inser_info[i].network_id, node_inser_info[i].network_name);*/ } json_object_object_add(node, "node_id", json_object_new_int(node_inser_info[i].node_id)); json_object_object_add(node, "parent_id", json_object_new_int(node_inser_info[i].parent_id)); json_object_object_add(node, "power", json_object_new_int(100)); json_object_object_add(node, "position_x", json_object_new_double(node_inser_info[i].position.x)); json_object_object_add(node, "position_y", json_object_new_double(node_inser_info[i].position.y)); json_object_array_add(node_array[index], node); } // 将分派的结果进行组装 /*int tmp;*/ // 先排序, 顺便插入 /*int j, k; for (i = 0; i < len - 1; i++) { for (j = i + 1; i < len; j++) { if (flag[i] > flag[j]) { tmp = flag[i]; flag[i] = flag[j]; flag[j] = tmp; } } }*/ /*for (i = 0; i < network_num; i++)*/ /*printf("%d ", flag[i]);*/ /*printf("\n");*/ /*printf("network_num = %d\n", network_num);*/ for (i = 0; i < network_num; i++) { json_object_object_add(network_object[i], "nodes", node_array[i]); json_object_array_add (network, network_object[i]); } sprintf(http->resp->data, "%s\n", json_object_to_json_string(network)); printf("%s\n", json_object_to_json_string(network)); mysql_close(&mysql); return 0; /*myerr: mysql_close(&mysql); return -1;*/ }