Newsgrupos.com  

Retroceder   Newsgrupos.com > Forum > Newsgroup es.comp.lenguajes.* Foro > Newsgroup es.comp.lenguajes.c
Registrarse Preguntas Frecuentes Lista de Foreros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




Respuesta
 
LinkBack Herramientas Desplegado
  #1 (permalink)  
Antiguo 10-04-2007, 10:27:55
Plextor
 
Mensajes: n/a
Predeterminado Datos Variables

Hola,

Tengo una tarjeta de Entradas/Salidas, la cual tiene 3 puertos
configurables independientemente como entradas o salidas.

Según la API del fabricante, con una función de la API debo
especificar como están configurados dichos puertos, por ejemplo:
Puerto A= Entrada, Puerto B= Salida y Puerto C= Entrada.

Hasta aquí todo correcto, pero yo quiero encapsular esa llamada por
otra que me retorne una estructura con dos campos entradas y salidas.
pero claro la longitud es variable según la configuración de puertos,
ya que si configuro todos los puertos como Entradas en la estructura
quedaría la variable Entrada con 3 Bytes y Salidas con 0 Bytes.

¿Alguna Idea?

Un saludo,
Plextor

Responder Con Cita
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Newsgrupos.com
Standard Sponsored Links

  #2 (permalink)  
Antiguo 10-04-2007, 11:16:30
Zara
 
Mensajes: n/a
Predeterminado Re: Datos Variables

On 10 Apr 2007 03:27:55 -0700, "Plextor" <mario.campo***pookmail.com>
wrote:

>Tengo una tarjeta de Entradas/Salidas, la cual tiene 3 puertos
>configurables independientemente como entradas o salidas.
>
>Según la API del fabricante, con una función de la API debo
>especificar como están configurados dichos puertos, por ejemplo:
>Puerto A= Entrada, Puerto B= Salida y Puerto C= Entrada.
>
>Hasta aquí todo correcto, pero yo quiero encapsular esa llamada por
>otra que me retorne una estructura con dos campos entradas y salidas.
>pero claro la longitud es variable según la configuración de puertos,
>ya que si configuro todos los puertos como Entradas en la estructura
>quedaría la variable Entrada con 3 Bytes y Salidas con 0 Bytes.
>
>¿Alguna Idea?
>



Lo mejor que se me ocurre, que no incluya llamadas a "malloc" que
luego se olviden de "free":

#define MAX_SALIDAS 4 /* sutsituir por lo que sea correcto */
#define MAX_SALIDAS 4 /* sutsituir por lo que sea correcto */

typedef struct entra_sale_ {
unsigned char entradas[MAX_ENTRADAS];
unsigned char salidas[MAX_SALIDAS];
size_t entradas_validas,salidas_validas;
} entra_sale;


.... y se me puede haber desliazado algún error en el typedef, yo uso
mucho el C++ y se tengo el C puro y duro algo oxidado. pero creo que
se entiene lo que quiero decir.

salu2


Zara
Responder Con Cita
  #3 (permalink)  
Antiguo 10-04-2007, 11:16:30
Zara
 
Mensajes: n/a
Predeterminado Re: Datos Variables

On 10 Apr 2007 03:27:55 -0700, "Plextor" <mario.campo***pookmail.com>
wrote:

>Tengo una tarjeta de Entradas/Salidas, la cual tiene 3 puertos
>configurables independientemente como entradas o salidas.
>
>Según la API del fabricante, con una función de la API debo
>especificar como están configurados dichos puertos, por ejemplo:
>Puerto A= Entrada, Puerto B= Salida y Puerto C= Entrada.
>
>Hasta aquí todo correcto, pero yo quiero encapsular esa llamada por
>otra que me retorne una estructura con dos campos entradas y salidas.
>pero claro la longitud es variable según la configuración de puertos,
>ya que si configuro todos los puertos como Entradas en la estructura
>quedaría la variable Entrada con 3 Bytes y Salidas con 0 Bytes.
>
>¿Alguna Idea?
>



Lo mejor que se me ocurre, que no incluya llamadas a "malloc" que
luego se olviden de "free":

#define MAX_SALIDAS 4 /* sutsituir por lo que sea correcto */
#define MAX_SALIDAS 4 /* sutsituir por lo que sea correcto */

typedef struct entra_sale_ {
unsigned char entradas[MAX_ENTRADAS];
unsigned char salidas[MAX_SALIDAS];
size_t entradas_validas,salidas_validas;
} entra_sale;


.... y se me puede haber desliazado algún error en el typedef, yo uso
mucho el C++ y se tengo el C puro y duro algo oxidado. pero creo que
se entiene lo que quiero decir.

salu2


Zara
Responder Con Cita
  #4 (permalink)  
Antiguo 10-04-2007, 11:16:30
Zara
 
Mensajes: n/a
Predeterminado Re: Datos Variables

On 10 Apr 2007 03:27:55 -0700, "Plextor" <mario.campo***pookmail.com>
wrote:

