Librería para clientes de AlMarSimulator 1
Librería para E/S de simuladores genéricos (C/C++/Matlab/Python)
Loading...
Searching...
No Matches
UserLibSimulator.h File Reference

Archivo de cabecera para utilizar la librería de E/S con el simulador de Sistemas Físicos. More...

Go to the source code of this file.

Macros

#define SIMULATOR_Vcc_V   5.0f
 Tensión de alimentación de las E/S del simulador (5V)
 
#define SIMULATOR_NO_ERROR   0
 No ha habido error en la última función ejecutada.
 
#define CONNECT_IS_OK   SIMULATOR_NO_ERROR
 Codigos de error de la función Simulator_ConnectWss()
 
#define CONNECT_ERROR_SERVER_NOT_RUNNING   -1
 El servidor MongooseWebServer.exe no se está ejecutando.
 
#define CONNECT_ERROR_SERVER_NOT_RESPONDING   -2
 El servidor MongooseWebServer.exe no responde.
 
#define N_MAX_TIMERS   4
 Máximo número de timers admitidos (usar 0 a 3)
 
#define N_MAX_AD_CONVERTERS   4
 Máximo número de ADC admitidos (usar 0 a 3)
 

Functions

int Simulator_ConnectWss (const char *appName, const char *userName, const char *passwd, const char *ip_address, int port)
 
void Simulator_Delay (int value_ms)
 
int Simulator_ReadAD (int ad_channel)
 
int Simulator_ReadDI ()
 
int Simulator_ReadCounter (int enc_channel)
 
int Simulator_ResetCounter (int enc_channel)
 
int Simulator_ReadDO ()
 
void Simulator_WriteDO (int value)
 
void Simulator_ConfigPWM (int pwm_channel, int count_max, int count_value_default, int count_unit_us)
 
void Simulator_SetPWMvalue (int pwm_channel, int count_value)
 
int Simulator_LCD_init ()
 
int Simulator_LCD_gotoxy (int col, int row)
 
int Simulator_LCD_printf (const char *fmt,...)
 
int Simulator_SetTimerInterrupt (int timer_number, int tm_ms, void(*Fn)())
 
char Simulator_Console_GetChar (int blocking)
 
int Simulator_Console_GetString (int blocking, char *textBuffer, int textBufferSize)
 
int Simulator_Console_Printf (const char *fmt,...)
 
int Simulator_Console_Scanf (const char *fmt,...)
 

Detailed Description

Archivo de cabecera para utilizar la librería de E/S con el simulador de Sistemas Físicos.

Para compilación con QtCreator, añadir lo siguiente al .pro (cambiando el contenido de SIMUL_LIBRARY_PATH por el directorio donde se haya descomprimido la librería).
Archivo .pro:

SIMUL_LIBRARY_PATH = C:/User/.../Client
INCLUDEPATH += $${SIMUL_LIBRARY_PATH}/include
contains(QT_ARCH, i386) {
message("32-bit")
LIBS += -L$${SIMUL_LIBRARY_PATH}/mingw32 -lUserLibSimulator
} else {
message("64-bit")
LIBS += -L$${SIMUL_LIBRARY_PATH}/mingw64 -lUserLibSimulator
}
# Si se desea utilizar curses:
LIBS += -lpdcurses
# Si se desea utilizar windows sockets:
LIBS += -lws2_32


Ejemplo de uso
test.c:

#include <stdio.h>
int main()
{
printf("Hello Simulator User!\n"); fflush(stdout);
// Connect with simulator (must be running previously with Distrib/Client/Piston/SimuladorPiston.bat)
int err=Simulator_ConnectWss("AlMarPiston","alumno","laclavemostradaenlapaginaweb","127.0.0.1",8080);
if (err!=CONNECT_IS_OK)
return -1;
while (1)
{
int ad0,ad1;
printf("AD0 = %d , AD1 = %d\n",ad0,ad1);
}
return 0;
}
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_ReadAD(int ad_channel)
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()

Definition in file UserLibSimulator.h.

Macro Definition Documentation

◆ CONNECT_ERROR_SERVER_NOT_RESPONDING

#define CONNECT_ERROR_SERVER_NOT_RESPONDING   -2

El servidor MongooseWebServer.exe no responde.

Definition at line 64 of file UserLibSimulator.h.

◆ CONNECT_ERROR_SERVER_NOT_RUNNING

