/ src / examples / mpropwrite.c
mpropwrite.c
 1  /*
 2      EIB Demo program - write property
 3      Copyright (C) 2005-2011 Martin Koegler <mkoegler@auto.tuwien.ac.at>
 4  
 5      This program is free software; you can redistribute it and/or modify
 6      it under the terms of the GNU General Public License as published by
 7      the Free Software Foundation; either version 2 of the License, or
 8      (at your option) any later version.
 9  
10      This program is distributed in the hope that it will be useful,
11      but WITHOUT ANY WARRANTY; without even the implied warranty of
12      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13      GNU General Public License for more details.
14  
15      You should have received a copy of the GNU General Public License
16      along with this program; if not, write to the Free Software
17      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19  #include "common.h"
20  
21  int
22  main (int ac, char *ag[])
23  {
24    int len, obj, prop, start, nr_of_elem;
25    EIBConnection *con;
26    uint8_t buf[255];
27    uint8_t res[255];
28    eibaddr_t dest;
29    char *prog = ag[0];
30  
31    parseKey (&ac, &ag);
32    if (ac < 7)
33      die
34      ("usage: %s [-k key] url eibaddr obj prop start nr_of_elem [xx xx ..]",
35       prog);
36    con = EIBSocketURL (ag[1]);
37    if (!con)
38      die ("Open failed");
39    dest = readaddr (ag[2]);
40    obj = atoi (ag[3]);
41    prop = atoi (ag[4]);
42    start = atoi (ag[5]);
43    nr_of_elem = atoi (ag[6]);
44    len = readBlock (buf, sizeof (buf), ac - 7, ag + 7);
45  
46    if (EIB_MC_Connect (con, dest) == -1)
47      die ("Connect failed");
48    auth (con);
49  
50    printf ("Write: ");
51    printHex (len, buf);
52    printf ("\n");
53    len =
54      EIB_MC_PropertyWrite (con, obj, prop, start, nr_of_elem, len, buf,
55                            sizeof (res), res);
56    if (len == -1)
57      die ("Write failed");
58    printHex (len, res);
59  
60    EIBClose (con);
61    return 0;
62  }