File: client2.cc

package info (click to toggle)
gpsim 0.32.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 16,644 kB
  • sloc: cpp: 121,258; asm: 54,223; ansic: 13,576; python: 9,708; sh: 4,695; makefile: 1,575; lex: 1,139; yacc: 854; pascal: 511; perl: 93; awk: 44; xml: 41
file content (113 lines) | stat: -rw-r--r-- 2,459 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/*
   Copyright (C) 2004 T. Scott Dattalo

This file is part of gpsim.

gpsim is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.

gpsim is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with gpsim; see the file COPYING.  If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.  */

/*
  Scripting

  client2.cc - a program to demonstrate gpsim scripting.

*/

#include <stdio.h>
#include <stdlib.h>

#include "client_interface.h"

#define PORT        0x1234


//========================================================================
//
//
//
int main(int argc, char **argv)
{

  bool bPassed = true;  // regression test results - assume we pass

  ClientSocketInterface *sock = new ClientSocketInterface(argc > 2 ? argv[2] : 0, PORT);


  /*
    Set up.

    Since we are controlling the simulator entirely from a script, there really is
    not much need for the command line output it provides. So we'll turn it off
    by setting the simulator attribute 'sim.verbosity' to zero.

  */

  sock->WriteSymbolUInt32("sim.verbosity", 0);


  /*
    The simulator's command line parser is still available for us to use.
    So we'll use it to load the source code and to set a break point.
  */
  //sock->SendCmd("load s gensquares.cod\n");

  unsigned int h_reg1 = sock->CreateLinkUInt32("reg1");

  /*
    start running
  */

  //sock->SendCmd("run\n");




  if (!h_reg1) {
    printf("unable to create handles\n");
    delete sock;
    exit(1);
  }

  unsigned int reg1=0;


  for (unsigned int i = 0; i < 256; i++) {
    printf("query link\n");
    sock->WriteToLinkUInt32(h_reg1, i);
    printf("query link got %u\n", i);
    if (! sock->QueryLinkUInt32(h_reg1,reg1) )
      printf("failed to decode reg1\n");
    if (i != reg1)
      bPassed = false;
  }
  /*
    release the handle
  */

  sock->RemoveLink(h_reg1);

  sock->WriteSymbolUInt32("sim.verbosity", 1);

  delete sock;

  if(bPassed)
    printf("The simulation passed!\n");
  else
    printf("The simulation failed\n");

  return 0;
}