#define CONNECT_ERROR_SERVER_NOT_RUNNING   -1

El servidor MongooseWebServer.exe no se está ejecutando.

Definition at line 63 of file UserLibSimulator.h.

◆ CONNECT_IS_OK

#define CONNECT_IS_OK   SIMULATOR_NO_ERROR

Codigos de error de la función Simulator_ConnectWss()

Conexión válida

Definition at line 62 of file UserLibSimulator.h.

◆ N_MAX_AD_CONVERTERS

#define N_MAX_AD_CONVERTERS   4

Máximo número de ADC admitidos (usar 0 a 3)

Definition at line 67 of file UserLibSimulator.h.

◆ N_MAX_TIMERS

#define N_MAX_TIMERS   4

Máximo número de timers admitidos (usar 0 a 3)

Definition at line 66 of file UserLibSimulator.h.

◆ SIMULATOR_NO_ERROR

#define SIMULATOR_NO_ERROR   0

No ha habido error en la última función ejecutada.

Definition at line 58 of file UserLibSimulator.h.

◆ SIMULATOR_Vcc_V

#define SIMULATOR_Vcc_V   5.0f

Tensión de alimentación de las E/S del simulador (5V)

Definition at line 56 of file UserLibSimulator.h.

Function Documentation

◆ Simulator_ConfigPWM()

void Simulator_ConfigPWM ( int pwm_channel,
int count_max,
int count_value_default,
int count_unit_us )

Preparar una salida PWM

Parameters
pwm_channelnúmero de canal PWM, empezando por 0. Canales disponibles según aplicación
count_maxTpwm en número de pasos de contador
count_value_defaultTon inicial en número de pasos de contador
count_unit_ustiempo por paso de contador en us

◆ Simulator_ConnectWss()

int Simulator_ConnectWss ( const char * appName,
const char * userName,
const char * passwd,
const char * ip_address,
int port )

