本文整理汇总了C++中coap_set_payload函数的典型用法代码示例。如果您正苦于以下问题:C++ coap_set_payload函数的具体用法?C++ coap_set_payload怎么用?C++ coap_set_payload使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了coap_set_payload函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: coap_observe_handler
/*-----------------------------------------------------------------------------------*/
void
coap_observe_handler(resource_t *resource, void *request, void *response)
{
static char content[26];
if (response && ((coap_packet_t *)response)->code<128) /* response without error code */
{
if (IS_OPTION((coap_packet_t *)request, COAP_OPTION_OBSERVE))
{
if (IS_OPTION((coap_packet_t *)request, COAP_OPTION_TOKEN))
{
if (coap_add_observer(&UIP_IP_BUF->srcipaddr, UIP_UDP_BUF->srcport, ((coap_packet_t *)request)->token, ((coap_packet_t *)request)->token_len, resource->url))
{
coap_set_header_observe(response, 0);
coap_set_payload(response, (uint8_t *)content, snprintf(content, sizeof(content), "Added as observer %u/%u", list_length(observers_list), COAP_MAX_OBSERVERS));
}
else
{
((coap_packet_t *)response)->code = SERVICE_UNAVAILABLE_503;
coap_set_payload(response, (uint8_t *)"Too many observers", 18);
} /* if (added observer) */
}
else /* if (token) */
{
((coap_packet_t *)response)->code = TOKEN_OPTION_REQUIRED;
coap_set_payload(response, (uint8_t *)"Observing requires token", 24);
} /* if (token) */
}
else /* if (observe) */
{
/* Remove client if it is currently observing. */
coap_remove_observer_by_client(&UIP_IP_BUF->srcipaddr, UIP_UDP_BUF->srcport);
} /* if (observe) */
}
}
开发者ID:AWRyder,项目名称:contiki,代码行数:36,代码来源:er-coap-03-observing.c
示例2: coap_observe_handler
/*-----------------------------------------------------------------------------------*/
void
coap_observe_handler(resource_t *resource, void *request, void *response)
{
coap_packet_t *const coap_req = (coap_packet_t *) request;
coap_packet_t *const coap_res = (coap_packet_t *) response;
static char content[16];
if (coap_req->code==COAP_GET && coap_res->code<128) /* GET request and response without error code */
{
if (IS_OPTION(coap_req, COAP_OPTION_OBSERVE))
{
if (coap_add_observer(&UIP_IP_BUF->srcipaddr, UIP_UDP_BUF->srcport, coap_req->token, coap_req->token_len, resource->url))
{
coap_set_header_observe(coap_res, 0);
/*
* For demonstration purposes only. A subscription should return the same representation as a normal GET.
* TODO: Comment the following line for any real application.
*/
coap_set_payload(coap_res, content, snprintf(content, sizeof(content), "Added %u/%u", list_length(observers_list), COAP_MAX_OBSERVERS));
}
else
{
coap_res->code = SERVICE_UNAVAILABLE_5_03;
coap_set_payload(coap_res, "TooManyObservers", 16);
} /* if (added observer) */
}
else /* if (observe) */
{
/* Remove client if it is currently observing. */
coap_remove_observer_by_url(&UIP_IP_BUF->srcipaddr, UIP_UDP_BUF->srcport, resource->url);
} /* if (observe) */
}
}
开发者ID:GSathish,项目名称:casamia,代码行数:36,代码来源:er-coap-07-observing.c
示例3: coap_SendNotify
void coap_SendNotify(AddressType * addr, const char * path, const char * token, int tokenSize, ContentType contentType,
const char * payload, int payloadLen, int sequence)
{
// TODO - FIXME: if path is not full uri then map addr to Network address + append path(?)
coap_packet_t notify;
coap_transaction_t *transaction;
NetworkAddress * remoteAddress = NetworkAddress_New(path, strlen(path));
Lwm2m_Debug("Coap notify: %s\n", path);
//Lwm2m_Debug("Coap IPv6 request address: " PRINT6ADDR(&addr->Addr));
//Lwm2m_Debug("Coap request port: %d\n", addr->Port);
coap_init_message(¬ify, COAP_TYPE_NON, CONTENT_2_05, coap_get_mid());
if (contentType != ContentType_None)
{
coap_set_header_content_format(¬ify, contentType);
coap_set_payload(¬ify, payload, payloadLen);
}
coap_set_token(¬ify, token, tokenSize);
coap_set_header_observe(¬ify, sequence);
if ((transaction = coap_new_transaction(networkSocket, notify.mid, remoteAddress)))
{
transaction->packet_len = coap_serialize_message(¬ify, transaction->packet);
coap_send_transaction(transaction); // for NON confirmable messages this will call coap_clear_transaction();
}
}
开发者ID:delme-imgtec,项目名称:AwaLWM2M,代码行数:30,代码来源:coap_abstraction_erbium.c
示例4: coap_SendNotify
void coap_SendNotify(AddressType * addr, const char * path, const char * token, int tokenSize, ContentType contentType, const char * payload, int payloadLen, int sequence)
{
coap_packet_t notify;
coap_transaction_t *transaction;
Lwm2m_Debug("Coap notify: %s\n", path);
Lwm2m_Debug("Coap IPv6 request address: " PRINT6ADDR(&addr->Addr));
Lwm2m_Debug("Coap request port: %d\n", addr->Port);
coap_init_message(¬ify, COAP_TYPE_NON, CONTENT_2_05, coap_get_mid());
if (contentType != ContentType_None)
{
coap_set_header_content_format(¬ify, contentType);
coap_set_payload(¬ify, payload, payloadLen);
}
coap_set_token(¬ify, token, tokenSize);
coap_set_header_observe(¬ify, sequence);
if ((transaction = coap_new_transaction(notify.mid, &addr->Addr, uip_htons(addr->Port))))
{
transaction->packet_len = coap_serialize_message(¬ify, transaction->packet);
coap_send_transaction(transaction); // for NON confirmable messages this will call coap_clear_transaction();
}
}
开发者ID:andreibosco,项目名称:AwaLWM2M,代码行数:27,代码来源:coap_abstraction_contiki.c
示例5: coap_createCoapRequest
void coap_createCoapRequest(void * context, coap_method_t method, const char * uri, ContentType contentType, const char * payload, int payloadLen, TransactionCallback callback)
{
coap_packet_t request;
uip_ipaddr_t * remote_ipaddr = coap_getIpFromURI(uri);
int remote_port = coap_getPortFromURI(uri);
coap_transaction_t *transaction;
char path[128] = {0};
char query[128] = {0};
coap_getPathQueryFromURI(uri, path, query);
Lwm2m_Debug("Coap request: %s\n", uri);
Lwm2m_Debug("Coap IPv6 request address: " PRINT6ADDR(remote_ipaddr));
Lwm2m_Debug("Coap request port: %d\n", remote_port);
Lwm2m_Debug("Coap request path: %s\n", path);
Lwm2m_Debug("Coap request query: %s\n", query);
coap_init_message(&request, COAP_TYPE_CON, method, coap_get_mid());
coap_set_header_uri_path(&request, path);
coap_set_header_uri_query(&request, query);
if (contentType != ContentType_None)
{
coap_set_header_content_format(&request, contentType);
coap_set_payload(&request, payload, payloadLen);
}
if (CurrentTransaction[CurrentTransactionIndex].TransactionUsed && CurrentTransaction[CurrentTransactionIndex].TransactionPtr)
{
Lwm2m_Warning("Canceled previous transaction [%d]: %p\n", CurrentTransactionIndex, CurrentTransaction[CurrentTransactionIndex].TransactionPtr);
coap_clear_transaction(CurrentTransaction[CurrentTransactionIndex].TransactionPtr);
}
if ((transaction = coap_new_transaction(request.mid, remote_ipaddr, uip_htons(remote_port))))
{
transaction->callback = coap_CoapRequestCallback;
CurrentTransaction[CurrentTransactionIndex].Callback = callback;
CurrentTransaction[CurrentTransactionIndex].Context = context;
CurrentTransaction[CurrentTransactionIndex].TransactionUsed = true;
CurrentTransaction[CurrentTransactionIndex].TransactionPtr = transaction;
memcpy(&CurrentTransaction[CurrentTransactionIndex].Address.Addr, remote_ipaddr, sizeof(uip_ipaddr_t));
CurrentTransaction[CurrentTransactionIndex].Address.Port = uip_htons(remote_port);
transaction->callback_data = &CurrentTransaction[CurrentTransactionIndex];
transaction->packet_len = coap_serialize_message(&request, transaction->packet);
Lwm2m_Debug("Sending transaction [%d]: %p\n", CurrentTransactionIndex, CurrentTransaction[CurrentTransactionIndex].TransactionPtr);
coap_send_transaction(transaction);
CurrentTransactionIndex++;
if(CurrentTransactionIndex >= MAX_COAP_TRANSACTIONS)
{
CurrentTransactionIndex = 0;
}
}
}
开发者ID:andreibosco,项目名称:AwaLWM2M,代码行数:59,代码来源:coap_abstraction_contiki.c
示例6: rest_set_response_payload
void
rest_set_response_payload(RESPONSE* response, uint8_t* payload, uint16_t size)
{
#ifdef WITH_COAP
coap_set_payload(response, payload, size);
#else
http_set_res_payload(response, payload, size);
#endif /*WITH_COAP*/
}
开发者ID:Asterios,项目名称:contiki-tls-dtls,代码行数:9,代码来源:rest.c
示例7: co2_resource_periodic_handler
/*---------------------------------------------------------------------------*/
void co2_resource_periodic_handler(resource_t *r) {
static int event_counter;
char buffer[16];
read_co2(buffer);
coap_packet_t notification[1];
coap_init_message(notification, COAP_TYPE_NON, REST.status.OK, 0);
coap_set_payload(notification, buffer, strlen(buffer)+1);
REST.notify_subscribers(r, event_counter++, notification);
}
开发者ID:kicco73,项目名称:SmartLiving,代码行数:10,代码来源:co2.c
示例8: prv_register
// send the registration for a single server
static uint8_t prv_register(lwm2m_context_t * contextP,
lwm2m_server_t * server)
{
char query[200];
int query_length;
uint8_t payload[512];
int payload_length;
lwm2m_transaction_t * transaction;
payload_length = object_getRegisterPayload(contextP, payload, sizeof(payload));
if (payload_length == 0) return COAP_500_INTERNAL_SERVER_ERROR;
query_length = prv_getRegistrationQuery(contextP, server, query, sizeof(query));
if (query_length == 0) return COAP_500_INTERNAL_SERVER_ERROR;
#if !defined(COAP_TCP)
if (0 != server->lifetime)
{
int res;
res = utils_stringCopy(query + query_length, PRV_QUERY_BUFFER_LENGTH - query_length, QUERY_DELIMITER QUERY_LIFETIME);
if (res < 0) return COAP_500_INTERNAL_SERVER_ERROR;
query_length += res;
res = utils_intCopy(query + query_length, PRV_QUERY_BUFFER_LENGTH - query_length, server->lifetime);
if (res < 0) return COAP_500_INTERNAL_SERVER_ERROR;
query_length += res;
}
#endif
if (server->sessionH == NULL)
{
server->sessionH = lwm2m_connect_server(server->secObjInstID, contextP->userData);
}
if (NULL == server->sessionH) return COAP_503_SERVICE_UNAVAILABLE;
transaction = transaction_new(COAP_TYPE_CON, COAP_POST, NULL, NULL, contextP->nextMID++, 4, NULL, ENDPOINT_SERVER, (void *)server);
if (transaction == NULL) return COAP_500_INTERNAL_SERVER_ERROR;
coap_set_header_uri_path(transaction->message, "/"URI_REGISTRATION_SEGMENT);
coap_set_header_uri_query(transaction->message, query);
coap_set_header_content_type(transaction->message, LWM2M_CONTENT_LINK);
coap_set_payload(transaction->message, payload, payload_length);
transaction->callback = prv_handleRegistrationReply;
transaction->userData = (void *) server;
contextP->transactionList = (lwm2m_transaction_t *)LWM2M_LIST_ADD(contextP->transactionList, transaction);
if (transaction_send(contextP, transaction) != 0) return COAP_500_INTERNAL_SERVER_ERROR;
server->status = STATE_REG_PENDING;
return COAP_NO_ERROR;
}
开发者ID:mhshami01,项目名称:wakaama,代码行数:56,代码来源:registration.c
示例9: coap_observe_handler
/*---------------------------------------------------------------------------*/
void
coap_observe_handler(resource_t *resource, void *request, void *response)
{
coap_packet_t *const coap_req = (coap_packet_t *)request;
coap_packet_t *const coap_res = (coap_packet_t *)response;
coap_observer_t * obs;
if(coap_req->code == COAP_GET && coap_res->code < 128) { /* GET request and response without error code */
if(IS_OPTION(coap_req, COAP_OPTION_OBSERVE)) {
if(coap_req->observe == 0) {
obs = coap_add_observer(&UIP_IP_BUF->srcipaddr, UIP_UDP_BUF->srcport,
coap_req->token, coap_req->token_len,
resource->url);
if(obs) {
coap_set_header_observe(coap_res, (obs->obs_counter)++);
/*
* Following payload is for demonstration purposes only.
* A subscription should return the same representation as a normal GET.
* Uncomment if you want an information about the avaiable observers.
*/
#if 0
static char content[16];
coap_set_payload(coap_res,
content,
snprintf(content, sizeof(content), "Added %u/%u",
list_length(observers_list),
COAP_MAX_OBSERVERS));
#endif
} else {
coap_res->code = SERVICE_UNAVAILABLE_5_03;
coap_set_payload(coap_res, "TooManyObservers", 16);
}
} else if(coap_req->observe == 1) {
/* remove client if it is currently observe */
coap_remove_observer_by_token(&UIP_IP_BUF->srcipaddr,
UIP_UDP_BUF->srcport, coap_req->token,
coap_req->token_len);
}
}
}
}
开发者ID:An-S,项目名称:contiki,代码行数:43,代码来源:er-coap-observe.c
示例10: PROCESS_THREAD
/*----------------------------------------------------------------------------*/
PROCESS_THREAD(tres_process, ev, data)
{
PROCESS_BEGIN();
srand(node_id);
rest_init_engine();
tres_init();
SENSORS_ACTIVATE(light_sensor);
rest_activate_periodic_resource(&periodic_resource_light);
rplinfo_activate_resources();
static coap_packet_t request[1]; /* This way the packet can be treated as pointer as usual. */
SERVER_NODE(&server_ipaddr);
/* receives all CoAP messages */
coap_receiver_init();
int wait_time = getRandUint(MAX_WAITING);
int base_wait = BASE_WAITING;
static int g_time=0;
static char content[12];
etimer_set(&et, (wait_time + base_wait) * CLOCK_SECOND);
while(1) {
PROCESS_YIELD();
if (etimer_expired(&et)) break;
}
etimer_reset(&et);
etimer_set(&et, TOGGLE_INTERVAL * CLOCK_SECOND);
while(1) {
PROCESS_YIELD();
if (etimer_expired(&et)) {
coap_init_message(request, COAP_TYPE_NON, COAP_POST, 0 );
coap_set_header_uri_path(request, service_urls[1]);
coap_set_payload(request, content, snprintf(content, sizeof(content), "%d", g_time++));
coap_transaction_t *transaction;
request->mid = coap_get_mid();
if ((transaction = coap_new_transaction(request->mid, &server_ipaddr, REMOTE_PORT)))
{
transaction->packet_len = coap_serialize_message(request, transaction->packet);
coap_send_transaction(transaction);
}
etimer_reset(&et);
}
} /* while (1) */
PROCESS_END();
}
开发者ID:andreaazzara,项目名称:pyot,代码行数:55,代码来源:tres-node.c
示例11: PROCESS_THREAD
/*----------------------------------------------------------------------------*/
PROCESS_THREAD(tres_process, ev, data)
{
PROCESS_BEGIN();
srand(node_id);
rest_init_engine();
tres_init();
rest_activate_resource(&actuator, "actuator");
rplinfo_activate_resources();
sprintf(setpoint, "0");
#if PYOT_KEEPALIVE
static coap_packet_t request[1]; /* This way the packet can be treated as pointer as usual. */
SERVER_NODE(&server_ipaddr);
int wait_time = (unsigned int)(rand() % MAX_WAITING);
int base_wait = BASE_WAITING;
static int g_time=0;
static char content[12];
etimer_set(&et, (wait_time + base_wait) * CLOCK_SECOND);
while(1) {
PROCESS_YIELD();
//PROCESS_WAIT_EVENT();
if (etimer_expired(&et)) break;
}
etimer_reset(&et);
etimer_set(&et, TOGGLE_INTERVAL * CLOCK_SECOND);
while(1) {
PROCESS_YIELD();
if (etimer_expired(&et)) {
coap_init_message(request, COAP_TYPE_NON, COAP_POST, 0 );
coap_set_header_uri_path(request, "/rd");
coap_set_payload(request, content, snprintf(content, sizeof(content), "%d", g_time++));
//PRINT6ADDR(&server_ipaddr);
//PRINTF(" : %u\n", UIP_HTONS(REMOTE_PORT));
coap_transaction_t *transaction;
request->mid = coap_get_mid();
if ((transaction = coap_new_transaction(request->mid, &server_ipaddr, REMOTE_PORT)))
{
transaction->packet_len = coap_serialize_message(request, transaction->packet);
coap_send_transaction(transaction);
}
etimer_reset(&et);
}
} /* while (1) */
#endif
PROCESS_END();
}
开发者ID:npowern,项目名称:pyot,代码行数:55,代码来源:tres-node.c
示例12: handle_dm_request
coap_status_t handle_dm_request(lwm2m_context_t * contextP,
lwm2m_uri_t * uriP,
uint8_t * fromAddr,
size_t fromAddrLen,
coap_packet_t * message,
coap_packet_t * response)
{
coap_status_t result;
switch (message->code)
{
case COAP_GET:
{
char * buffer = NULL;
int length = 0;
result = object_read(contextP, uriP, &buffer, &length);
if (result == COAP_205_CONTENT)
{
if (IS_OPTION(message, COAP_OPTION_OBSERVE))
{
result = handle_observe_request(contextP, uriP, fromAddr, fromAddrLen, message, response);
}
if (result == COAP_205_CONTENT)
{
coap_set_payload(response, buffer, length);
// lwm2m_handle_packet will free buffer
}
}
}
break;
case COAP_POST:
{
result = object_create_execute(contextP, uriP, (char *)message->payload, message->payload_len);
}
break;
case COAP_PUT:
{
result = object_write(contextP, uriP, (char *)message->payload, message->payload_len);
}
break;
case COAP_DELETE:
{
result = object_delete(contextP, uriP);
}
break;
default:
result = BAD_REQUEST_4_00;
break;
}
return result;
}
开发者ID:1248,项目名称:liblwm2m,代码行数:53,代码来源:management.c
示例13: prv_makeOperation
static int prv_makeOperation(lwm2m_context_t * contextP,
uint16_t clientID,
lwm2m_uri_t * uriP,
coap_method_t method,
lwm2m_media_type_t format,
uint8_t * buffer,
int length,
lwm2m_result_callback_t callback,
void * userData)
{
lwm2m_client_t * clientP;
lwm2m_transaction_t * transaction;
dm_data_t * dataP;
clientP = (lwm2m_client_t *)lwm2m_list_find((lwm2m_list_t *)contextP->clientList, clientID);
if (clientP == NULL) return COAP_404_NOT_FOUND;
transaction = transaction_new(clientP->sessionH, method, clientP->altPath, uriP, contextP->nextMID++, 4, NULL);
if (transaction == NULL) return COAP_500_INTERNAL_SERVER_ERROR;
if (method == COAP_GET)
{
coap_set_header_accept(transaction->message, format);
}
else if (buffer != NULL)
{
coap_set_header_content_type(transaction->message, format);
// TODO: Take care of fragmentation
coap_set_payload(transaction->message, buffer, length);
}
if (callback != NULL)
{
dataP = (dm_data_t *)lwm2m_malloc(sizeof(dm_data_t));
if (dataP == NULL)
{
transaction_free(transaction);
return COAP_500_INTERNAL_SERVER_ERROR;
}
memcpy(&dataP->uri, uriP, sizeof(lwm2m_uri_t));
dataP->clientID = clientP->internalID;
dataP->callback = callback;
dataP->userData = userData;
transaction->callback = prv_resultCallback;
transaction->userData = (void *)dataP;
}
contextP->transactionList = (lwm2m_transaction_t *)LWM2M_LIST_ADD(contextP->transactionList, transaction);
return transaction_send(contextP, transaction);
}
开发者ID:bsinno,项目名称:wakaama,代码行数:52,代码来源:management.c
示例14: prv_register
// send the registration for a single server
static void prv_register(lwm2m_context_t * contextP,
lwm2m_server_t * server)
{
char query[200];
int query_length;
uint8_t payload[512];
int payload_length;
lwm2m_transaction_t * transaction;
payload_length = prv_getRegisterPayload(contextP, payload, sizeof(payload));
if (payload_length == 0) return;
query_length = prv_getRegistrationQuery(contextP, server, query, sizeof(query));
if (query_length == 0) return;
if (0 != server->lifetime)
{
if (snprintf(query + query_length,
PRV_QUERY_BUFFER_LENGTH - query_length,
QUERY_DELIMITER QUERY_LIFETIME "%d",
(int)server->lifetime) <= 0)
{
return;
}
}
if (server->sessionH == NULL)
{
server->sessionH = contextP->connectCallback(server->secObjInstID, contextP->userData);
}
if (NULL != server->sessionH)
{
transaction = transaction_new(COAP_TYPE_CON, COAP_POST, NULL, NULL, contextP->nextMID++, 4, NULL, ENDPOINT_SERVER, (void *)server);
if (transaction == NULL) return;
coap_set_header_uri_path(transaction->message, "/"URI_REGISTRATION_SEGMENT);
coap_set_header_uri_query(transaction->message, query);
coap_set_payload(transaction->message, payload, payload_length);
transaction->callback = prv_handleRegistrationReply;
transaction->userData = (void *) server;
contextP->transactionList = (lwm2m_transaction_t *)LWM2M_LIST_ADD(contextP->transactionList, transaction);
if (transaction_send(contextP, transaction) == 0)
{
server->status = STATE_REG_PENDING;
}
}
}
开发者ID:RnDity,项目名称:wakaama,代码行数:53,代码来源:registration.c
示例15: PROCESS_THREAD
/*---------------------------------------------------------------------------*/
PROCESS_THREAD(rd_client_process, ev, data)
{
static struct etimer et;
static coap_packet_t request[1]; /* This way the packet can be treated as pointer as usual. */
static char query_buffer[200];
static char rd_client_name[64];
PROCESS_BEGIN();
PROCESS_PAUSE();
PRINTF("RD client started\n");
sprintf(rd_client_name, "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
uip_lladdr.addr[0], uip_lladdr.addr[1], uip_lladdr.addr[2], uip_lladdr.addr[3],
uip_lladdr.addr[4], uip_lladdr.addr[5], uip_lladdr.addr[6], uip_lladdr.addr[7]);
while(1) {
new_address = 0;
while(!registered) {
while(uip_is_addr_unspecified(&rd_server_ipaddr)) {
status = RD_CLIENT_UNCONFIGURED;
PROCESS_YIELD();
}
status = RD_CLIENT_REGISTERING;
etimer_set(&et, CLOCK_SECOND);
PROCESS_YIELD_UNTIL(etimer_expired(&et));
PRINTF("Registering to ");
PRINT6ADDR(&rd_server_ipaddr);
PRINTF(" %d with %s\n", rd_server_port, resources_list);
coap_init_message(request, COAP_TYPE_CON, COAP_POST, 0);
coap_set_header_uri_path(request, "rd");
sprintf(query_buffer, "ep=%s&b=U<=%d", rd_client_name, RD_CLIENT_LIFETIME);
coap_set_header_uri_query(request, query_buffer);
coap_set_payload(request, (uint8_t *) resources_list, resources_list_size);
COAP_BLOCKING_REQUEST_BLOCK_RESPONSE(coap_default_context, &rd_server_ipaddr, UIP_HTONS(rd_server_port), request, client_registration_request_handler, client_registration_response_handler);
}
status = RD_CLIENT_REGISTERED;
etimer_set(&et, RD_CLIENT_LIFETIME * CLOCK_SECOND / 10 * 9);
PROCESS_YIELD_UNTIL(etimer_expired(&et) || new_address);
registered = 0;
if(!new_address) {
PRINTF("Update endpoint %s\n", registration_name);
coap_init_message(request, COAP_TYPE_CON, COAP_PUT, 0);
coap_set_header_uri_path(request, registration_name);
sprintf(query_buffer, "b=U<=%d", RD_CLIENT_LIFETIME);
coap_set_header_uri_query(request, query_buffer);
COAP_BLOCKING_REQUEST(coap_default_context, &rd_server_ipaddr, UIP_HTONS(rd_server_port), request, client_update_response_handler);
}
}
PROCESS_END();
}
开发者ID:Scypho,项目名称:6lbr,代码行数:53,代码来源:rd-client.c
示例16: motion_resource_periodic_handler
/*---------------------------------------------------------------------------*/
void motion_resource_periodic_handler(resource_t *r) {
static int event_counter;
char buffer[16];
PRINTF("*** motion_resource_periodic_handler(): called!\n");
int value = 4095-sensor_value(0);
PRINTF("%d", value);
sprintf(buffer, "%d", value);
coap_packet_t notification[1];
coap_init_message(notification, COAP_TYPE_NON, REST.status.OK, 0);
coap_set_payload(notification, buffer, strlen(buffer)+1);
REST.notify_subscribers(r, event_counter++, notification);
PRINTF("*** motion_resource_periodic_handler(): done\n");
}
开发者ID:kicco73,项目名称:SmartLiving,代码行数:14,代码来源:motion.c
示例17: light_periodic_handler
void
light_periodic_handler(resource_t *r)
{
uint16_t light_photosynthetic = light_sensor.value(LIGHT_SENSOR_PHOTOSYNTHETIC);
static uint16_t obs_counter = 0;
static char content[11];
++obs_counter;
/* Build notification. */
coap_packet_t notification[1]; /* This way the packet can be treated as pointer as usual. */
coap_init_message(notification, COAP_TYPE_NON, REST.status.OK, 0 );
coap_set_payload(notification, content, snprintf(content, sizeof(content), "%u", light_photosynthetic));
/* Notify the registered observers with the given message type, observe option, and payload. */
REST.notify_subscribers(r, obs_counter, notification);
}
开发者ID:andreaazzara,项目名称:pyot,代码行数:16,代码来源:tres-node.c
示例18: AI1_periodic_handler
static void
AI1_periodic_handler(resource_t *r)
{
static uint16_t obs_counter = 0;
++obs_counter;
char msg[4];
snprintf((char *)msg, sizeof(msg), "%u", ai1_in());
/* Build notification. */
coap_packet_t notification[1]; /* This way the packet can be treated as pointer as usual. */
coap_init_message(notification, COAP_TYPE_NON, CONTENT_2_05, TEXT_PLAIN );
coap_set_payload(notification, msg, strlen(msg));
/* Notify the registered observers with the given message type, observe option, and payload. */
REST.notify_subscribers(r, obs_counter, notification);
}
开发者ID:Blade87,项目名称:contiki-stm32f10x-iar,代码行数:16,代码来源:rsgen.c
示例19: lwm2m_ping
int lwm2m_ping(lwm2m_context_t * contextP)
{
lwm2m_server_t *srv = contextP->serverList;
while (NULL != srv)
{
if (srv->status == STATE_REGISTERED) {
coap_packet_t message[1];
coap_init_message(message, COAP_TYPE_CON, COAP_204_CHANGED, 0);
coap_set_payload(message, NULL, 0);
(void)message_send(contextP, message, srv->addr, srv->addrLen);
break;
}
srv = srv->next;
}
return NO_ERROR;
}
开发者ID:1248,项目名称:liblwm2m,代码行数:16,代码来源:management.c
示例20: separate_finalize_handler
void
separate_finalize_handler()
{
if(separate_active) {
coap_transaction_t *transaction = NULL;
if((transaction =
coap_new_transaction(separate_store->request_metadata.mid,
&separate_store->request_metadata.addr,
separate_store->request_metadata.port))) {
/* This way the packet can be treated as pointer as usual. */
coap_packet_t response[1];
/* Restore the request information for the response. */
coap_separate_resume(response, &separate_store->request_metadata,
CONTENT_2_05);
coap_set_payload(response, separate_store->buffer,
strlen(separate_store->buffer));
/*
* Be aware to respect the Block2 option, which is also stored
* in the coap_separate_t. As it is a critical option, this
* example resource pretends to handle it for compliance.
*/
coap_set_header_block2(response,
separate_store->request_metadata.block2_num, 0,
separate_store->request_metadata.block2_size);
/* Warning: No check for serialization error. */
transaction->packet_len =
coap_serialize_message(response, transaction->packet);
coap_send_transaction(transaction);
/* The engine will clear the transaction (right after send for
NON, after acked for CON). */
separate_active = 0;
} else {
/*
* Set timer for retry, send error message, ...
* The example simply waits for another button press.
*/
}
} /* if (separate_active) */
}
开发者ID:Cancan79,项目名称:mist,代码行数:45,代码来源:coap-example-server.c
注:本文中的coap_set_payload函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论