Files
Scanbox/ScanBox/GUIA_PRUEBAS_SIN_SENSOR.md
AngelJurado 2e45a0562e Cambios en la Etiqueta.prn
Se agregaron dos nuevos valores: $v4 y $v5 para agregar un número de serie y la fecha de impresión.
Cambios en el modo debug para realizar pruebas de impresorea sin el sensor
2026-03-24 15:59:13 -06:00

309 lines
8.0 KiB
Markdown

# ?? Guía de Pruebas sin Sensor SR-X300W
## Estado Actual
? **La variable `Globals.debug = true` ya está activada** en `Globals.cs`
## ¿Cómo Funciona el Modo Debug?
### 1. **Flujo de Ejecución con Debug Activado**
Cuando presionas el botón **"Ejecutar Lectura"** (`TgrBtn_Click`):
```
???????????????????????????????????????????????????????????????
? Botón "Ejecutar Lectura" ? TgrBtn_Click() ?
???????????????????????????????????????????????????????????????
?
?
???????????????????????????????????
? ¿Se encontró sensor? (reader_found) ?
???????????????????????????????????
?
???????????????????????
? ?
SÍ (real) NO (debug)
? ?
? ?
Conecta a ???????????????????????????
sensor real ? ¿Globals.debug = true? ?
Envía LON ???????????????????????????
? ?
? ???????????????
? ? ?
? SÍ NO
? ? ?
? ? ?
? Usa datos (No hace nada)
? simulados
???????????????????????????
?
?
ReceivedDataWrite()
(Procesa datos igual que
si vinieran del sensor real)
```
### 2. **Datos de Prueba Disponibles**
En `Globals.cs` tienes definido:
```csharp
private static string codigo = "0037613825"; // 30 lentes
public static string testdata = codigo + ":001," +
codigo + ":002," +
codigo + ":003," +
// ... hasta
codigo + ":030";
```
**Esto significa:** Se simula una lectura de 30 lentes, todos con el código `0037613825`.
---
## ?? Pasos para Hacer Pruebas
### **Paso 1: Verificar que Debug esté Activado**
Abre `Globals.cs` y confirma:
```csharp
public static Boolean debug = true; // ? Debe estar en true
```
### **Paso 2: Asegúrate que el Sensor NO se Encuentra**
Cuando inicies el programa:
- Si el sensor está en la red, se conectará automáticamente
- Si el sensor NO está disponible:
- La etiqueta `sr2000w_ip_lbl` mostrará `0.0.0.0` en rojo
- El botón "Ejecutar Lectura" estará deshabilitado EN MODO AUTOMÁTICO
- ? **Esto es correcto para debug**
### **Paso 3: Cambiar a Modo Manual**
1. Haz clic en el botón **"Cambiar Modo"**
2. Selecciona **"Manual"**
3. El botón "Ejecutar Lectura" ahora se habilitará
### **Paso 4: Ejecutar la Prueba**
1. Haz clic en **"Ejecutar Lectura"**
2. **En la consola de Visual Studio verás:**
```
Ejecutando: BLOAD,1 en la linea XXX
Ejecutando: LON en la linea XXX
```
3. El programa usará `Globals.testdata` en lugar del sensor
### **Paso 5: Espera los Resultados**
En el textbox "Data" verás:
```
0037613825:001,0037613825:002,0037613825:003,...,0037613825:030
```
**Resultados esperados:**
- ? **30 lentes OK** (todos el mismo código)
- El contador mostrará: **OK: 30, NOK: 0, Questionable: 0**
- Se guardará en CSV (si aplica)
- Se imprimirá en la etiqueta (si la impresora está habilitada)
---
## ?? Cómo Modificar los Datos de Prueba
### **Cambiar el Código de Prueba**
En `Globals.cs`, busca esta línea:
```csharp
private static string codigo = "0037613825"; // 30 lentes
```
Cámbialo al código que desees probar:
```csharp
private static string codigo = "0123456789"; // Tu código
```
### **Cambiar la Cantidad de Lentes**
Actualmente simula 30 lentes (posiciones 001 a 030).
Para cambiar a 45 lentes, modifica:
```csharp
public static string testdata = codigo + ":001," +
codigo + ":002," +
// ... agrega más líneas hasta :045
codigo + ":045";
```
### **Simular Errores (Códigos Incorrectos)**
Para probar cómo reacciona el programa ante códigos incorrectos:
```csharp
public static string testdata = codigo + ":001," +
codigo + ":002," +
// ...
"0199170978" + ":015," + // ?? Código diferente en posición 15
// ...
codigo + ":030";
```
**Resultado esperado:**
- OK: 29, NOK: 1
- El programa mostrará **"X"** en la posición 15 con fondo rojo
### **Simular Lectura con Error**
```csharp
public static string testdata = "ERROR," + // Fuerza un error
codigo + ":001," +
// ... resto de datos
```
**Resultado esperado:**
- OK: 29, NOK: 0, Questionable: 1
---
## ?? Monitorizar Ejecución
### **Ver Mensajes en Consola**
En Visual Studio:
1. **Debug ? Windows ? Output** (o `Ctrl + Alt + O`)
2. Verás todos los comandos ejecutados:
```
[TCP] Conectando a 192.168.100.100:9004...
ERROR: IpAddress no configurada (esperado en modo debug)
Ejecutando: BLOAD,1 en la linea 456
Ejecutando: LON en la linea 458
```
### **Ver Datos Procesados**
En el textbox etiquetado **"Data"** (arriba a la izquierda):
- Muestra los datos recibidos en bruto
- Se actualiza automáticamente
### **Ver Resultados**
Los contadores en la pantalla:
- **OK:** Lentes que coinciden con el código master
- **NOK:** Lentes con código incorrecto
- **Questionable:** Lecturas con error
---
## ?? Flujo Completo de Prueba
```
1. Inicia ScanBox
?? Busca sensor en la red
?? No lo encuentra ? sr2000w_ip_lbl = 0.0.0.0 (rojo)
2. Cambias a "Modo Manual"
?? Botón "Ejecutar Lectura" se habilita
3. Haces clic en "Ejecutar Lectura"
?? Verifica reader_found = false
?? Entra al bloque: if (Globals.debug)
?? Llama: ReceivedDataWrite(Globals.testdata)
4. ReceivedDataWrite procesa testdata
?? Divide por comas
?? Extrae código y posición
?? Compara con "master code"
?? Marca OK o NOK
5. Actualiza pantalla
?? Muestra contadores
?? Dibuja etiquetas (OK en verde, X en rojo)
?? Guarda en CSV si aplica
?? Imprime etiqueta si está habilitado
6. El programa está listo para otra lectura
```
---
## ?? Notas Importantes
1. **Debug solo funciona sin sensor:**
- Si conectas un sensor real, el programa lo usará
- Para forzar debug, comenta la búsqueda de sensores
2. **El código debe existir en la base de datos:**
- Si el código en `testdata` no está en `data.json`, mostrará error
- Verifica que `0037613825` exista en tu `data.json`
3. **La cantidad de lentes debe coincidir con la configuración:**
- En `App.config`: `program1_OPCcodes = 1` (para 1 lente)
- Si `testdata` tiene 30 lentes, necesita un programa con 30+ lentes
4. **Cada lectura limpia los datos:**
- El textbox "Data" se borra después de 5 segundos (configurable)
- Los contadores se reinician
---
## ?? Ejemplo Práctico
### **Escenario: Probar con 3 códigos incorrectos en 30**
Modificar `Globals.cs`:
```csharp
private static string codigo = "0037613825";
public static string testdata = codigo + ":001," +
codigo + ":002," +
codigo + ":003," +
"9999999999" + ":004," + // ? Código incorrecto
codigo + ":005," +
codigo + ":006," +
"1111111111" + ":007," + // ? Código incorrecto
codigo + ":008," +
// ... más líneas ...
"2222222222" + ":030"; // ? Código incorrecto
```
**Resultado esperado:**
- OK: 27
- NOK: 3
- Fondo rojo ? "Uno o más códigos son incorrectos"
- Opción para repetir o guardar
---
## ?? Casos de Prueba Recomendados
| Caso | Modificación en testdata | Resultado Esperado |
|------|--------------------------|-------------------|
| **OK Completo** | Todos con mismo código | OK: 30, NOK: 0, Questionable: 0 |
| **Parcial OK** | 15 OK, 15 NOK | OK: 15, NOK: 15, Questionable: 0 |
| **Con Error** | Agregar "ERROR," | OK: 29, NOK: 0, Questionable: 1 |
| **Código Incorrecto** | Cambiar código en posición 15 | OK: 29, NOK: 1, Questionable: 0 |
| **Caja Vacía** | "ERROR," solo | OK: 0, NOK: 0, Questionable: 1 |
---
## ? Checklist para Empezar
- [ ] Verificar `Globals.debug = true`
- [ ] Verificar que el sensor NO esté disponible
- [ ] Verificar que el código en `testdata` existe en `data.json`
- [ ] Cambiar a "Modo Manual"
- [ ] Hacer clic en "Ejecutar Lectura"
- [ ] Ver resultados en pantalla
- [ ] Revisar la consola de Visual Studio para detalles
---
**¡Ya tienes todo lo necesario para hacer pruebas sin sensor!** ??