>Tengo una tarjeta de Entradas/Salidas, la cual tiene 3 puertos
>configurables independientemente como entradas o salidas.
>
>Según la API del fabricante, con una función de la API debo
>especificar como están configurados dichos puertos, por ejemplo:
>Puerto A= Entrada, Puerto B= Salida y Puerto C= Entrada.
>
>Hasta aquí todo correcto, pero yo quiero encapsular esa llamada por
>otra que me retorne una estructura con dos campos entradas y salidas.
>pero claro la longitud es variable según la configuración de puertos,
>ya que si configuro todos los puertos como Entradas en la estructura
>quedaría la variable Entrada con 3 Bytes y Salidas con 0 Bytes.
>
>¿Alguna Idea?
>



Lo mejor que se me ocurre, que no incluya llamadas a "malloc" que
luego se olviden de "free":

#define MAX_SALIDAS 4 /* sutsituir por lo que sea correcto */
#define MAX_SALIDAS 4 /* sutsituir por lo que sea correcto */

typedef struct entra_sale_ {
unsigned char entradas[MAX_ENTRADAS];
unsigned char salidas[MAX_SALIDAS];
size_t entradas_validas,salidas_validas;
} entra_sale;


.... y se me puede haber desliazado algún error en el typedef, yo uso
mucho el C++ y se tengo el C puro y duro algo oxidado. pero creo que
se entiene lo que quiero decir.

salu2


Zara
Responder Con Cita
  #5 (permalink)  
Antiguo 10-04-2007, 11:16:30
Zara
 
Mensajes: n/a
Predeterminado Re: Datos Variables

On 10 Apr 2007 03:27:55 -0700, "Plextor" <mario.campo***pookmail.com>
wrote:

>Tengo una tarjeta de Entradas/Salidas, la cual tiene 3 puertos
>configurables independientemente como entradas o salidas.
>
>Según la API del fabricante, con una función de la API debo
>especificar como están configurados dichos puertos, por ejemplo:
>Puerto A= Entrada, Puerto B= Salida y Puerto C= Entrada.
>
>Hasta aquí todo correcto, pero yo quiero encapsular esa llamada por
>otra que me retorne una estructura con dos campos entradas y salidas.
>pero claro la longitud es variable según la configuración de puertos,
>ya que si configuro todos los puertos como Entradas en la estructura
>quedaría la variable Entrada con 3 Bytes y Salidas con 0 Bytes.
>
>¿Alguna Idea?
>



Lo mejor que se me ocurre, que no incluya llamadas a "malloc" que
luego se olviden de "free":

#define MAX_SALIDAS 4 /* sutsituir por lo que sea correcto */
#define MAX_SALIDAS 4 /* sutsituir por lo que sea correcto */

typedef struct entra_sale_ {
unsigned char entradas[MAX_ENTRADAS];
unsigned char salidas[MAX_SALIDAS];
size_t entradas_validas,salidas_validas;
} entra_sale;


.... y se me puede haber desliazado algún error en el typedef, yo uso
mucho el C++ y se tengo el C puro y duro algo oxidado. pero creo que
se entiene lo que quiero decir.

salu2


Zara
Responder Con Cita
  #6 (permalink)  
Antiguo 11-04-2007, 07:46:52
Antoine Leca
 
Mensajes: n/a
Predeterminado Re: Datos Variables

En news:1176200875.437994.163500***b75g2000hsg.googlegr oups.com,
Plextor va escriure:
> Tengo una tarjeta de Entradas/Salidas, la cual tiene 3 puertos
> configurables independientemente como entradas o salidas.
>
> Hasta aquí todo correcto, pero yo quiero encapsular esa llamada por
> otra que me retorne una estructura con dos campos entradas y salidas.
> pero claro la longitud es variable según la configuración de puertos,
> ya que si configuro todos los puertos como Entradas en la estructura
> quedaría la variable Entrada con 3 Bytes y Salidas con 0 Bytes.


struct targeta { unsigned char puertoA, puertoB, puertoC; };

int/*resultado de la operación*/ hacerAlgo(int mando,
struct targeta *entradas, struct targeta *salidas);

Se rellena la estructura "entradas" con los debidos valores en los puestos
correspondientes, se llama a la función y se lee les resultados en la
estructura "salidas".
Según la manera de programar la tarjeta, se puede poner como parte del
"mando" una indicación de cuales son los puertos de entrada y los de salidas
(1 significa puerto A es de salida, 2 lo mismo para puerto B, 4 para puerto
C; mando==7 significa todos de salida, ==0 todos de entrada).

Tienes un ejemplo muy parecido con el interfaz con el firmware (bios/dos) en
arquitectura x86-16 (la función se llama int86(), y la estructura es union
REGS).


Antoine

Responder Con Cita
  #7 (permalink)  
Antiguo 11-04-2007, 07:46:52
Antoine Leca
 
Mensajes: n/a
Predeterminado Re: Datos Variables

En news:1176200875.437994.163500***b75g2000hsg.googlegr oups.com,
Plextor va escriure:
> Tengo una tarjeta de Entradas/Salidas, la cual tiene 3 puertos
> configurables independientemente como entradas o salidas.
>
> Hasta aquí todo correcto, pero yo quiero encapsular esa llamada por
> otra que me retorne una estructura con dos campos entradas y salidas.
> pero claro la longitud es variable según la configuración de puertos,
> ya que si configuro todos los puertos como Entradas en la estructura
> quedaría la variable Entrada con 3 Bytes y Salidas con 0 Bytes.


