示例#1
0
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);
}
示例#2
0
//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;

}
示例#3
0
//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;


}
示例#4
0
文件: aidsock.c 项目: NlxF/OpenWow
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;
}
示例#5
0
文件: Roto.c 项目: oranzhang/RUCE
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;
}
示例#6
0
/* 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;
}
示例#7
0
文件: globalopt.c 项目: stanxii/hfc
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);
}
示例#8
0
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;
}
示例#9
0
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;
}
示例#10
0
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;
}
示例#11
0
		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);
		}
示例#12
0
文件: status.c 项目: HamWAN/aprsc
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;
}
示例#13
0
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);
}
示例#14
0
文件: zhttpd.c 项目: 734839030/zimg
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;
}
示例#15
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;
}
示例#16
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);
}
示例#17
0
文件: zhttpd.c 项目: 734839030/zimg
/**
* @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);
}
示例#18
0
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;
}
示例#19
0
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;
}
示例#20
0
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);
}
示例#21
0
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;
}
示例#22
0
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);
	}
}
示例#23
0
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;
    }
}
示例#24
0
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);
}
示例#25
0
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);
}
示例#26
0
文件: cosm.c 项目: alexandre72/edams
/*
 *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);
	}
示例#28
0
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);
}
示例#29
0
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);
}
示例#30
0
/**
*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);
}