Comando DRV
El módulo DRV mantiene un solo chofer por equipo. Ese chofer va en el campo iButton de los reportes Wialon (que Wialon y Traccar usan para asignar el conductor), en el token 'DRV' de las plantillas, en el viaje del módulo TRIP y en las señales DRV del motor de eventos.
Antes, la última llave leída, la sesión IC y el código del viaje eran tres cosas separadas. Con DRV se configura una vez de dónde sale el chofer y el resto del equipo lo usa.
¿Para qué sirve?
- 🪪 Asignar el chofer en la plataforma sin reglas: Wialon y Traccar lo toman del campo iButton.
- 📋 Aceptar solo choferes autorizados usando el listado ICL.
- ⏱️ Cerrar la sesión sola un tiempo después de apagar el motor.
- 🚚 Asociar cada viaje a su chofer en el módulo TRIP.
- 🚨 Exigir chofer al dar contacto: aviso con buzzer o luz y corte si no se identifica, sin armar reglas.
- ⚙️ Disparar reglas en el login, el logout o ante un código no autorizado.
Configuración: SCXDRV
>SCXDRV<origen>,<lista>,<retención>,<ventana>,<aviso>,<corte>,<vel corte>,<rpt login>,<rpt logout>,<rpt inválido>,<rpt sin chofer>,<dst>,<xp ok><
>QCXDRV< -> >RCXDRV<los 13 campos><| Campo | Valores | Por defecto | Qué hace |
|---|---|---|---|
origen | 0 apagado · 1 iButton · 2 sesión IC · 3 solo manual · 4 tacógrafo | 1 | De dónde sale el chofer |
lista | 0 · 1 | 0 | 1 = solo códigos del listado ICL |
retención | 0-65535 s | 0 | Logout tras ese tiempo con la ignición apagada; 0 = nunca |
ventana | 0-3600 s | 0 | Tiempo para identificarse al dar ignición; 0 = no se exige chofer |
aviso | 0-2 · - | - | Salida que se activa mientras corre la ventana |
corte | 0-2 · G · H0-H2 · - | - | Qué se activa si vence la ventana: una salida, el corte gradual o nada. Con H, la salida habilita el vehículo solo con chofer (ver abajo) |
vel corte | 0-255 km/h | 3 | El corte por salida solo se aplica por debajo de esta velocidad |
rpt login | reporte · - | - | Reporte a emitir en cada login (ver Reportes automáticos) |
rpt logout | reporte · - | - | Reporte a emitir en cada logout |
rpt inválido | reporte · - | - | Reporte a emitir ante un código no autorizado |
rpt sin chofer | reporte · - | - | Reporte a emitir al vencer la ventana sin chofer |
dst | GP WI BT TR BGP BWI LOG BACK ALL | GP | Destino de esos reportes (los mismos nombres que SCXDTC) |
xp ok | 0-2 · - | - | Salida que se activa 2 s en cada login: un bip o un LED para confirmarle al chofer |
- Los campos son posicionales y un campo vacío conserva su valor:
>SCXDRV,,120<solo cambia la retención. - Se valida todo antes de guardar. Con un valor inválido no se guarda nada y la respuesta indica el campo:
RCXDRV,ERR,ORIGEN,LISTA,RETENCION,VENTANA,AVISO,CORTE,VELCORTE,RPTLOGIN,RPTLOGOUT,RPTINVALIDO,RPTSINCHOFER,DST,XPOK. - Cambiar el origen hace logout del chofer actual.
Orígenes
| Origen | El chofer es… | Cómo se identifica |
|---|---|---|
0 apagado | siempre ninguno | — (el campo de Wialon va NA) |
1 iButton | la última llave leída | Llave iButton (Spider/Smart) o SDRV |
2 sesión IC | la sesión de conductor (IC) | Llave iButton, control RF433, SIC/SDRV, o un lector serie con CXXB + SDA |
3 solo manual | lo cargado con SDRV | Solo SDRV (las llaves se ignoran) |
4 tacógrafo | la tarjeta del chofer 1 en el tacógrafo | La tarjeta en el tacógrafo (CAN J1939) o SDRV |
Origen 4: tacógrafo
Solo en equipos con CAN (en los demás SCXDRV4 responde RCXDRV,ERR,ORIGEN). El equipo lee del bus J1939:
- DI (PGN 65131): los números de tarjeta del chofer 1 y del chofer 2. El chofer del equipo es el chofer 1; el 2 queda en el token
'DRV2'. - TCO1 (PGN 65132): si cada tarjeta está puesta y el estado de trabajo de cada chofer (token
'TCO').
| Evento en el tacógrafo | Chofer del equipo |
|---|---|
| Se inserta la tarjeta del chofer 1 | Login con el número de tarjeta (fuente T) |
| Se retira la tarjeta del chofer 1 | Logout |
| Cambia la tarjeta del chofer 1 | El nuevo reemplaza al anterior |
- El código es el número de tarjeta en mayúsculas, sin espacios, hasta 16 caracteres (en la UE son 16).
- Un
CDRVcon la tarjeta puesta saca al chofer hasta el próximo cambio en el tacógrafo (otra tarjeta, o retirarla y volver a ponerla). - Un chofer cargado con
SDRVno lo saca el tacógrafo. lista=1también aplica: una tarjeta fuera del listado no entra y disparaDRV03.
No todos los camiones ponen el DI en el bus: en muchos el tacógrafo lo manda solo por la interfaz FMS. Antes de configurar el origen 4, verificar con un escaneo del bus que llegue el PGN 65131.
Gana el último login: si hay un chofer y se identifica otro, el nuevo reemplaza al anterior.
Con origen 2 y lista=0, cualquier código válido abre la sesión IC aunque no esté en el listado. Con lista=1 se comporta como siempre: solo abren los códigos del listado.
Listado (lista=1)
- Un código que no está en el listado no cambia el chofer y dispara la señal
DRV03. - Un código cargado con
$en el listado se reconoce, pero no es chofer: no cambia el chofer y tampoco disparaDRV03(sigue disparando suICLnn).
Los códigos de chofer son 1 a 16 caracteres alfanuméricos: letras y números, sin espacios, guiones ni guiones bajos. Para el listado usá SICL+ CODIGO, con un espacio después del +.
Exigir chofer: ventana, aviso y corte
- Ignición ON sin chofer y
ventanamayor a 0: arranca la ventana y se activa la salida deaviso. Estado3. - Se identifica dentro de la ventana: se apaga el aviso.
- Vence la ventana (señal
DRV04) o se presenta un código no autorizado (DRV03): se apaga el aviso y se corta.- Salida: se activa solo con el GPS con fix y por debajo de
vel corte. Si va más rápido queda pendiente hasta que baje (estado4). G: se activa el corte gradual, con la rampa configurada conSGC. No espera a que baje la velocidad: la rampa ya es gradual (estado5).
- Salida: se activa solo con el GPS con fix y por debajo de
- Ignición OFF: se apagan el aviso y la ventana. El corte no se libera al apagar.
Solo un login válido libera el corte, y solo el que puso el DRV. Si el corte lo activó otra cosa (una regla de jamming, SGCA desde la plataforma), el login no lo toca. Desde la plataforma se puede liberar igual con SGCS o apagando la salida.
Para usar G, el corte gradual tiene que estar habilitado con SGCE. Si no lo está, al vencer la ventana no se corta.
El patrón del aviso (fijo, intermitente) es el que tenga configurada esa salida con SCXXP. El estado de la ventana y del corte se guarda: si el equipo se reinicia en pleno corte, sigue cortado hasta el login.
>SCXDRV1,1,0,120,2,1,3< llave del listado; 2 min para identificarse; buzzer en XP2; corte en XP1 detenido
>SCXDRV2,1,60,120,2,G< sesión IC del listado; logout 60 s después de apagar; corte gradualHabilitar el vehículo solo con chofer (H)
Con corte = H más el número de salida, esa salida habilita el vehículo: está activa solo mientras hay un chofer identificado. Se cablea a un relé que habilite el arranque, la bomba o el encendido: sin chofer el vehículo no arranca, también con la ignición apagada.
| Situación | Salida de habilitación |
|---|---|
| Se identifica un chofer | Se activa en el acto |
| Logout con la ignición apagada | Se apaga en el acto |
Logout con la ignición encendida y el vehículo detenido (GPS con fix, por debajo de vel corte) | Se apaga |
| Logout andando o sin fix de GPS | Sigue activa (estado 4, pendiente) hasta que se detenga o se apague la ignición |
| Reinicio del equipo | Vuelve como corresponde al chofer guardado |
- Nunca deshabilita un vehículo en movimiento. Un
CDRVdesde la plataforma con el vehículo andando recién se aplica al detenerse o al apagar. - La plataforma puede forzar la salida (por ejemplo habilitar un vehículo sin chofer con
SSSXP): el DRV no la vuelve a tocar hasta el próximo login o logout. - La ventana y el aviso se pueden usar igual (por ejemplo para que suene el buzzer mientras no se identifica nadie); al vencer la ventana no se corta nada más: el vehículo ya está deshabilitado.
- El aviso y
xp okno pueden ir en la salida de habilitación: respondeRCXDRV,ERR,AVISOoRCXDRV,ERR,XPOK. Desde la T60 el aviso tampoco puede ir en la salida del corte por salida.
Para que el vehículo quede deshabilitado también si se corta la alimentación del equipo, usar un relé que habilite cuando la salida está activa (normal abierto en el circuito de arranque o de la bomba).
>SCXDRV1,1,0,0,-,H0,3< llave del listado; el vehículo solo arranca con chofer (XP0 habilita)
>SCXDRV2,1,300,30,2,H0,3< sesión IC del listado; logout 5 min después de apagar; buzzer en XP2 mientras no se identificaReportes automáticos
En cada evento se emite el reporte configurado al dst, igual que si una regla hiciera G<reporte>;@<dst>, pero sin armar reglas. El reporte se escribe como la acción G sin la G: tipo, número en hexadecimal y prioridad (U101H es el reporte de usuario con la plantilla SUC01, número 01, prioridad alta).
| Campo | Evento | Señal |
|---|---|---|
rpt login | Login (también el chofer que entra al reemplazar a otro) | DRV01 |
rpt logout | Logout: CDRV, retención vencida, cambio de chofer | DRV02 |
rpt inválido | Código no autorizado | DRV03 |
rpt sin chofer | Venció la ventana sin chofer | DRV04 |
- La fecha y hora del reporte son las del evento, aunque salga hasta un segundo después.
- En la plantilla del reporte,
'DRV'es el chofer del evento: el que entró en el login, el que salió en el logout y el código rechazado en el inválido. En el de ventana vencida va vacío (oNAcon'DRV::NA'). - En un cambio de chofer salen los dos: primero el logout del anterior y después el login del nuevo.
>SUC01 $CHOFER='DRV::NA'< plantilla 1: el chofer del evento
>SCXDRV,,,,,,,U101H,U102H,U103H,U104H,LOG< los 4 eventos con la plantilla 1, números 01 a 04, al logxp ok no puede ser la salida de corte: el login libera el corte y el bip la volvería a activar. Con corte gradual (G), si xp ok es la salida del corte gradual, el bip no se hace.
Chofer por Bluetooth: SCXDRVB
El chofer se identifica con un beacon iBeacon o Eddystone-UID que lleva encima o deja en el vehículo. Se apoya en un slot del BSW: el filtro (UUID, major/minor, distancia) y el tiempo de ausencia se configuran ahí.
>SCXDRVB<slot>,<modo>,<id>,<toggle><
>QCXDRVB< -> >RCXDRVB<slot|->,<modo>,<id>,<toggle><| Campo | Valores | Por defecto | Qué hace |
|---|---|---|---|
slot | 0-3 · - | - | Slot BSW que alimenta al chofer; - apaga |
modo | P · B | P | P presencia, B botón |
id | M · I | M | Código del chofer: M la MAC (12 hex), I el major+minor del iBeacon (8 hex) o la instancia del Eddystone-UID (12 hex) |
toggle | 0 · 1 | 0 | Modo B: volver a apretar hace logout |
Presencia (P) | Botón (B) | |
|---|---|---|
| Login | El BSW engancha el beacon y lo vuelve a ver a los 2 s | Cada vez que el BSW engancha el beacon de nuevo |
| Logout | El BSW lo suelta (su timeout es la ausencia) | Otro login, la retención, CDRV o volver a apretar con toggle=1 |
| ¿Reemplaza a otro chofer? | No: solo entra si no hay chofer, y solo saca al que puso él | Sí |
- Modo botón: iBeacon y Eddystone no tienen un campo de botón. Sirve con beacons que anuncian solo al apretar; el BSW tiene que tener un timeout corto (5-10 s) para soltarlo entre una pulsación y otra.
- Si el login falla (código fuera del listado) o después lo saca otro (
CDRV, la retención), el beacon tiene que irse y volver para un nuevo intento. - Funciona con origen
1y2. Con origen3(solo manual) se ignora. - Solo en equipos con Bluetooth Low Energy. En los demás responde
RCXDRVB,ERR,NOBLE. - Errores:
RCXDRVB,ERR,SLOT,MODO,ID,TOGGLE,CAMPOS.
El BSW engancha el primer beacon que ve, no el más cercano. Filtrar por UUID y distancia, y en lo posible usar lista=1. Con id=M, un beacon que rota la MAC cambia de código: preferir I.
>SBSW01E,FF,E2C56DB5DFFB48D2B060D0F5A71096E0,,,30,2< slot 1: iBeacon con ese UUID, a menos de 2 m, ausencia 30 s
>SCXDRVB1,P,I< presencia; el código es major+minorAcciones: QDRV / SDRV / CDRV
>QDRV< -> >RDRV <código|NA>,<fuente>,<desde>,<estado><
>SDRV <código>< -> login manual, responde como QDRV
>CDRV< -> logout, responde como QDRV (con NA)| Fuente | Significado |
|---|---|
N | Llave iButton |
R | Control RF433 |
S | Manual (SDRV o SIC) |
B | Bluetooth |
T | Tacógrafo |
- | Sin chofer |
| Estado | Significado |
|---|---|
0 | Sin chofer |
1 | Con chofer |
2 | Con chofer, ignición apagada, contando la retención |
3 | Esperando identificación (corre la ventana, aviso activo) |
4 | Corte por salida activo, o pendiente hasta que baje la velocidad. Con H: sin chofer, vehículo deshabilitado o por deshabilitarse |
5 | Corte gradual en curso o completo |
Diagrama de estados
Lo que el diagrama no muestra:
- De 3 se pasa a 4 si
cortees una salida y a 5 si esG; sin corte configurado, al vencer la ventana vuelve a 0. A 2 solo se llega conretenciónmayor a 0. - En 4 la salida se activa recién con el GPS con fix y por debajo de
vel corte; mientras tanto el corte queda pendiente, en el mismo estado. - El corte no se libera al apagar: desde 4 y 5 solo sale un login válido. Si otro libera el corte (
SGCS, la salida a mano), el DRV deja de considerarlo suyo y vuelve a 0. - Un login con otro chofer desde 1 o 2 es un logout del anterior más un login del nuevo: el estado sigue en 1.
- Con
ventanaen 0 no existen 3, 4 ni 5. Conretenciónen 0, al apagar la ignición el chofer se queda (estado 1).
Errores de SDRV:
| Respuesta | Causa |
|---|---|
RDRV,ERR,CODIGO | El código no tiene 1 a 16 caracteres alfanuméricos |
RDRV,ERR,LISTA | lista=1 y el código no está en el listado, o es un código $ |
RDRV,ERR,ORIGEN | El origen es 0 (módulo apagado) |
Con origen 2, SDRV <código> equivale a SIC <código>,S y CDRV equivale a SIC*.
El chofer se guarda en memoria no volátil solo en el login y el logout: sobrevive a un reinicio en pleno viaje sin desgastar la flash. Si el equipo se reinicia con la ignición apagada, la retención vuelve a contar desde el arranque.
Señales para reglas
| Señal | Tipo | Significado |
|---|---|---|
DRV00 | nivel | Hay chofer |
DRV01 | pulso | Login |
DRV02 | pulso | Logout (también al reemplazar un chofer por otro) |
DRV03 | pulso | Código no autorizado (con lista=1) |
DRV04 | pulso | Venció la ventana sin chofer |
En EVAL: DRV(n), por ejemplo 'DRV(0)' vale 1 con chofer.
Las señales existen en todos los modelos, aunque el equipo no tenga lector iButton.
>SRL10E;TRG=DRV01+;ACC={GCP01H}< reporte en cada login
>SRL11E;TRG=DRV03+;ACC={SSSXP0111}< activa la salida XP01 ante una llave no autorizadaToken 'DRV'
En plantillas de reporte (UC), SDA y QDA:
| Token | Con chofer | Sin chofer |
|---|---|---|
'DRV' | el código | vacío |
'DRV::NA' | el código | NA |
'DRV2' | origen 4: la tarjeta del chofer 2 | vacío |
'TCO' | origen 4: estados de trabajo <chofer 1>,<chofer 2> del tacógrafo | vacío (sin TCO1 en los últimos 10 s) |
Estados de 'TCO': 0 descanso · 1 disponible · 2 trabajo · 3 manejo · 6 error · 7 no disponible.
>SUC05 $CHOFER='DRV::NA'<Wialon y Traccar
En modo Wialon IPS, el campo iButton del paquete #D# lleva el código del chofer, o NA sin chofer.
- Wialon: crear en la unidad un sensor de asignación de conductor sobre el parámetro iButton, y cargar en cada conductor el mismo código, con las mismas mayúsculas.
- Traccar: el campo llega como
driverUniqueId; cada cambio genera el eventodriverChanged.
Con la configuración por defecto (SCXDRV1,0,0), lo único que cambia al actualizar es que el campo iButton de Wialon pasa de NA a la última llave leída. Wialon solo lo usa si la unidad tiene configurado el sensor de asignación de conductor.
Módulo TRIP
STPSTARTsin código toma el chofer actual.- Si el viaje arrancó sin chofer, toma el primer login durante el viaje.
- Un cambio de chofer a mitad del viaje no cambia el chofer del viaje. Para separar viajes por chofer:
>SRL12E;TRG=DRV01+;ACC={STPSTOP}{STPSTART}<- Un código cargado a mano (
STPSTART,<código>,STPDRV,<código>) tiene prioridad.
Ejemplos
>SCXDRV1,0,0< iButton, cualquier llave, sin retención (por defecto)
>SCXDRV2,1,60< sesión IC, solo el listado, logout 60 s después de apagar
>SCXDRV3,0,0< solo carga manual (plataforma o SMS)
>SDRV JPEREZ01< login manual
>QDRV< -> >RDRV JPEREZ01,S,111026143022,1<
>CDRV< -> >RDRV NA,-,000000000000,0<Disponible desde la versión 1.09.28 T53; la ventana, el aviso y el corte desde la T54; los reportes automáticos y la confirmación al chofer desde la T56; el chofer por Bluetooth desde la T57; el tacógrafo desde la T58; la habilitación (H) desde la T60.