X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=examples%2Fmeshlinkapp.c;h=67f996a4f91b75c3e036304a8dad4a29f7a8615a;hb=4b6c01b1d5383b1a7417244a31ad4652aab2d5db;hp=d9e5b7e0ba4d6dfcb52632ff1f0a16852a1c71fe;hpb=e4e5a81447142da0fb1291b2d2119ed6981b89e5;p=meshlink diff --git a/examples/meshlinkapp.c b/examples/meshlinkapp.c index d9e5b7e0..67f996a4 100644 --- a/examples/meshlinkapp.c +++ b/examples/meshlinkapp.c @@ -2,29 +2,39 @@ #include "../src/system.h" #include "../src/meshlink.h" -void handle_recv_data(meshlink_handle_t *mesh, meshlink_node_t *source, void *data, size_t len) { - printf("Received %zu bytes from %s: %s\n", len, source->name, (char*)data); -} +static void handle_recv_data(meshlink_handle_t *mesh, meshlink_node_t *source, void *data, size_t len) { + (void)mesh; -int main(int argc , char **argv){ - char *confbase = argc > 1 ? argv[1] : "/tmp/meshlink/"; - char *name = argc > 2 ? argv[2] : "foo"; + printf("Received %zu bytes from %s: %s\n", len, source->name, (char *)data); +} - char *remotename = argc > 3 ? argv[3] : "bar"; +int main(int argc, char **argv) { + const char *confbase = argc > 1 ? argv[1] : "/tmp/meshlink/"; + const char *name = argc > 2 ? argv[2] : "foo"; + const char *remotename = argc > 3 ? argv[3] : "bar"; - meshlink_handle_t* myhandle; + meshlink_handle_t *myhandle; myhandle = meshlink_open(confbase, name, "meshlinkapp", DEV_CLASS_STATIONARY); + if(!myhandle) { + fprintf(stderr, "Could not open MeshLink: %s", meshlink_strerror(meshlink_errno)); + return 1; + } + //Register callback function for incoming data meshlink_set_receive_cb(myhandle, (meshlink_receive_cb_t)handle_recv_data); - meshlink_start(myhandle); + if(!meshlink_start(myhandle)) { + fprintf(stderr, "Could not start MeshLink: %s", meshlink_strerror(meshlink_errno)); + return 1; + } while(1) { sleep(10); meshlink_node_t *remotenode = meshlink_get_node(myhandle, remotename); + if(!remotenode) { fprintf(stderr, "Node %s not known yet.\n", remotename); continue; @@ -32,11 +42,14 @@ int main(int argc , char **argv){ //sample data to send out char mydata[200]; - memset(mydata,0,200); - strcpy(mydata,"Hello World!"); + memset(mydata, 0, 200); + strcpy(mydata, "Hello World!"); //send out data - meshlink_send(myhandle,remotenode,mydata,sizeof(mydata)); + if(!meshlink_send(myhandle, remotenode, mydata, sizeof(mydata))) { + fprintf(stderr, "Error sending data: %s", meshlink_strerror(meshlink_errno)); + return 1; + } } meshlink_stop(myhandle);