struct targeta { unsigned char puertoA, puertoB, puertoC; };

int/*resultado de la operación*/ hacerAlgo(int mando,
struct targeta *entradas, struct targeta *salidas);

Se rellena la estructura "entradas" con los debidos valores en los puestos
correspondientes, se llama a la función y se lee les resultados en la
estructura "salidas".
Según la manera de programar la tarjeta, se puede poner como parte del
"mando" una indicación de cuales son los puertos de entrada y los de salidas
(1 significa puerto A es de salida, 2 lo mismo para puerto B, 4 para puerto
C; mando==7 significa todos de salida, ==0 todos de entrada).

Tienes un ejemplo muy parecido con el interfaz con el firmware (bios/dos) en
arquitectura x86-16 (la función se llama int86(), y la estructura es union
REGS).


Antoine

Responder Con Cita
  #8 (permalink)  
Antiguo 11-04-2007, 07:46:52
Antoine Leca
 
Mensajes: n/a
Predeterminado Re: Datos Variables

En news:1176200875.437994.163500***b75g2000hsg.googlegr oups.com,
Plextor va escriure:
> Tengo una tarjeta de Entradas/Salidas, la cual tiene 3 puertos
> configurables independientemente como entradas o salidas.
>
> Hasta aquí todo correcto, pero yo quiero encapsular esa llamada por
> otra que me retorne una estructura con dos campos entradas y salidas.
> pero claro la longitud es variable según la configuración de puertos,
> ya que si configuro todos los puertos como Entradas en la estructura
> quedaría la variable Entrada con 3 Bytes y Salidas con 0 Bytes.


struct targeta { unsigned char puertoA, puertoB, puertoC; };

int/*resultado de la operación*/ hacerAlgo(int mando,
struct targeta *entradas, struct targeta *salidas);

Se rellena la estructura "entradas" con los debidos valores en los puestos
correspondientes, se llama a la función y se lee les resultados en la
estructura "salidas".
Según la manera de programar la tarjeta, se puede poner como parte del
"mando" una indicación de cuales son los puertos de entrada y los de salidas
(1 significa puerto A es de salida, 2 lo mismo para puerto B, 4 para puerto
C; mando==7 significa todos de salida, ==0 todos de entrada).

Tienes un ejemplo muy parecido con el interfaz con el firmware (bios/dos) en
arquitectura x86-16 (la función se llama int86(), y la estructura es union
REGS).


Antoine

Responder Con Cita
  #9 (permalink)  
Antiguo 11-04-2007, 07:46:52
Antoine Leca
 
Mensajes: n/a
Predeterminado Re: Datos Variables

En news:1176200875.437994.163500***b75g2000hsg.googlegr oups.com,
Plextor va escriure:
> Tengo una tarjeta de Entradas/Salidas, la cual tiene 3 puertos
> configurables independientemente como entradas o salidas.
>
> Hasta aquí todo correcto, pero yo quiero encapsular esa llamada por
> otra que me retorne una estructura con dos campos entradas y salidas.
> pero claro la longitud es variable según la configuración de puertos,
> ya que si configuro todos los puertos como Entradas en la estructura
> quedaría la variable Entrada con 3 Bytes y Salidas con 0 Bytes.


struct targeta { unsigned char puertoA, puertoB, puertoC; };

int/*resultado de la operación*/ hacerAlgo(int mando,
struct targeta *entradas, struct targeta *salidas);

Se rellena la estructura "entradas" con los debidos valores en los puestos
correspondientes, se llama a la función y se lee les resultados en la
estructura "salidas".
Según la manera de programar la tarjeta, se puede poner como parte del
"mando" una indicación de cuales son los puertos de entrada y los de salidas
(1 significa puerto A es de salida, 2 lo mismo para puerto B, 4 para puerto
C; mando==7 significa todos de salida, ==0 todos de entrada).

Tienes un ejemplo muy parecido con el interfaz con el firmware (bios/dos) en
arquitectura x86-16 (la función se llama int86(), y la estructura es union
REGS).


Antoine

Responder Con Cita
 
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último mensaje
OpenRowSet con variables Mario Newsgroup microsoft.public.es.sqlserver 1 13-12-2007 11:38:05
Datos de variables a celdas ElProfe Newsgroup microsoft.public.es.excel 6 08-12-2007 12:43:11
Pasar datos de un DataView a unas variables Armando Ballesteros S. Newsgroup microsoft.public.es.desarrollo 8 07-07-2005 10:37:10
Variables JMContreras Newsgroup microsoft.public.es.aplicaciones.moviles 4 12-01-2005 22:01:04
Obtener datos históricos de variables macroeconómicas David Newsgroup es.charla.economia.misc 10 30-10-2004 20:11:46





Powered by: vBulletin, Versión 3.6.8
Derechos de Autor ©2000 - 2008, Jelsoft Enterprises Ltd.

LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc.