void csImgGoogle::sendImgURIToClient(int _width, int _height, const QUrl & url ) { // add with and hight and make a jason message char *out; cJSON *json_send; json_send=cJSON_CreateObject(); cJSON_AddStringToObject(json_send,"CMD", "CREATE"); cJSON_AddStringToObject(json_send,"TYPE", "Image"); cJSON_AddNumberToObject(json_send,"OID", -1); cJSON_AddStringToObject(json_send,"URI", url.toString().toStdString().c_str()); cJSON_AddNumberToObject(json_send,"WIDTH", _width); cJSON_AddNumberToObject(json_send,"HEIGHT", _height); float pos[2]; pos[0] = 0.0f; pos[1] = 0.0f; cJSON_AddItemToObject(json_send,"POS", cJSON_CreateFloatArray(pos,2)); pos[0] = 1.0f; pos[1] = 1.0f; cJSON_AddItemToObject(json_send,"SCALE", cJSON_CreateFloatArray(pos,2)); out=cJSON_PrintUnformatted(json_send); cJSON_Delete(json_send); pte_Url->setPlainText(QString(out)); sm->sendData((char *)out); free(out); }
//After finish called , remember free memery char *CreateMultiplexJson(char *Type, char *cmdid) { cJSON *root = NULL; char *out = NULL; root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "Type", Type); cJSON_AddStringToObject(root, "CmdID", cmdid); cJSON_AddStringToObject(root, "Time", setLocalTime()); cJSON_AddStringToObject(root, "Broadcast", NONE); cJSON_AddStringToObject(root, "NeedAnswer", NO); cJSON_AddNumberToObject(root, "TeamID", status.TeamID); cJSON_AddNumberToObject(root, "AgentID", status.AgentID); cJSON_AddStringToObject(root, "Character", status.Character); cJSON_AddStringToObject(root, "TeamShape", status.TeamShape); cJSON_AddNumberToObject(root, "FuleStatus", status.Fule); cJSON_AddStringToObject(root, "AliveStatus", status.AliveStatus); out = cJSON_PrintUnformatted(root); cJSON_Delete(root); sNetOutput("->->->StatusBuffer : ",out); return out; }
//TODO move to own file int ICACHE_FLASH_ATTR http_dht_api_read(http_connection *c) { NODE_DBG("http_dht_api_read"); //wait for whole body if(c->state <HTTPD_STATE_BODY_END) return HTTPD_CGI_MORE; //write headers http_SET_HEADER(c,HTTP_CONTENT_TYPE,JSON_CONTENT_TYPE); http_response_OK(c); sensor_data data; sensors_get_data(&data); //create json cJSON *root = cJSON_CreateObject(); cJSON_AddNumberToObject(root,"temp",data.dht22.temp); cJSON_AddNumberToObject(root,"hum",data.dht22.hum); //write json http_write_json(c,root); //delete json struct cJSON_Delete(root); return HTTPD_CGI_DONE; }
void *write_sock(void *p) { if(p == NULL) return NULL; SOCKDATA *pdata = (SOCKDATA*)p; cJSON *root = cJSON_CreateObject(); cJSON_AddNumberToObject(root, "needResponse", 0); cJSON_AddStringToObject(root, "message", pdata->msg); cJSON_AddNumberToObject(root, "len", pdata->size); char *json_str = cJSON_Print(root); int len; size_t size = strlen(json_str); uint8_t *buf = (uint8_t*)malloc(size+5); if((len=crc_data(json_str, size, buf))==-1){ free(buf); cJSON_Delete(root); return NULL; } int nbytes; nbytes =send(pdata->sock_fd, buf, len, 0); free(buf); cJSON_Delete(root); return NULL; }
int RUCE_Roto_SetEntry(RUCE_Roto* This, RUCE_Roto_Entry* Sorc) { cJSON* Entries = cJSON_GetObjectItem(This -> Ptr, "Entries"); if(! Entries) return 0; char* Name = String_GetChars(& Sorc -> Name); cJSON* Entry = cJSON_GetObjectItem(Entries, Name); cJSON* NewEntry = cJSON_CreateObject(); cJSON_AddNumberToObject(NewEntry, "VOT", Sorc -> VOT); cJSON_AddNumberToObject(NewEntry, "InvarLeft", Sorc -> InvarLeft); cJSON_AddNumberToObject(NewEntry, "InvarRight", Sorc -> InvarRight); cJSON_AddNumberToObject(NewEntry, "Overlap", Sorc -> Overlap); if(! Entry) { //Create new entry cJSON_AddItemToObject(Entries, Name, NewEntry); }else { //Modify existing entry cJSON_ReplaceItemInObject(Entries, Name, NewEntry); } return 1; }
/* cJson object out */ cJSON *Category::OutJsonObjectFormat(){ cJSON *category; char *out; char IDBuf[1024]; memset(IDBuf, 0, sizeof(IDBuf) ); /* create cJSON object */ category = cJSON_CreateObject(); /* id */ cJSON_AddNumberToObject( category, "id", this->id ); /* parent id */ cJSON_AddNumberToObject( category, "parentid", this->parentid ); /* name */ sprintf(IDBuf, "%s", this->name.c_str()); cJSON_AddStringToObject( category, "name", IDBuf ); /* print */ out = cJSON_Print( category ); ESLog::ISLog("cJson Category: %s\n",__FILE__, __LINE__, out ); free(out); return category; }
static void getmonitorinfo(HttpConn *conn) { char str[256] = {0}; int inputStatus = 0, outChn = 0; cJSON *result = cJSON_CreateObject(); char* jsonstring; int outValidBitrate = 0; unsigned int outstatus = 0; for(outChn=0; outChn<clsProgram._outChannelCntMax; outChn++){ ChnBypass_read(tmpip, outChn); RecordInputChnUseStatus(outChn); } OutChn_validBitrateGet(tmpip, 1, &outValidBitrate); GetOutChannelStatus(tmpip, 1, &outstatus); cJSON_AddNumberToObject(result,"outValidBitrate", outValidBitrate); cJSON_AddNumberToObject(result,"outstatus", outstatus); outValidBitrate = 0; outstatus = 0; OutChn_validBitrateGet(tmpip, 2, &outValidBitrate); GetOutChannelStatus(tmpip, 2, &outstatus); cJSON_AddNumberToObject(result,"outValidBitrate2", outValidBitrate); cJSON_AddNumberToObject(result,"outstatus2", outstatus); int errRslt = FlagInputSignal(tmpip, &inputStatus); ShowNeedChnDataButNoInputWarning(errRslt, inputStatus, result); jsonstring = cJSON_PrintUnformatted(result); //printf("--getmonitorinfo---->>>%d\n",strlen(jsonstring)); memcpy(str, jsonstring, strlen(jsonstring)); //释放内存 cJSON_Delete(result); free(jsonstring); render(str); }
void create_json_test(void) { cJSON* pRoot = cJSON_CreateObject(); cJSON* pArray = cJSON_CreateArray(); cJSON_AddItemToObject(pRoot, "students_info", pArray); cJSON* pItem = cJSON_CreateObject(); cJSON_AddStringToObject(pItem, "name", "chenzhongjing"); cJSON_AddStringToObject(pItem, "sex", "male"); cJSON_AddNumberToObject(pItem, "age", 28); cJSON_AddItemToArray(pArray, pItem); pItem = cJSON_CreateObject(); cJSON_AddStringToObject(pItem, "name", "fengxuan"); cJSON_AddStringToObject(pItem, "sex", "male"); cJSON_AddNumberToObject(pItem, "age", 24); cJSON_AddItemToArray(pArray, pItem); pItem = cJSON_CreateObject(); cJSON_AddStringToObject(pItem, "name", "tuhui"); cJSON_AddStringToObject(pItem, "sex", "male"); cJSON_AddNumberToObject(pItem, "age", 22); cJSON_AddItemToArray(pArray, pItem); char* szJSON = cJSON_Print(pRoot); printf("%s", szJSON); cJSON_Delete(pRoot); free(szJSON); return; }
int Pack_swm_set_mon_objs_req(susi_comm_data_t * pCommData, char ** outputStr) { char * out = NULL; int outLen = 0; cJSON *root = NULL, *pSUSICommDataItem = NULL; if(pCommData == NULL || outputStr == NULL) return outLen; root = cJSON_CreateObject(); pSUSICommDataItem = cJSON_CreateObject(); cJSON_AddItemToObject(root, AGENTINFO_BODY_STRUCT, pSUSICommDataItem); cJSON_AddNumberToObject(pSUSICommDataItem, AGENTINFO_CMDTYPE, pCommData->comm_Cmd); #ifdef COMM_DATA_WITH_JSON cJSON_AddNumberToObject(pSUSICommDataItem, AGENTINFO_REQID, pCommData->reqestID); #endif { mon_obj_info_list monObjList = NULL; mon_obj_info_list * pMonObjList = &monObjList; if(!pCommData->message) return false; memcpy(pMonObjList, pCommData->message, sizeof(mon_obj_info_list)); if(!monObjList) return false; cJSON_AddSWMThrInfoToObject(root, SWM_THR_INFO, monObjList); } out = cJSON_PrintUnformatted(root); outLen = strlen(out) + 1; *outputStr = (char *)(malloc(outLen)); memset(*outputStr, 0, outLen); strcpy(*outputStr, out); cJSON_Delete(root); printf("%s\n",out); free(out); return outLen; }
int PublishData(jNet *pJnet, int source) { int res; cJSON *root, *son1, *son2; char *out; root = cJSON_CreateArray(); cJSON_AddItemToArray(root, son1=cJSON_CreateObject()); cJSON_AddStringToObject(son1, "hwid", gAgent); cJSON_AddStringToObject(son1, "type", "AGENT"); cJSON_AddItemToObject(son1, "values", son2=cJSON_CreateObject()); cJSON_AddNumberToObject(son2, "temperature", GetRandTemp()); if (source == 0) cJSON_AddFalseToObject(son2, "error"); else cJSON_AddTrueToObject(son2, "error"); cJSON_AddItemToArray(root, son1=cJSON_CreateObject()); cJSON_AddStringToObject(son1, "hwid", "ABCDEF0123456"); cJSON_AddStringToObject(son1, "type", "SENSOR"); cJSON_AddItemToObject(son1, "values", son2=cJSON_CreateObject()); cJSON_AddNumberToObject(son2, "lumen", Read8591(0)); cJSON_AddNumberToObject(son2, "Volt", Read8591(3)); out=cJSON_PrintUnformatted(root); cJSON_Delete(root); printf("Publishing %s\n", out); res = jNetPublishT(pJnet, gTopicUp, out); //printf("result %d\n", res); free(out); return res; }
byte* buildAuthRequest(std::string username, int &byteLen,std::string APIKEY, std::string SECRETKEY) { std::string timeStamp = getODataUTCDateFilter(); std::string params; params.append("apiKey"); params.append(APIKEY); params.append("timeStamp"); params.append(timeStamp); params.append("user"); params.append(username); params.append("version1.5"); unsigned char hmac_digest[20]; memset(hmac_digest, 0, 20); CHMAC_SHA1 hmac_sha1; hmac_sha1.HMAC_SHA1((unsigned char *)params.c_str(),params.length(), (unsigned char *)SECRETKEY.c_str(), SECRETKEY.length(),hmac_digest); std::string hmac = urlencode(base64_encode(hmac_digest, 20)); cJSON *payloadJSON; payloadJSON = cJSON_CreateObject(); cJSON_AddStringToObject(payloadJSON,"apiKey", APIKEY.c_str()); cJSON_AddStringToObject(payloadJSON,"version", "1.5"); cJSON_AddStringToObject(payloadJSON,"timeStamp", timeStamp.c_str()); cJSON_AddStringToObject(payloadJSON,"user", username.c_str()); cJSON_AddStringToObject(payloadJSON,"signature", hmac.c_str()); cJSON_AddNumberToObject(payloadJSON, "keepalive", WARP_KEEP_ALIVE_TIME_INTERVAL);//recoverytime cJSON_AddNumberToObject(payloadJSON, "recoverytime", RECOVERY_ALLOWANCE_TIME); char* cRet = cJSON_PrintUnformatted(payloadJSON); std::string payload = cRet; free(cRet); cJSON_Delete(payloadJSON); return buildWarpRequest(RequestType::auth, payload, byteLen); }
cJSON *status_error_json(void) { struct status_error_t *e; int pe; struct cJSON *ea; if ((pe = pthread_mutex_lock(&status_errs_mt))) { hlog(LOG_ERR, "status_error_json(): could not lock status_errs_mt: %s", strerror(pe)); return NULL; } ea = cJSON_CreateArray(); for (e = status_errs; (e); e = e->next) { if (e->ends < now) // don't display expired alarms continue; cJSON *ej = cJSON_CreateObject(); cJSON_AddStringToObject(ej, "err", e->err); cJSON_AddNumberToObject(ej, "set", e->set); cJSON_AddNumberToObject(ej, "start", e->started); cJSON_AddNumberToObject(ej, "end", e->ends); cJSON_AddItemToArray(ea, ej); } if ((pe = pthread_mutex_unlock(&status_errs_mt))) { hlog(LOG_ERR, "status_error_json(): could not unlock status_errs_mt: %s", strerror(pe)); } return ea; }
static void api_response(int res, int total, const linkage_base_st *link_base) { cJSON *root; cJSON *list_array; cJSON *list_item; char *json_out; int i; root=cJSON_CreateObject(); cJSON_AddNumberToObject(root, FIELD_STATUS, res); if(res >=0){ cJSON_AddItemToObject(root, "list", list_array =cJSON_CreateArray()); for(i=0; i<total; i++){ cJSON_AddItemToArray(list_array, list_item =cJSON_CreateObject()); cJSON_AddNumberToObject(list_item, FIELD_LID, link_base[i].lid); cJSON_AddStringToObject(list_item, FIELD_LNKNAME, link_base[i].lnkname); cJSON_AddStringToObject(list_item, FIELD_TRGIEEE, link_base[i].trgieee); cJSON_AddStringToObject(list_item, FIELD_TRGEP, link_base[i].trgep); cJSON_AddStringToObject(list_item, FIELD_TRGCND, link_base[i].trgcnd); cJSON_AddStringToObject(list_item, FIELD_LNKACT, link_base[i].lnkact); cJSON_AddNumberToObject(list_item, FIELD_ENABLE, link_base[i].enable); } } json_out=cJSON_Print(root); cJSON_Delete(root); fprintf(cgiOut,"%s\n", json_out); free(json_out); }
int json_return(evhtp_request_t *req, int err_no, const char *md5sum, int post_size) { //json sample: //{"ret":true,"info":{"size":"1024", "md5":"edac35fd4b0059d3218f0630bc56a6f4"}} //{"ret":false,"error":{"code":"1","message":"\u9a8c\u8bc1\u5931\u8d25"}} cJSON *j_ret = cJSON_CreateObject(); cJSON *j_ret_info = cJSON_CreateObject(); if(err_no == -1) { cJSON_AddBoolToObject(j_ret, "ret", 1); cJSON_AddStringToObject(j_ret_info, "md5", md5sum); cJSON_AddNumberToObject(j_ret_info, "size", post_size); cJSON_AddItemToObject(j_ret, "info", j_ret_info); } else { cJSON_AddBoolToObject(j_ret, "ret", 0); cJSON_AddNumberToObject(j_ret_info, "code", err_no); LOG_PRINT(LOG_DEBUG, "post_error_list[%d]: %s", err_no, post_error_list[err_no]); cJSON_AddStringToObject(j_ret_info, "message", post_error_list[err_no]); cJSON_AddItemToObject(j_ret, "error", j_ret_info); } char *ret_str_unformat = cJSON_PrintUnformatted(j_ret); LOG_PRINT(LOG_DEBUG, "ret_str_unformat: %s", ret_str_unformat); evbuffer_add_printf(req->buffer_out, "%s", ret_str_unformat); evhtp_headers_add_header(req->headers_out, evhtp_header_new("Content-Type", "application/json", 0, 0)); cJSON_Delete(j_ret); free(ret_str_unformat); return 0; }
int auth_client_check_server(time_t current_time) { static time_t last_time = 0; char *msgstr; cJSON *msgJS; cJSON *dataJS; if (current_time - last_time < 300) { return 0; } last_time = current_time; msgJS = cJSON_CreateObject(); cJSON_AddStringToObject(msgJS, "out_topic", "a/ac/usrmgr/query"); cJSON_AddNumberToObject(msgJS, "deadline", current_time + 10); dataJS = cJSON_CreateObject(); cJSON_AddStringToObject(dataJS, "mod", "a/local/auth"); cJSON_AddStringToObject(dataJS, "cmd", "check_config_update"); cJSON_AddStringToObject(dataJS, "group", auth_user_ac_account); cJSON_AddNumberToObject(dataJS, "config_version", auth_config_version); cJSON_AddItemToObject(msgJS, "data", dataJS); msgstr = cJSON_PrintUnformatted(msgJS); printf("%s\n", msgstr); auth_mqtt_publish("a/local/proxy", msgstr, strlen(msgstr)); cJSON_Delete(msgJS); free(msgstr); return 0; }
//-------------------------------------------------------------- void wtmApp::saveSettings() { ofLogNotice() << "saving settings"; cJSON *root = cJSON_CreateObject(); const char* sliderNames[9] = { kGUIHalfwaveAmpName, kGUIOutputAmpName, kGUISampleDelayName, kGUISignalFrequencyName, kGUIUpSamplingName, kGUIBlobThresholdName, kGUIBlobVisualizationName, kGUIBlobGammaName, kGUIBlobAdaptiveThresholdRangeName }; for (int i=0; i < 8; i++) { cJSON_AddNumberToObject(root, sliderNames[i], ((ofxUISlider *) gui->getWidget(sliderNames[i]))->getValue() ); } ofxUIDropDownList *interpolationDropDown = (ofxUIDropDownList *) gui->getWidget(kGUIInterpolationDropDownName); if (!(vector<string> *) interpolationDropDown->getSelectedNames().empty()) cJSON_AddStringToObject(root, kGUIInterpolationDropDownName, interpolationDropDown->getSelectedNames()[0].c_str() ); ofxUIDropDownList *serialDropDown = (ofxUIDropDownList *) gui->getWidget(kGUISerialDropDownName); if (!(vector<string> *) serialDropDown->getSelectedNames().empty()) cJSON_AddStringToObject(root, kGUISerialDropDownName, serialDropDown->getSelectedNames()[0].c_str() ); cJSON_AddNumberToObject(root, kGUIBlobsName, (int) this->bTrackBlobs ); // cJSON_AddNumberToObject(root, kGUIGridName, this->bDrawGrid ); // TODO char *renderedJson = cJSON_Print(root); ofFile file; file.open(ofToDataPath("settings.json"), ofFile::WriteOnly, false); file << renderedJson; file.close(); cJSON_Delete(root); delete(renderedJson); }
/** * @brief add_info Added image info to the request * * @param im The image struct * @param req The evhtp request */ void add_info(MagickWand *im, evhtp_request_t *req) { MagickSizeType size = MagickGetImageSize(im); unsigned long width = MagickGetImageWidth(im); unsigned long height = MagickGetImageHeight(im); size_t quality = MagickGetImageCompressionQuality(im); quality = (quality == 0 ? 100 : quality); char *format = MagickGetImageFormat(im); //{"ret":true,"info":{"size":195135,"width":720,"height":480,"quality":75,"format":"JPEG"}} cJSON *j_ret = cJSON_CreateObject(); cJSON *j_ret_info = cJSON_CreateObject(); cJSON_AddBoolToObject(j_ret, "ret", 1); cJSON_AddNumberToObject(j_ret_info, "size", size); cJSON_AddNumberToObject(j_ret_info, "width", width); cJSON_AddNumberToObject(j_ret_info, "height", height); cJSON_AddNumberToObject(j_ret_info, "quality", quality); cJSON_AddStringToObject(j_ret_info, "format", format); cJSON_AddItemToObject(j_ret, "info", j_ret_info); char *ret_str_unformat = cJSON_PrintUnformatted(j_ret); LOG_PRINT(LOG_DEBUG, "ret_str_unformat: %s", ret_str_unformat); evbuffer_add_printf(req->buffer_out, "%s", ret_str_unformat); cJSON_Delete(j_ret); free(ret_str_unformat); free(format); }
char * joylink_package_ota_upload(JLOtaUpload_t *otaUpload) { if(NULL == otaUpload){ return NULL; } cJSON *root, *data; char *out = NULL; root = cJSON_CreateObject(); if(NULL == root){ goto RET; } data = cJSON_CreateObject(); if(NULL == data){ cJSON_Delete(root); goto RET; } cJSON_AddStringToObject(root, "cmd", "otastat"); cJSON_AddStringToObject(data, "feedid", otaUpload->feedid); cJSON_AddStringToObject(data, "productuuid", otaUpload->productuuid); cJSON_AddNumberToObject(data, "status", otaUpload->status); cJSON_AddStringToObject(data, "status_desc", otaUpload->status_desc); cJSON_AddNumberToObject(data, "progress", otaUpload->progress); cJSON_AddItemToObject(root,"data", data); out=cJSON_Print(root); cJSON_Delete(root); RET: return out; }
PJSON SAParser_CreateAgentPacketToJSON(susiaccess_packet_body_t const * pPacket) { /* {"susiCommData":{"commCmd":271,"requestID":103, XXX}} */ cJSON *pReqInfoHead = NULL; cJSON* root = NULL; long tick = 0; if(!pPacket) return NULL; if(pPacket->content) root = cJSON_Parse(pPacket->content); else root = cJSON_CreateObject(); if(!root) return NULL; pReqInfoHead = cJSON_CreateObject(); cJSON_AddItemToObject(pReqInfoHead, BASICINFO_BODY_STRUCT, root); cJSON_AddNumberToObject(root, BASICINFO_CMDTYPE, pPacket->cmd); cJSON_AddNumberToObject(root, BASICINFO_REQID, pPacket->requestID); cJSON_AddStringToObject(root, BASICINFO_AGENTID, pPacket->devId); cJSON_AddStringToObject(root, BASICINFO_HANDLERNAME, pPacket->handlerName); //cJSON_AddNumberToObject(root, BASICINFO_CATALOG, pPacket->catalogID); tick = (long) time((time_t *) NULL); cJSON_AddNumberToObject(root, BASICINFO_TIMESTAMP, tick); return pReqInfoHead; }
static void api_response(int res, int id_value ,const linkage_base_st *link_base) { cJSON *root; char *json_out; root=cJSON_CreateObject(); cJSON_AddNumberToObject(root, FIELD_STATUS, res); if(res >=0){ cJSON_AddNumberToObject(root, FIELD_LID, id_value); if(link_base !=NULL) { cJSON_AddStringToObject(root, FIELD_LNKNAME, link_base->lnkname); cJSON_AddStringToObject(root, FIELD_TRGIEEE, link_base->trgieee); cJSON_AddStringToObject(root, FIELD_TRGEP, link_base->trgep); cJSON_AddStringToObject(root, FIELD_TRGCND, link_base->trgcnd); cJSON_AddStringToObject(root, FIELD_LNKACT, link_base->lnkact); cJSON_AddNumberToObject(root, FIELD_ENABLE, link_base->enable); } } json_out=cJSON_Print(root); cJSON_Delete(root); fprintf(cgiOut,"%s\n", json_out); free(json_out); }
bool four_isValid(int intX, int intY) { bool boolReturn = false; { cJSON* objectOut = cJSON_CreateObject(); cJSON* objectIn = NULL; { cJSON_AddStringToObject(objectOut, "strFunction", "four_isValid"); cJSON_AddNumberToObject(objectOut, "intX", intX); cJSON_AddNumberToObject(objectOut, "intY", intY); } { zeromq_send(objectOut); objectIn = zeromq_recv(); } { boolReturn = cJSON_GetObjectItem(objectIn, "boolReturn")->valueint; } cJSON_Delete(objectOut); cJSON_Delete(objectIn); } return boolReturn; }
void four_moveAlphabeta(char* charOut, int intMaxdepth, int intDuration) { { cJSON* objectOut = cJSON_CreateObject(); cJSON* objectIn = NULL; { cJSON_AddStringToObject(objectOut, "strFunction", "four_moveAlphabeta"); cJSON_AddNumberToObject(objectOut, "intMaxdepth", intMaxdepth); cJSON_AddNumberToObject(objectOut, "intDuration", intDuration); } { zeromq_send(objectOut); objectIn = zeromq_recv(); } { strcpy(charOut, cJSON_GetObjectItem(objectIn, "strOut")->valuestring); } cJSON_Delete(objectOut); cJSON_Delete(objectIn); } }
int http_wifi_api_get_status(http_connection *c) { CGI_WIFI_DBG("wifi get_status\n"); //wait for whole body if(c->state <HTTPD_STATE_BODY_END) { return HTTPD_CGI_MORE; } api_cgi_status * status = c->cgi.data; //first call, send headers if(status==NULL) { status = (api_cgi_status*)os_malloc(sizeof(api_cgi_status)); status->state=1; c->cgi.data=status; http_SET_HEADER(c,HTTP_CONTENT_TYPE,JSON_CONTENT_TYPE); http_response_OK(c); return HTTPD_CGI_MORE; } else if(status->state==1) { wifi_station_get_config(&wifi_status.station_config); uint8_t c_status = wifi_station_get_connect_status(); //return JSON cJSON *root = cJSON_CreateObject(); cJSON_AddBoolToObject(root,"scanning",wifi_status.scanning); cJSON_AddStringToObject(root,"ssid",(const char *)wifi_status.station_config.ssid); cJSON_AddNumberToObject(root,"mode",wifi_get_opmode()); cJSON_AddNumberToObject(root,"station_status",c_status); //got ip if(c_status==5) { struct ip_info ip; wifi_get_ip_info(0x0,&ip); char *ip_str = (char*)ipaddr_ntoa(&ip.ip); cJSON_AddStringToObject(root,"ip",ip_str); } else { cJSON_AddStringToObject(root,"ip",""); } http_write_json(c,root); cJSON_Delete(root); status->state=99; return HTTPD_CGI_MORE; } else { os_free(c->cgi.data); return HTTPD_CGI_DONE; } }
static void _add_hdi(void *key, T_KRHDI *krhdi, cJSON *hdis) { cJSON *hdi = cJSON_CreateObject(); cJSON_AddNumberToObject(hdi, "id", krhdi->lHDIId); cJSON_AddNumberToObject(hdi, "valueind", krhdi->eValueInd); _set_cjson_field(krhdi->eValueType, "value", &krhdi->uValue, hdi); cJSON_AddItemToArray(hdis, hdi); }
void _add_rule(T_KRRule *krrule, cJSON *rules) { cJSON *rule = cJSON_CreateObject(); cJSON_AddNumberToObject(rule, "id", krrule->lRuleId); cJSON_AddStringToObject(rule, "name", krrule->ptShmRuleDef->caRuleName); cJSON_AddNumberToObject(rule, "result", krrule->ptRuleCalc->result_value.b); cJSON_AddItemToArray(rules, rule); }
/* *Add location feed to cosm. Return EINA_TRUE if success. */ Eina_Bool cosm_location_feed_add(Location *location) { Ecore_Con_Url *cosm_url = NULL; char *s; //Don't add cosm url feed if already there... if(!location || (location_cosm_feedid_get(location) != 0) || !edams_settings_cosm_apikey_get()) return EINA_FALSE; debug(MSG_COSM, _("Creating cosm feed '%s'..."), location_name_get(location)); ecore_event_handler_add(ECORE_CON_EVENT_URL_COMPLETE, (Ecore_Event_Handler_Cb)_url_feed_add_complete_cb,NULL); cosm_url = ecore_con_url_custom_new("http://api.cosm.com/v2/feeds", "POST"); if (!cosm_url) { debug(MSG_COSM, _("Can't create Ecore_Con_Url object")); return EINA_FALSE; } //ecore_con_url_verbose_set(cosm_url, edams_settings_debug_get()); ecore_con_url_additional_header_add(cosm_url, "X-ApiKey", edams_settings_cosm_apikey_get());; ecore_con_url_data_set(cosm_url, (void*)location); char *locale = setlocale(LC_NUMERIC, NULL); setlocale(LC_NUMERIC, "POSIX"); cJSON *root,*fmt; root=cJSON_CreateObject(); asprintf(&s, "%s sensor.basic", location_name_get(location)); cJSON_AddItemToObject(root, "title", cJSON_CreateString(s)); FREE(s); cJSON_AddItemToObject(root, "version", cJSON_CreateString("1.0.0")); cJSON_AddItemToObject(root, "location", fmt=cJSON_CreateObject()); cJSON_AddStringToObject(fmt, "name", location_name_get(location)); //cJSON_AddStringToObject(fmt, "description", location_description_get(location)); cJSON_AddStringToObject(fmt, "disposition", "fixed"); cJSON_AddStringToObject(fmt, "exposure", "indoor"); cJSON_AddStringToObject(fmt, "domain", "physical"); if(location_latitude_get(location) != -1) cJSON_AddNumberToObject(fmt, "lat", location_latitude_get(location)); if(location_longitude_get(location) != -1) cJSON_AddNumberToObject(fmt, "lon", location_longitude_get(location)); s = cJSON_PrintUnformatted(root); cJSON_Delete(root); setlocale(LC_NUMERIC, locale); if(!ecore_con_url_post(cosm_url, (void*)s, strlen(s), NULL)) { debug(MSG_COSM, _("Can't realize url PUT request")); return EINA_FALSE; } FREE(s); return EINA_TRUE; }/*cosm_location_feed_add*/
App42Exception::App42Exception(std::string exception, int _httpErrorCode, int _appErrorCode) { httpErrorCode = _httpErrorCode; appErrorCode = _appErrorCode; exceptionString = cJSON_CreateObject(); cJSON_AddStringToObject(exceptionString, "reason", exception.c_str()); cJSON_AddNumberToObject(exceptionString, "httpErrorCode", _httpErrorCode); cJSON_AddNumberToObject(exceptionString, "appErrorCode", _appErrorCode); }
static void cjson_add_number_should_fail_with_null_pointers(void) { cJSON *root = cJSON_CreateObject(); TEST_ASSERT_NULL(cJSON_AddNumberToObject(NULL, "number", 42)); TEST_ASSERT_NULL(cJSON_AddNumberToObject(root, NULL, 42)); cJSON_Delete(root); }
static void _add_rule(T_KRRule *krrule, cJSON *rules) { cJSON *rule = cJSON_CreateObject(); cJSON_AddNumberToObject(rule, "id", krrule->lRuleId); cJSON_AddStringToObject(rule, "name", krrule->ptParamRuleDef->caRuleName); U_KRValue *value = kr_calc_value(krrule->ptRuleCalc); cJSON_AddNumberToObject(rule, "result", value->b); cJSON_AddItemToArray(rules, rule); }
/** *TASK:based on the gesture, create the command and control the lamps *stateType:ON_OFF_TYPE, BRI_UP_TYPE, BRI_DOWN_TYPE, HUE_UP_TYPE, HUE_DOWN_TYPE *target:the number of lamp, start from 0 */ bool createCommand(int stateType, int target) { cJSON * pJsonRoot = NULL; pJsonRoot = cJSON_CreateObject(); if(NULL == pJsonRoot) { //error happend here printf("error when create json"); return false; } switch(stateType) { case ON_TYPE: { onValue[target - 1] = (onValue[target - 1] == true ? false : true); cJSON_AddBoolToObject(pJsonRoot, ON_STRING, onValue[target - 1]); break; } case BRI_UP_TYPE: { int value = (briValue[target - 1] + BRI_VALUE_UP) > 254 ? 254 : (briValue[target - 1] + BRI_VALUE_UP < 0 ? 0 : briValue[target - 1] + BRI_VALUE_UP); briValue[target - 1] = value; cJSON_AddNumberToObject(pJsonRoot, BRI_STRING, value); break; } case BRI_DOWN_TYPE: { int value = (briValue[target - 1] + BRI_VALUE_DOWN) > 254 ? 254 : (briValue[target - 1] + BRI_VALUE_DOWN < 0 ? 0 : briValue[target - 1] + BRI_VALUE_DOWN); briValue[target - 1] = value; cJSON_AddNumberToObject(pJsonRoot, BRI_STRING, value); break; } case HUE_UP_TYPE: { int value = (hueValue[target - 1] + HUE_VALUE_UP); value = value < 0 ? 65535 + value : value % 65535; hueValue[target - 1] = value; cJSON_AddNumberToObject(pJsonRoot, HUE_STRING, value); break; } case HUE_DOWN_TYPE: { int value = (hueValue[target - 1] + HUE_VALUE_DOWN); value = value < 0 ? 65535 + value : value % 65535; hueValue[target - 1] = value; cJSON_AddNumberToObject(pJsonRoot, HUE_STRING, value); break; } } printf("%s",cJSON_Print(pJsonRoot)); setLightState(target, cJSON_Print(pJsonRoot)); cJSON_Delete(pJsonRoot); }