 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Jue 12 Abr, 2018 12:52 pm Asunto: |
|
|
¿Cuando envias con el ejecutable de prueba muestra algún precio a la vez?
Al leer el manual entiendo que ese código debería funcionar, y luego devuelve lo siguiente:
Cadena devuelta = 99SWWWWWEIIIIIICCRLF
S = Estado del peso ('0' = Correcto / '1' = Error)
WWWWW = 5 dígitos para el PESO
E = Estado del importe ('0' = Correcto / '1' = Error)
IIIIII = 6 dígitos para el importe.
C = Checksum, suma lógica (XOR) de todos los caracteres anteriores.
CR + LF = "\r\n"
Si pasa el "if (stat.cbInQue > 0)" es que ha recibido algo, y en esa variable te dice cuantos caracteres ha recibido. Fíjate si lo pasa cuanto te dice que ha devuelto, según el manual deberían ser 18 caracteres. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Jue 12 Abr, 2018 12:55 pm Asunto: |
|
|
| OK, conteste antes de ver tu último mensaje, entonces ya te funciona? en el mensaje anterior dice lo que es cada dígito. |
|
| Volver arriba |
|
 |
JesúsGandia Master


Registrado: 17 Jul 2004Mensajes: 403Ubicación: Gandia, Valencia
|
Publicado: Jue 12 Abr, 2018 1:01 pm Asunto: |
|
|
me devuelve esto:
9900039200000008
Que separandolo, seria:
99 -> NO LO SE
000392 -> el peso
0000 -> CREO QUE ES PRECIO KILO
0008 -> CREO QUE ES TOTAL
Ahora investigaré en el MANUAL TECNICO par ver que pueden ser estos valores.
Leo Gracias por todo.
MUCHAS, MUCHAS GRACIAS... _________________ Muchos hombres no se equivocan jamás porque no se proponen nada razonable. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Jue 12 Abr, 2018 1:04 pm Asunto: |
|
|
| De nada, un poco más arriba esta lo que es cada dígito, o sea, lo que dice el manual.. |
|
| Volver arriba |
|
 |
JesúsGandia Master


Registrado: 17 Jul 2004Mensajes: 403Ubicación: Gandia, Valencia
|
Publicado: Jue 12 Abr, 2018 1:05 pm Asunto: |
|
|
Si, gracias ya lo ví.
Me pasó lo que a ti... respondí antes de ver tu respuesta.
MIL VECES GRACIAS...
RESULTADO DEL CODIGO TUYO FINAL :
| Código: |
//Secuencia de caracteres a enviar a la BALANZA en función del PROCOLO Programado en la BALANZA
String __fastcall TfrmBalanzaDigital::LeerPeso(void)
{
String ret = "";
HANDLE com = CreateFile(TEXT("COM4"),
GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if (com == INVALID_HANDLE_VALUE)
throw Exception("No se pudo abrir el puerto serie");
else
{//PROTOCOLO por defecto TISA:98PPPPPCCrLf -> "98000001\r\n" Secuencia de caracteres a enviar a la BALANZA
//Donde 98 =Protocolo TISA, P = 5 Digítos para precio 00000, Cr = Retornto de carro \r, Lf = Salto de Linea \n
WriteFile(com, "98000001\r\n", 10, 0, NULL);
Sleep(100);
COMSTAT stat;
ClearCommError(com, 0, &stat);
if(stat.cbInQue > 0)
{
const DWORD bufferSize = 80;
char buffer[bufferSize+1] = "";
ReadFile(com, buffer, stat.cbInQue, 0, NULL);
ret = buffer;
}
}
CloseHandle(com);
return ret;
}
//---------------------------------------------------------------------------
|
_________________ Muchos hombres no se equivocan jamás porque no se proponen nada razonable. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|