/ src / examples / mread.c
mread.c
 1  /*
 2      EIB Demo program - read device memory
 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, addr;
25    EIBConnection *con;
26    uint8_t buf[255];
27    eibaddr_t dest;
28    char *prog = ag[0];
29  
30    parseKey (&ac, &ag);
31    if (ac != 5)
32      die ("usage: %s url [-k key] eibaddr addr count", prog);
33    con = EIBSocketURL (ag[1]);
34    if (!con)
35      die ("Open failed");
36    dest = readaddr (ag[2]);
37    addr = readHex (ag[3]);
38    len = atoi (ag[4]);
39  
40    if (EIB_MC_Connect (con, dest) == -1)
41      die ("Connect failed");
42    auth (con);
43  
44    len = EIB_MC_Read (con, addr, len, buf);
45    if (len == -1)
46      die ("Read failed");
47    printHex (len, buf);
48  
49    EIBClose (con);
50    return 0;
51  }