Example #1
0
unsigned
PuertoSerie::LeerString(unsigned char *Ptr, unsigned Max, unsigned TiempoEspera) throw(Excepcion)
{
#ifdef P_WIN32
	PortInformation p = GetPort();

	DWORD CountRead;
	SetTimeout(TiempoEspera);
	if (!ReadFile(p.Handle, Ptr, Max, &CountRead, &p.Overlapped))
	{
		if (GetLastError() != ERROR_IO_PENDING) // Error
			throw Excepcion(Excepcion::TRANSPORTE_ERROR_LECTURA, Excepcion::GetLastErrorDesc());
		
		// ERROR_IO_PENDING: Hay que esperar el evento.
		const unsigned TIMEOUT_SLICE = 200; //msecs
		while (WaitForSingleObject(p.Overlapped.hEvent, Eventos? TIMEOUT_SLICE : INFINITE) == WAIT_TIMEOUT)
			Eventos->Evento(0);
		if (!GetOverlappedResult(p.Handle, &p.Overlapped, &CountRead, FALSE))
			throw Excepcion(Excepcion::TRANSPORTE_ERROR_LECTURA, Excepcion::GetLastErrorDesc());		
	}
	if(!CountRead)
		throw Excepcion(Excepcion::TRANSPORTE_ERROR_TIEMPO_DE_ESPERA_AGOTADO);
	return CountRead;
#endif

#ifdef P_LINUX
	Select(fd, TiempoEspera);
	int rc;
	if ((rc = read(fd, Ptr, Max)) == -1)
		throw Excepcion(Excepcion::TRANSPORTE_ERROR_LECTURA, Excepcion::GetLastErrorDesc());
	return rc;
#endif
};
Example #2
0
void
PuertoSerie::EnviarString(const unsigned char *Ptr, unsigned Len) throw(Excepcion)	
{
#ifdef P_WIN32
	PortInformation p = GetPort();

	unsigned long BytesWritten;

	if (!WriteFile (p.Handle, Ptr, Len, &BytesWritten, &p.Overlapped))
	{
		if (GetLastError() != ERROR_IO_PENDING) // Error
			throw Excepcion(Excepcion::TRANSPORTE_ERROR_ESCRITURA, Excepcion::GetLastErrorDesc());

		// ERROR_IO_PENDING: Hay que esperar el evento.
		const unsigned TIMEOUT_SLICE = 200; //msecs
		while (WaitForSingleObject(p.Overlapped.hEvent, Eventos? TIMEOUT_SLICE : INFINITE) == WAIT_TIMEOUT)
			Eventos->Evento(0);
		if (!GetOverlappedResult(p.Handle, &p.Overlapped, &BytesWritten, FALSE))
			throw Excepcion(Excepcion::TRANSPORTE_ERROR_ESCRITURA, Excepcion::GetLastErrorDesc());
	}

	if (BytesWritten != Len)
		throw Excepcion(Excepcion::TRANSPORTE_ERROR_ESCRITURA, Excepcion::GetLastErrorDesc());
#endif

#ifdef P_LINUX
	if (write(fd, Ptr, Len) != Len)
		throw Excepcion(Excepcion::TRANSPORTE_ERROR_ESCRITURA, Excepcion::GetLastErrorDesc());
#endif
}
Example #3
0
void
Camara::Pintar(int ojo)
{
    try
    {
        glLoadIdentity();
        
        if ( objetivo )
        {
            Vector orientacion = objetivo->GetOrientacion();
            
            glRotatef( orientacion.GetX(), 1, 0, 0);
            glRotatef( orientacion.GetY()+(ojo?5:-5), 0, 1, 0);
            
            Vector posicion = objetivo->GetPosicion();

            glTranslatef( -posicion.GetX(), -posicion.GetY()-1, -posicion.GetZ() );
        }
        

    } 
    catch ( Excepcion &ex )
    {
        throw Excepcion(ex, "Camara::Pintar()");
    }
    catch ( exception &ex )
    {
        throw Excepcion(ex, "Camara::Pintar()");
    }
}
Example #4
0
Camara::Camara()
{
    try
    {
        objetivo = NULL ;    
    }
    catch ( Excepcion &ex )
    {
        throw Excepcion(ex, "Camara::Camara()");
    }
    catch ( exception &ex )
    {
        throw Excepcion(ex, "Camara::Camara()");
    }    
}
Example #5
0
void
Camara::Linkar(Item *item)
{
    try
    {
        objetivo = item ;
    }
    catch ( Excepcion &ex )
    {
        throw Excepcion(ex, "Camara::Linkar(Item *)");
    }
    catch ( exception &ex )
    {
        throw Excepcion(ex, "Camara::Linkar(Item *)");
    }    
}
Example #6
0
//
// Descripción del Estado del Controlador Fiscal
//
// Nota: este método no es válido para este modelo.
//
std::string
ImpresorFiscalP950_100::DescripcionEstadoControlador () throw(Excepcion)
{
    // printf ("Comando DescripcionEstadoControlador ejecutado en P950_100\n");

	throw Excepcion(Excepcion::IMPRESOR_FISCAL_ERROR_NO_IMPLEMENTADO, "Descripción del Estado del Controlador Fiscal");
}
Example #7
0
//
// Estado del Controlador Fiscal
//
// Nota: este método no es válido para este modelo.
//
ImpresorFiscal::TiposDeEstadoControlador
ImpresorFiscalP950_100::EstadoControlador () throw(Excepcion)
{
    // printf ("Comando EstadoControlador ejecutado en P950_100\n");

	throw Excepcion(Excepcion::IMPRESOR_FISCAL_ERROR_NO_IMPLEMENTADO, "Estado del Controlador Fiscal");
}
Example #8
0
//
// Obtener Tabla de IVAs
//
// Nota: este método no es válido para este modelo.
//
void
ImpresorFiscalP950_100::ObtenerTablaIVAs (TablaIVAs & /* Tabla */) throw (Excepcion)
{
    // printf ("Comando ObtenerTablaIVAs ejecutado en P950_100\n");

	throw Excepcion(Excepcion::IMPRESOR_FISCAL_ERROR_NO_IMPLEMENTADO, "Obtener Tabla de IVAs");
}
Example #9
0
//
// Reporte de Cierre Z Individual por Fecha
//
// Nota: este método no es válido para este modelo.
//
void
ImpresorFiscalP950_100::ReporteZIndividualPorFecha (FECHA /* FechaZ */, RTA_ReporteZIndividual * /* R */) throw (Excepcion)
{
    // printf ("Comando ReporteZIndividualPorFecha ejecutado en P950_100\n");

	throw Excepcion(Excepcion::IMPRESOR_FISCAL_ERROR_NO_IMPLEMENTADO, "Reporte de Cierre Z Individual por Fecha");
}
Example #10
0
//
// Especificar Monto de IVA No Inscripto
//
void
ImpresorFiscalPPL9_100::EspecificarIVANoInscripto (double /* Monto */) throw (Excepcion)
{
    // printf ("Comando EspecificarIVANoInscripto ejecutado en PPL9_100\n");

	throw Excepcion(Excepcion::IMPRESOR_FISCAL_ERROR_NO_IMPLEMENTADO, "Especificar Monto de IVA No Inscripto");
}
Example #11
0
//
// Reporte de Cierre Z Individual por Número
//
// Nota: este método no es válido para este modelo.
//
void
ImpresorFiscalP950_100::ReporteZIndividualPorNumero (unsigned /* NumeroZ */, RTA_ReporteZIndividual * /* R */) throw (Excepcion)
{
    // printf ("Comando ReporteZIndividualPorNumero ejecutado en P950_100\n");

	throw Excepcion(Excepcion::IMPRESOR_FISCAL_ERROR_NO_IMPLEMENTADO, "Reporte de Cierre Z Individual por Número");
}
Example #12
0
//
// Imprimir Voucher de Tarjeta
//
// Nota: este método no es válido para este modelo.
//
void
ImpresorFiscalP950_100::ImprimirVoucher (
							const std::string & /* NombreCliente */,
							const std::string & /* NombreTarjeta */,
							TiposDeVouchers /* TipoVoucher */,
							const std::string & /* NumeroDeTarjeta */,
							FECHA /* FechaDeVencimiento */,
							TiposDeTarjetas /* TipoTarjeta */,
							unsigned /* Cuotas */,
							const std::string & /* CodigoDeComercio */,
							unsigned /* NumeroDeTerminal */,
							unsigned /* NumeroDeLote */,
							unsigned /* NumeroCupon */,
							TiposDeIngresoDeTarjeta /* TipoIngreso */,
							TiposOperacionDeTarjeta /* TipoOperacion */,
							unsigned /* NumeroAutorizacion */,
							const std::string & /* Monto */,
							const std::string & /* NumeroComprobanteAsociado */,
							unsigned /* Copias */,
							const std::string & /* Vendedor */,
							TiposDeEstacion /* Estacion */) throw (Excepcion)
{
    // printf ("Comando ImprimirVoucher ejecutado en P950_100\n");

	throw Excepcion(Excepcion::IMPRESOR_FISCAL_ERROR_NO_IMPLEMENTADO, "Imprimir Voucher de Tarjeta");
}
Example #13
0
//
// Emitir un DNFH de Reparto
//
// Nota: este método no es válido para este modelo.
//
void
ImpresorFiscalP950_100::DNFHReparto (unsigned /* Copias */) throw (Excepcion)
{
    // printf ("Comando DNFHReparto ejecutado en P950_100\n");

	throw Excepcion(Excepcion::IMPRESOR_FISCAL_ERROR_NO_IMPLEMENTADO, "Emitir un DNFH de Reparto");
}
Example #14
0
//
// Obtener Datos de Inicialización
//
// Nota: este método no es válido para este modelo.
//
void
ImpresorFiscalP950_100::ObtenerDatosDeInicializacion (RTA_ObtenerDatosDeInicializacion * /* R */) throw (Excepcion)
{
    // printf ("Comando ObtenerDatosDeInicializacion ejecutado en P950_100\n");

	throw Excepcion(Excepcion::IMPRESOR_FISCAL_ERROR_NO_IMPLEMENTADO, "Obtener Datos de Inicialización");
}
Example #15
0
//
// Obtener Datos de Memoria de Trabajo
//
// Nota: este método no es válido para este modelo.
//
void
ImpresorFiscalP950_100::ObtenerDatosMemoriaDeTrabajo (RTA_ObtenerDatosMemoriaDeTrabajo * /* R */) throw (Excepcion)
{
    // printf ("Comando ObtenerDatosMemoriaDeTrabajo ejecutado en P950_100\n");

	throw Excepcion(Excepcion::IMPRESOR_FISCAL_ERROR_NO_IMPLEMENTADO, "Obtener Datos de Memoria de Trabajo");
}
Example #16
0
void
Celda::Inicializar()
{
    try
    {
        tile[icFondo] = new Imagen("Graficos\\fondo.bmp");
        tile[icBordeArriba]             = new Imagen("Graficos\\borde_top.bmp");
        tile[icBordeAbajo]              = new Imagen("Graficos\\borde_bottom.bmp");
        tile[icBordeDerecha]            = new Imagen("Graficos\\borde_right.bmp");
        tile[icBordeIzquierda]          = new Imagen("Graficos\\borde_left.bmp");
        tile[icBordeArribaIzquierda]    = new Imagen("Graficos\\borde_top_left.bmp");
        tile[icBordeArribaDerecha]      = new Imagen("Graficos\\borde_top_right.bmp");
        tile[icBordeAbajoIzquierda]     = new Imagen("Graficos\\borde_bottom_left.bmp");
        tile[icBordeAbajoDerecha]       = new Imagen("Graficos\\borde_bottom_right.bmp");
        tile[icGusanoHorizontal]        = new Imagen("Graficos\\gusano_horizontal.bmp");
        tile[icGusanoVertical]          = new Imagen("Graficos\\gusano_vertical.bmp");
        tile[icGusanoArribaIzquierda]   = new Imagen("Graficos\\gusano_arriba_izquierda.bmp");
        tile[icGusanoArribaDerecha]     = new Imagen("Graficos\\gusano_arriba_derecha.bmp");
        tile[icGusanoAbajoIzquierda]    = new Imagen("Graficos\\gusano_abajo_izquierda.bmp");
        tile[icGusanoAbajoDerecha]      = new Imagen("Graficos\\gusano_abajo_derecha.bmp");
        tile[icColaArriba]            = new Imagen("Graficos\\cola_arriba.bmp");
        tile[icColaDerecha]           = new Imagen("Graficos\\cola_derecha.bmp");
        tile[icColaAbajo]             = new Imagen("Graficos\\cola_abajo.bmp");
        tile[icColaIzquierda]         = new Imagen("Graficos\\cola_izquierda.bmp");
    }
    catch ( Excepcion &ex )
    {
        throw Excepcion(ex, "Celda::Inicializar()");
    }
}
Example #17
0
//
// Obtener Configuracion del Controlador
//
// Nota: este método no es válido para este modelo.
//
void
ImpresorFiscalP950_100::ObtenerConfiguracion (RTA_ObtenerConfiguracion * /* R */) throw (Excepcion)
{
    // printf ("Comando ObtenerConfiguracion ejecutado en P950_100\n");

	throw Excepcion(Excepcion::IMPRESOR_FISCAL_ERROR_NO_IMPLEMENTADO, "Obtener Configuracion del Controlador");
}
Example #18
0
//
// Especificar Línea de Nombre de Fantasía
//
// Nota: este método no es válido para este modelo.
//
void
ImpresorFiscalP950_100::EspecificarNombreDeFantasia (unsigned /* Linea */,
												 const std::string & /* Texto */) throw (Excepcion)
{
    // printf ("Comando EspecificarNombreDeFantasia ejecutado en P950_100\n");
	
	throw Excepcion(Excepcion::IMPRESOR_FISCAL_ERROR_NO_IMPLEMENTADO, "Especificar Línea de Nombre de Fantasía");
}
Example #19
0
//
// Configurar Controlador por Parámetros Individuales
//
// Nota: este método no es válido para este modelo.
//
void
ImpresorFiscalP950_100::ConfigurarControlador (ParametrosDeConfiguracion /* Parametro */,
										   const std::string & /* Valor */) throw (Excepcion)
{
    // printf ("Comando ConfigurarControlador ejecutado en P950_100\n");

	throw Excepcion(Excepcion::IMPRESOR_FISCAL_ERROR_NO_IMPLEMENTADO, "Configurar Controlador por Parámetros Individuales");
}
Example #20
0
PuertoSerie::PortInformation
PuertoSerie::GetPort() const throw(Excepcion)
{
	std::map<unsigned, PortInformation>::const_iterator i = Handles.find(PortNumber);
	if (i == Handles.end() || i->second.Handle == INVALID_HANDLE_VALUE)
		throw Excepcion(Excepcion::TRANSPORTE_ERROR_PUERTO_NO_ABIERTO);
	return i->second;
}
Example #21
0
Jugador::Jugador(Vector posicion, Nivel *nivel):
    Item(nivel, -1, posicion)
{
    try
    {
        if ( !nivel )
        {
            throw Excepcion("Error");
        }
    }
    catch ( Excepcion &ex )
    {
        throw Excepcion(ex, "Jugador::Jugador(Vector, Nivel *)");
    }
    catch ( exception &ex )
    {
        throw Excepcion(ex, "Jugador::Jugador(Vector, Nivel *)");
    }
}
Example #22
0
//
// Imprimir Código de Barras
//
// Nota: este método no es válido para este modelo.
//
void
ImpresorFiscalP950_100::ImprimirCodigoDeBarras (TiposDeCodigoDeBarras /* Tipo */,
										const std::string & /* Codigo */,
										bool /* ImprimeNumeros */,
										bool /* ImprimeAhora */)  throw(Excepcion)
{
    // printf ("Comando ImprimirCodigoDeBarras ejecutado en P950_100\n");

	throw Excepcion(Excepcion::IMPRESOR_FISCAL_ERROR_NO_IMPLEMENTADO, "Imprimir Código de Barras");
}
Example #23
0
void
Celda::Cerrar()
{
    try
    {
        for ( int i = 0 ; i < NUM_TILES ; i++ )
        {
            if ( !tile[i] )
            {
                throw Excepcion("Celda::Cerrar()");
            }
            delete tile[i] ;
        }
    }
    catch ( Excepcion &ex )
    {
        throw Excepcion(ex, "Celda::Cerrar()");
    }
}
Example #24
0
void
Celda::Pintar(int x, int y)
{
    try
    {
        tile[imagenCelda]->Pintar(x, y);
    }
    catch ( Excepcion &ex )
    {
        throw Excepcion(ex, "Celda::Pintar(int, int)");
    }
}
Example #25
0
Jugador::Jugador(Nivel *nivel):
    Item(nivel, -1)
{
    try
    {
        if ( !nivel )
        {
            throw Excepcion("Error");
        }
        empujable = true ;
        velocidadMuerte = false ;
    }
    catch ( Excepcion &ex )
    {
        throw Excepcion(ex, "Jugador::Jugador(Nivel *)");
    }
    catch ( exception &ex )
    {
        throw Excepcion(ex, "Jugador::Jugador(Nivel *)");
    }
}
Example #26
0
//
// Bonificación, Recargo y Devolución de Envases
//
// Nota: este método no es válido para este modelo.
//
void
ImpresorFiscalP950_100::DevolucionDescuento (
							const std::string & /* Texto */,
							double /* Monto */, double /* IVA */,
							double /* ImpuestosInternos */,
							bool /* EnNegativo */,
							TiposDeDescuento /* Tipo */) throw (Excepcion)
{
    // printf ("Comando DevolucionDescuento ejecutado en P950_100\n");

	throw Excepcion(Excepcion::IMPRESOR_FISCAL_ERROR_NO_IMPLEMENTADO, "Bonificación, Recargo y Devolución de Envases");
}
Example #27
0
Imagen::Imagen(string fichero)
{
    bitmap = NULL ;
    bitmap = load_bitmap(fichero.c_str(), NULL);
    if ( !bitmap )
    {
        string temp = "Imagen::Imagen(string): No se pudo cargar el fichero: ";
        temp += fichero ;
        throw Excepcion(temp);
    }
    mascara = false ;
    alpha = 255 ;
}
Example #28
0
//
// Configurar Controlador por Bloque de Parámetros
//
// Nota: este método no es válido para este modelo.
//
void
ImpresorFiscalP950_100::ConfigurarControladorPorBloque (
							double /* LimiteConsumidorFinal */,
							double /* LimiteTicketFactura */,
							double /* PorcentajeIVANoInscripto */,
							NumerosDeCopias /* TipoDeCopiasMaximo */,
							bool /* ImpresionCambio */,
							bool /* ImpresionLeyendasOpcionales */,
							TiposDeCorteDePapel /* TipoDeCorte */) throw (Excepcion)
{
    // printf ("Comando ConfigurarControladorPorBloque ejecutado en P950_100\n");

	throw Excepcion(Excepcion::IMPRESOR_FISCAL_ERROR_NO_IMPLEMENTADO, "Configurar Controlador por Bloque de Parámetros");
}
Example #29
0
Puerta::Puerta(Nivel *nivel, int cod, Vector centroCelda, Vector radioCelda, int orien):
    Item(nivel, cod)
{
    float rad = 0.3 ;
    estado = Cerrada ;
    
    posicion = centroCelda ;
    switch (orien)
    {
        case Orientacion::Norte:
            posicion.SetZ( posicion.GetZ() - radioCelda.GetZ() + rad ) ;
            posicion.SetY( posicion.GetY() + 0.8*radioCelda.GetY() );
            radio = Vector( radioCelda.GetX(), 0.8*radioCelda.GetY(), rad);
            break ;
        case Orientacion::Este:
            posicion.SetX( posicion.GetX() + radioCelda.GetX() - rad ) ;
            posicion.SetY( posicion.GetY() + 0.8*radioCelda.GetY() );
            radio = Vector( rad, 0.8*radioCelda.GetY(), radioCelda.GetZ());
            break ;
        case Orientacion::Sur:
            posicion.SetZ( posicion.GetZ() + radioCelda.GetZ() - rad ) ;
            posicion.SetY( posicion.GetY() + 0.8*radioCelda.GetY() );
            radio = Vector( radioCelda.GetX(), 0.8*radioCelda.GetY(), rad);
            break ;
        case Orientacion::Oeste:
            posicion.SetX( posicion.GetX() - radioCelda.GetX() + rad ) ;
            posicion.SetY( posicion.GetY() + 0.8*radioCelda.GetY() );
            radio = Vector( rad, 0.8*radioCelda.GetY(), radioCelda.GetZ());
            break ;
            
    }
    posicionCerrada = posicion ;
    posicionAbierta = posicionCerrada - Vector(0, 1.6*radioCelda.GetY(), 0) ;
    obstaculo = true ;
    orientacion = orien;
    
    
    BITMAP * bitmap = load_bitmap("Texturas\\puerta.bmp", NULL);
    
    if (!bitmap)
    {
        throw Excepcion("No se puedo cargar la textura puerta.bmp");
    }
    
    // Creamos la textura
    glTexPuerta = allegro_gl_make_texture_ex(AGL_TEXTURE_MIPMAP | AGL_TEXTURE_MASKED | AGL_TEXTURE_FLIP | AGL_TEXTURE_RESCALE, bitmap, -1);

}
Example #30
0
void
Imagen::CargarFichero(string fichero)
{
    if ( bitmap )
    {
        destroy_bitmap(bitmap);
        bitmap = NULL ;
    }
    bitmap = load_bitmap(fichero.c_str(), NULL);
    if ( !bitmap )
    {
        string temp = "Imagen::CargarFichero(string): No se pudo cargar el fichero: ";
        temp += fichero ;
        throw Excepcion(temp);
    }
}