Conectar con el simulador: ejecutar una sola vez en main con los datos siguientes (se pueden copiar desde la página web pulsando el botón "Mostrar info clientes"

Parameters
appName= nombre de la aplicación ("Piston", "Feedback", etc.)
userName= usuario autorizado para la apicación ("alumno")
passwd= clave para el usuario encriptada
ip_address= dirección ip del servidor ("127.0.0.1" para servidor local)
port= puerto del servidor (8080 para servidor local) Ejemplo: int err=Simulator_ConnectWss("Piston","alumno","laclaveencriptada","127.0.0.1",8080); if (err==CONNECT_IS_OK) { ... }
Returns
CONNECT_IS_OK=0 si todo ha ido bien, valor menor que 0 si ha habido algún problema

◆ Simulator_Console_GetChar()

char Simulator_Console_GetChar ( int blocking)

Obtiene un caracter de la consola de texto asociada al simulador

Parameters
blockingsi verdadero (distinto de cero), espera hasta que haya un carácter disponible
Returns
código ASCII del carácter introducido en la consola de texto del simulador, o 0 si no hay ningún carácter disponible

◆ Simulator_Console_GetString()

int Simulator_Console_GetString ( int blocking,
char * textBuffer,
int textBufferSize )

Obtiene una línea de texto de la consola asociada al simulador

Parameters
blockingsi verdadero (distinto de cero), espera hasta que haya una línea completa disponible
textBufferpuntero a tabla de caracteres con espacio suficiente para la cadena
textBufferSizelongitud de la tabla 'textBuffer'
Returns
entero que indica el número de caracteres que se han leído

◆ Simulator_Console_Printf()

int Simulator_Console_Printf ( const char * fmt,
... )

Escribe una línea de texto en la consola asociada al simulador

Parameters
fmtcadena de formato, similar a printf()
...número variable de argumentos, según cadena de formato, similar a printf()
Returns
número de caracteres escritos, o número negativo en caso de error

◆ Simulator_Console_Scanf()

int Simulator_Console_Scanf ( const char * fmt,
... )

Espera una línea de texto en la consola asociada al simulador, y guarda datos en variables indicadas

Parameters
fmtcadena de formato, similar a scanf()
...número variable de argumentos, según cadena de formato, similar a scanf()
Returns
número de valores correctamente obtenidos del texto, o número negativo en caso de error

◆ Simulator_Delay()

void Simulator_Delay ( int value_ms)

Generar un retardo en la aplicación

Parameters
value_ms= tiempo de retardo en milisegundos

◆ Simulator_LCD_gotoxy()

int Simulator_LCD_gotoxy ( int col,
int row )

Establecer la posición del cursor en el display LCD de 2x24

Parameters
colnúmero de columna, de 1 a 24
rownúmero de fila, de 1 a 2
Returns
0 si correcto, o número negativo en caso de error (simulador no inicializado, fuera de rango de display)

◆ Simulator_LCD_init()

int Simulator_LCD_init ( )

Inicalizar el display LCD de 2x24

Returns
0 si correcto, o número negativo en caso de error (simulador no inicializado)

◆ Simulator_LCD_printf()

int Simulator_LCD_printf ( const char * fmt,
... )

Escribir en la posición actual del cursor en el display LCD de 2x24

Parameters
fmtcadena de formato, similar a printf()
caracteres especiales: '\f' = borra display
'' = retrocede cursor
'\t' = avanza cursor
'
' = retorno de carro
...número variable de argumentos, según cadena de formato, similar a printf()
Returns
número de caracteres escritos, o número negativo en caso de error (LCD no inicializado)

◆ Simulator_ReadAD()

int Simulator_ReadAD ( int ad_channel)

Leer un valor analógico del simulador, nº bits (n) y límites de tensión (Umin-Umax) según aplicación

Parameters
ad_channelnúmero de canal AD, empezando por 0. Canales disponibles según aplicación
Returns
valor leído del canal, entre 0 y 2n-1, según relación lineal con la tensión a la entrada

◆ Simulator_ReadCounter()

int Simulator_ReadCounter ( int enc_channel)

Leer un valor numérico del contador, nº bits (n) según aplicación

Parameters
enc_channelnúmero de canal de encóder, empezando por 0. Canales disponibles según aplicación
Returns
valor leído del canal, entre -2n-1 y 2n-1-1, según cuenta de pulsos

◆ Simulator_ReadDI()

int Simulator_ReadDI ( )

Leer el puerto de entradas digitales del simulador (bits 0 a 31, usos según aplicación)

Returns
valor leído del puerto DI (único) según la tensión de cada pin de entrada (0V→0, 5V→1)

◆ Simulator_ReadDO()

int Simulator_ReadDO ( )

Leer el puerto de salidas digitales del simulador (bits 0 a 31, usos según aplicación)

Returns
valor leído del puerto DO (único) según la tensión de cada pin de salida (0V→0, 5V→1)

◆ Simulator_ResetCounter()

int Simulator_ResetCounter ( int enc_channel)

Resetea a 0 el contador, nº bits (n) según aplicación

Parameters
enc_channelnúmero de canal de encóder, empezando por 0. Canales disponibles según aplicación
Returns
0 si no hay error

◆ Simulator_SetPWMvalue()

void Simulator_SetPWMvalue ( int pwm_channel,
int count_value )

Establecer el valor de una salida PWM

Parameters
pwm_channelnúmero de canal PWM, empezando por 0. Canales disponibles según aplicación
count_valueTon inicial en número de pasos de contador

◆ Simulator_SetTimerInterrupt()

int Simulator_SetTimerInterrupt ( int timer_number,
int tm_ms,
void(*)() Fn )

Establecer una rutina de servicio de interrupción temporizada

Parameters
timer_numbernúmero de timer, valores de 0 a 3
tm_msperiodo de temporización en milisegundos
Fnpuntero a la función que se desea ejecutar de forma asíncrona cada vez que venza el temporizador, o NULL para detener el temporizador
Returns
: valor entero 0 → no hay error, <0 → error

Ejemplo:

void MyISR()
{
printf("INTERRUPT\n"); fflush(stdout);
}
...
int main()
{
int err=Simulator_ConnectWss(...); // ver argumentos en la ayuda de esta función
if (err==CONNECT_IS_OK) {
printf("Pulse INTRO para terminar\n"); fflush(stdout);
getchar();
}
return 0;
}
int Simulator_SetTimerInterrupt(int timer_number, int tm_ms, void(*Fn)())

◆ Simulator_WriteDO()

void Simulator_WriteDO ( int value)

Escribir el puerto de salidas digitales del simulador (bits 0 a 31, usos según aplicación)

Parameters
valuevalor a escribir en el puerto DO (único), cada pin de salida tomará la tensión según el valor de su bit (0→0V, 1→5V)