Control de Acceso Torniquetes

_ Características principales

  • Comunicación cliente-servidor bajo sistema “Polling”.
  • Comunicación cifrada con AES -128 Cipher Block Chaining (CBC).
  • Llave para descifrar 128 bits: (Asignado por el fabricante al momento de la compra).
  • La unidad de almacenamiento proporcionada por el fabricante contiene el Firmware (SKT1.0.92015) necesario para el funcionamiento del sistema, “El desarrollador” NO debe modificar o alterar dicha información
  • Formato de peticiones: JavaScript Object Notation
  • ID único de 32 bits (Asignado por el fabricante).

_ Modulo USR-K3 Multifunctional Serial to Ethernet converter.

Es necesario consultar la hoja de datos del modulo USR-K3 (Multifunctional Serial to Ethernet converter), para su entendimiento, ya que es indispensable para ajustar los requerimientos del servidor.

  • 115200 bps.
  • 8 bits de datos.
  • No paridad
  • 1 bit de STOP

_ Formato de envió de información cifrada a servidor, ejemplo.

F8018B767CDB809CED66FD63E841D604EE6A3F0C5DA313E7198C2C4B5D8ECA98DA39A3EE5E6B4B0D3255BFEF95601890...
  • Bytes 0 – 15 Vector de inicio.
  • Bytes 16 – n-1 mensaje cifrado.
  • Las peticiones se envían en formato Hexadecimal ASCII con cifrado (AES -128 CBC).

    _ Formato de recepción de información cifrada a cliente, ejemplo.

    D63E841F95601880C2CDF631CA98B767CDB4B5D8913807C5DEA3DA39A3E9CEDEE6EE5E6B4B0D3255BFEF60469818F0A0…
  • Bytes 0 – 15 Vector de inicio.
  • Bytes 16 – n-1 mensaje cifrado.
  • El tipo de respuesta debe ser cifrada (AES -128 CBC), en formato Hexadecimal NATIVO, todo el intercambio de información se hará de manera cifrada, los ejemplos que se ofrecen a continuación, fueron previamente descifrados.

    _ Formato para descargar y modificar base de datos comando B0.

    _ Funcionamiento de base de datos.

    Base de datos dividida en grupos, se pueden generar hasta 32 grupos diferentes dentro de la base de datos. Cada grupo puede ser controlado de manera independiente por medio de un identificador, contenido en cada registro, por lo que no es necesario, que al momento del envío inicial la base de datos se encuentre ordenada; El tamaño de los grupos en la base de datos es ilimitada.

    _ Descargar base de datos por primera vez (D = 1).

    Ejemplo formato de envío de datos al servidor:

    {“EID”:”A1B2C3D4”,”CMD”:”B0”,”D”:”01”}-Hexadecimal ASCII.
  • EID = ID única de 32 bits asignada por el fabricante.
  • CMD = Indica que se va a enviar un comando al servidor.
  • D = Con valor de 1, notifica al servidor que se desea descargar la base de datos completa.
  • _ Formato de respuesta para comando B0 (D = 1).
    Ejemplo de respuesta esperada del servidor:

    B0D8F1E2D3C4B5A2B0111B01E2…

    Desglose de trama de datos

    [B0] [D8 F1 E2 D3 C4 B5] [A2 B0 11 1B 01 E2] [Status&IdUsuario6bytesN3] [Status&IdUsuario6bytesN4] [Status&IdUsuario6bytesN5]… [Status&IdUsuario6bytesN80].

    Número mínimo de ID por petición 0 registros, número máximo de ID por petición 80 registros.

    Cuando el número de registros es igual a cero, la respuesta únicamente debe contener el valor del comando “CMD1_SYSTEM_ServerSAEKO”.

    [Byte0] -- > Se envía solo al principio del paquete de datos, notifica al “cliente” la respuesta al comando que corresponde.
    [Byte1] -- > ByteEstado_Usuario1. (Contiene 8 Banderas: MSB - > [Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0] < - LSB).
    [Byte2] -- > ByteId_Usuario1 (MSB).
    [Byte3] -- > ByteId_Usuario1.
    [Byte4] -- > ByteId_Usuario1.
    [Byte5] -- > ByteId_Usuario1.
    [Byte6] -- > ByteId_Usuario1 (LSB).
    [Byte7] -- > ByteEstado_Usuario2.
    [Byte8] -- > ByteId_Usuario2 (MSB).
    .
    .
    .
    [ByteN] -- > ByteId_UsuarioN (LSB).
    
    _ Descargar actualizaciones de base de datos (D = 0).

    Ejemplo formato que llega al servidor: {“EID”:”A1B2C3D4”,”CMD”:”B0”,”D”:”00”}

    Hexadecimal ASCII
    .

    _ Formato de respuesta para el comando B0 (D = 0).

    En esta petición el número de usuarios a modificar, tiene un máximo de 80 registros, el formato de respuesta es igual a D = 0, con la excepción en el byte de Estado donde el bit2 se encuentra en valor 0.

    Respuesta esperada del servidor:

    B0D8F1E2D3C B5A2B0114B15FE…… --- > [B0] [D8 F1 E2 D3 C4 B5] [A2 B0 11 4B 15 FE][…….]

    Hexadecimal NATIVO
    .

    [Byte0] -- > Se envía solo al principio del paquete de datos, notifica al “cliente” la respuesta al comando que corresponde.
    [Byte1] -- > ByteEstado_Usuario1. (Contiene 8 Banderas: MSB - > [Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0] < - LSB).
    [Byte2] -- > ByteId_Usuario1 (MSB).
    [Byte3] -- > ByteId_Usuario1.
    [Byte4] -- > ByteId_Usuario1.
    [Byte5] -- > ByteId_Usuario1.
    [Byte6] -- > ByteId_Usuario1 (LSB).
    [Byte7] -- > ByteEstado_Usuario2.
    [Byte8] -- > ByteId_Usuario2 (MSB).
    .
    .
    .
    [ByteN] -- > ByteId_UsuarioN (LSB).
    

    _ Formato para configuraciones de sistema de control de acceso comando B1.

    _ Ejemplo formato de envío de datos al servidor.
  • {“EID”:”A1B2C3D4”,”CMD”:”B1”}
  • EID = ID única de 32 bits asignada por el fabricante.

    CMD = Indica que se va a enviar un comando al servidor

    Formato de respuestas (Hexadecimal nativo). Respuesta esperada del servidor.

    B1A0AA --- > [B1] [A0] [AA]

    Donde:

    Byte0 --- > Se envía solo al principio del paquete de datos, notifica al “cliente” la respuesta al comando que corresponde (0xB1).

    Byte1 --- > Comando a ejecutar.

    CMD1_TORNIQUETES_SAEKO 0xA0 Apertura de torniquetes. CMD2_TORNIQUETES_SAEKO 0xA1 Cierre de torniquetes. CMD3_TORNIQUETES_SAEKO 0xA2 Sonar una alarma de los torniquetes. CMD4_TORNIQUETES_SAEKO 0xA3 Configurar solo entrada. CMD5_TORNIQUETES_SAEKO 0xA4 Configurar solo salida. CMD6_TORNIQUETES_SAEKO 0xA5 Configurar entrada y salida. CMD7_TORNIQUETES_SAEKO 0xA6 Fijar hora del sistema. CMD8_TORNIQUETES_SAEKO 0xA7 Activar/Desactivar bloqueo temporal.

    Byte2 --- > ID del acceso, numero de acceso que se desea controlar.

    El ID “0xAA” funcionara como Broadcast.

    _ Ejemplo para comandos de control de acceso.
    A0AA - > Apertura general de torniquetes.
    A1AA - > Cerradura general de torniquetes.
    A2AA - > Sonar una alarma de los torniquetes.
    A301 - > Configurar torniquete como solo entrada.
             Dónde: A3 -- > Comando y  01 ID  del torniquete o enviar AA para todos los torniquetes.
    A401 - > Configurar torniquete como solo salida.
             Dónde: A4 -- > Comando y  01 ID  del torniquete o enviar AA para todos los torniquetes.
    A501 - > Configurar torniquete como entrada y salida.
             Dónde: A5 -- > Comando y  01 ID  del torniquete o enviar AA para todos los torniquetes.
    
    _ Formato para fijar la hora del sistema.

    Ejemplo: B1A615061501164402

    [B1] -- >Comando de sistema de control de acceso.
    [A6] -- >Comando hora del Sistema.
    [15] -- >Año en formato BCD.
    [06] -- >Mes en formato BCD.
    [15] -- >Día en formato BCD.
    [01] -- >Día de la semana en formato BCD.
    [16] -- >Hora en formato BCD.
    [44] -- >Minutos en formato BCD.
    [02] -- >segundos en formato BCD.
    
    _ Formato para envío de bloqueo temporal.

    Ejemplo:B1A781-- > bloqueo activado, grupo 1.

    Donde:

    [B1] -- > Comando de sistema de control de acceso.
    [A7] -- > Corresponde al comando para Activar/Desactivar bloqueo temporal.
    [81] -- >
                Bit0: bit de número de grupo. 	(1) (LSB)
                Bit1: bit de número de grupo. 	(0) 
                Bit2: bit de número de grupo. 	(0)
                Bit3: bit de número de grupo. 	(0)
                Bit4: bit de número de grupo. 	(0)
                Bit5: bit de número de grupo. 	(0)
                Bit6: bit de número de grupo. 	(0) (MSB)
                Bit7: Activar (1)/Desactivar (0).	(1) 
    

    _ Formato para envío de hora de acceso y salida de usuarios se hace periódicamente cada 9 usuarios comando B2.

    {“EID”:”A1B2C3D4”,”CMD”:”B2”,”D”:”D8F1E2D3C4B5080615124803020CE2F3E8D4C1B808061510080C0CA1B919A2568708061515480C0CB38494F6C4B50806152156”} --> Hexadecimal ASCII

    Desglose de datos en D -- >D8F1E2D3C4B50806151248 --- > [D8] [F1 E2 D3 C4 B5] [08 06 15 12 48 03] [02]

    Donde:

    [Byte0] -- > Byte Estado.
    [Byte1 Byte2 Byte3 Byte4 Byte5] -- >Bytes para dirección cambian dependiendo del alumno.
    [Byte6]: Contiene el Día en formato BCD (decimal codificado en binario).
    [Byte7]: Contiene el Mes en formato BCD.
    [Byte8]: Contiene el Año en formato BCD.
    [Byte9]: Contiene horas en formato BCD y 24 horas.
    [Byte10]: Contiene minutos en formato BCD.
    [Byte11]: Contiene segundos en formato BCD.
    [Byte12]: Contiene el número del torniquete en formato hexadecimal.
    

    _ Anexo 1

    _ Tipos de formatos utilizados.

    Hexadecimal ASCII:Representación en caracteres imprimibles para un numero hexadecimal.

    Ejemplo: “B0” (Hexadecimal ASCII 2 Bytes) = 0x42 0x30 (Hexadecimal NATIVO 2 Bytes).

    Hexadecimal Nativo:Representación de un numero decimal en su formato hexadecimal, algunos números hexadecimales no son imprimibles como el carácter 0x0D (Enter-retorno de carro).

    Ejemplo: 0xB0 (Hexadecimal NATIVO 1 Byte) = 176.

    _ Byte Estado.
    Bits para generar el byte estado.
    Bit0: Permitir acceso (1) - Acceso restringido (0) (Escritura).
    Bit1: Entrada (“el usuario” se encuentra dentro del inmueble) (1) - Salida (“el usuario” se encuentra fuera del inmueble) (0) (Lectura).
    Bit2: Actualización de nuevo usuario para ser ingresado en la base de datos “solo la primera vez” (1) - modificación de la base de datos (0) (escritura).
    Bit3: LSB (generar 32 opciones, número de grupo) (escritura).
    Bit4: (generar 32 opciones, número de grupo) (escritura).
    Bit5: (generar 32 opciones, número de grupo) (escritura).
    Bit6: (generar 32 opciones, número de grupo) (escritura).
    Bit7: MSB (generar 32 opciones, número de grupo) (escritura).
    
    Ejemplo para generar el Byte Estado.
    Bit0: (1) Permitir acceso.
    Bit1: (0) Salida (“el usuario” se encuentra fuera del inmueble).
    Bit2: (1) Nuevo usuario para ser ingresado en la base de datos.
    Bit3: (0) grupo 12 (LSB). 
    Bit4: (0) grupo 12.
    Bit5: (1) grupo 12.
    Bit6: (1) grupo 12.
    Bit7: (0) grupo 12 (MSB).
    
    Ejemplo:
    Binario: 0b01100101 - Hexadecimal Nativo 0x65.
    
    Bit0: (0) Restringir el acceso.
    Bit1: (0) Salida (“el usuario” se encuentra fuera del inmueble).
    Bit2: (0) modificación de usuario en la base de datos.
    Bit3: (0) grupo 12 (LSB). 
    Bit4: (0) grupo 12.
    Bit5: (1) grupo 12.
    Bit6: (1) grupo 12.
    Bit7: (0) grupo 12 (MSB).
    
    Binario: 0b01100000 - Hexadecimal Nativo 0x60.
    
    Tipos de comandos.
    CMD1_SYSTEM_ServerSAEKO = B0: Actualización y modificación de base de datos.
    CMD2_SYSTEM_ServerSAEKO = B1: Comandos específicos para el sistema de acceso. 
    CMD3_SYSTEM_ServerSAEKO = B2: Notificaciones de horarios de acceso.
    

    Leave a comment

    Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.