2014-07-07 2 views
2

libxively를 사용하여 피드를 업데이트하려고 시도하지만 자주 수행하지 않는 것으로 보입니다. libxively C API가 자주 수행하지 않음

[io/posix/posix_io_layer.c:182 (posix_io_layer_init)] [posix_io_layer_init] 
[io/posix/posix_io_layer.c:191 (posix_io_layer_init)] Creating socket... 
[io/posix/posix_io_layer.c:202 (posix_io_layer_init)] Socket creation [ok] 

가 한 번 또는 두 번 내 Xively 개발자 페이지에 GET 피드를 보여 보았지만, 그렇지 않으면 아무것도 작성 얻을 것 같다 :

{ 
    xi_datastream_t& ds = mXIFeed.datastreams[2]; 
    ::xi_str_copy_untiln(ds.datastream_id, sizeof (ds.datastream_id), "cc-output-power", '\0'); 
    xi_datapoint_t& dp = ds.datapoints[0]; 
    ds.datapoint_count = 1; 
    ::xi_set_value_f32(&dp, mChargeController->outputPower()); 
} 

const xi_context_t* ctx = ::xi_nob_feed_update(mXIContext, &mXIFeed); 

는 다음과 같은 로그 : 나는 기본적인 전화를 가지고있다. 내가 무엇을 봐야하는지에 대한 제안?

블로킹 호출을 사용하여 라이브러리를 다시 작성하려고했는데 (블로킹 호출을 의미하는 것이 아니라면 좋을 것입니다.) 빌드하는 방법을 알 수 없었습니다.

감사합니다.

편집 :

나는 도서관의 동기 버전을 구축 할 수 있었고, 그 작동하는 것 같다. 누구든지 비동기 버전이 작동하는지 확인할 수 있습니까? 간단히 xi_nob_feed_update()를 호출하는 것 이상이 있습니까?

편집 2 :

내가 비동기 예제를 실행 시도하지만 항상받은 데이터가없는 불평으로 내가 뭔가를 잘못하고 있어요 :

$ bin/asynch_feed_update <my key> <my feed ID> example 1 example 4 example 20 example 58 example 11 example 17 
example: 1 7 
example: 4 7 
example: 20 7 
example: 58 7 
example: 11 7 
example: 17 7 
[io/posix_asynch/posix_asynch_io_layer.c:165 (posix_asynch_io_layer_init)] [posix_io_layer_init] 
[io/posix_asynch/posix_asynch_io_layer.c:174 (posix_asynch_io_layer_init)] Creating socket... 
[io/posix_asynch/posix_asynch_io_layer.c:185 (posix_asynch_io_layer_init)] Setting socket non blocking behaviour... 
[io/posix_asynch/posix_asynch_io_layer.c:203 (posix_asynch_io_layer_init)] Socket creation [ok] 
No data within five seconds. 
+0

"asynch"버전이 작동해야합니다. 'xi_nob_feed_update()'는 올바른 함수입니다. – errordeveloper

+1

이 예제와 같이'select()'를 호출해야합니다 : https://github.com/xively/libxively/blob/41e44c/src/examples/asynch_feed_update.c – errordeveloper

+0

동기 함수가 작동합니까? – Rick

답변

1

비동기 버전은 작동합니다. xi_nob_feed_update()은 피드 업데이트 요청을하는 데 적합한 기능입니다.

select() 다음에 루프로 process_xively_nob_step()을 호출해야합니다.

일반적으로 the asynchronous example을 따라야합니다.

+0

감사합니다. 나는 그것을 간과했습니다. 나는 기회가 생길 때 그것을 시도 할 것이고, 그것이 효과가 있다면 대답을 받아들이 기 위해 돌아올 것이다. – Rick

+0

그래서 예제를 실행 해 보았지만 작동하지 않습니다 (또는 잘못된 호출입니다). 위의 내 원래 게시물 수정을 참조하십시오. – Rick

+0

가능한 한 빨리이 문제를 살펴 보겠습니다. – olgierdh

관련 문제