Librería para clientes de AlMarSimulator 1
Librería para E/S de simuladores genéricos (C/C++/Matlab/Python)
Loading...
Searching...
No Matches
AlMarDuino.cpp
1#include "AlMarDuino.h"
2#include "UserLibSimulator.h"
3#include <iostream>
4#include <string.h>
5
6/* Can't be done in Windows, as it requires setup() and loop() to be defined here
7int main(int argc,const char* argv[ ]) {
8 AlMarDuino::Internal::Setup(argc,argv);
9 setup();
10 while (1) {
11 loop();
12 }
13 return 0;
14}
15*/
16
17static void GetArgument(int argc,const char* argv[],const char* argName,char* dest,int destLen);
18
19
20int AlMarDuino::Internal::Setup(int argc, const char *argv[])
21{
22 printf("Starting AlMarDuino for Simulator\n"); fflush(stdout);
23 char appname[32];
24 char username[32];
25 char pwd[128];
26 char ip[128];
27 char port[32];
28 const char* arg;
29 GetArgument(argc,argv,"appname",appname,32);
30 GetArgument(argc,argv,"username",username,32);
31 GetArgument(argc,argv,"passwd",pwd,128);
32 GetArgument(argc,argv,"ip",ip,128);
33 GetArgument(argc,argv,"port",port,32);
34 // Connect with simulator (must be running previously with Distrib/Client/Piston/SimuladorPiston.bat)
35 int err=Simulator_ConnectWss(appname,username,pwd,ip,atoi(port) ); // Ponemos Feedback en lugar de piston para utilizar el simulador del sistema Feedback
36
37 if (err!=CONNECT_IS_OK)
38 return -1;
39
40 return 0;
41}
42
43void AlMarDuino::delay(int time_ms)
44{
45 Simulator_Delay(time_ms);
46}
47
48void GetArgument(int argc, const char *argv[], const char *argName,char* dest,int destLen)
49{
50 int len=strlen(argName);
51 for (int j=1;j<argc;j++) {
52
53 if (strncmp(argv[j],"--",2)==0 && strncmp(argv[j]+2,argName,len)==0)
54 {
55 if (argv[j][2+len]=='=') {
56 strncpy(dest,argv[j]+2+len+1,destLen);
57 dest[destLen-1]=0;
58 return;
59 }
60 }
61 }
62 printf("%s: ",argName); fflush(stdout);
63 fgets(dest,destLen-1,stdin);
64 dest[strlen(dest)-1]=0; // Removes \n
65 printf("You can default this argument in command line with: --%s=\"%s\"\n",argName,dest); fflush(stdout);
66}
Archivo de cabecera para utilizar la librería de E/S estilo Arduino con el simulador de Sistemas Físi...
void delay(int time_ms)
Archivo de cabecera para utilizar la librería de E/S con el simulador de Sistemas Físicos.
void Simulator_Delay(int value_ms)
int Simulator_ConnectWss(const char *appName, const char *userName, const char *passwd, const char *ip_address, int port)
#define CONNECT_IS_OK
Codigos de error de la función Simulator_ConnectWss()