Esta función pertenece a una serie de funciones que permiten desde la web imitar el funcionamiento del CCC.
Esta función devuelve en profundidad datos sobre el estado de habilitación exacto de una PC, tiene más datos de los que tal vez se necesiten para el proyecto web promedio.
RegStatus en combinación con RegAction devuelve lo que está haciendo la PC en forma de máscara de bits, donde cada bit del valor numérico cobra un significado, ejemplo: (RegStatus & 6) == 6 = Modo mantenimiento, por que el bit 1 y el bit 2 están establecidos en 1. Pero si (RegStatus & 6 ) == 0 = Generalmente deshabilitado, se tendrá que recurrir a lo que dice RegAction para saber si realmente está deshabilitado y está en proceso de pre-habilitación (Ej. cuando se espera que la PC encienda y se ponga online, el tiempo no arrancará hasta entonces).
Si está en mantenimiento entonces las variables “RegMaintainceByAccountName” toma relevancia, indica quién la puso en mantenimiento, pero tiene doble propósito, si no está en mantenimiento y tiene una habilitación de caja, indica cual empleado la habilitó, de todos modos tiene un formato especial, no es tan simple (copy / past del código fuente).
‘ RegMaintainceByAccountName: nombre de cuenta que abrió el puesto en modo mantenimiento.
SourceCode.
‘ // También se usa para indicar el cajero que habilitó el puesto al cliente cuando no está en modo mantenimiento //.
‘ // Formato: Nombre de cuenta [ NullChar Atributos ]: Usos de Attributos == 1, habilitado por cajero con limitación a 1 solo mantenimiento simultáneo. Si atributo == 0, no se agrega. Corchetes indica que es opcional, puede estar, puede no estar.
RegType es útil para saber si una PC es STAFF , tiene otros datos que son relevantes si no es una PC y está registrada como una consola, Ejemplo: ( RegType & 0x2000 ) == 0 es PC cliente normal, caso contrario, es PC staff.
RegBlockingString es relevante solamente cuando es una habilitación desde cuenta en tiempo FIJO, e indica como están posicionados los bloques de tiempos, indicando en cada bloque, si es guardable, si no es guardable, si da puntajes, etc.
Su formato es un array de valores strings separado por NullChar donde cada valor empieza con un carácter donde el número de carácter indica el atributo seguido por la cantidad numérica de minutos que tiene el bloque. Ejemplo: @120 NullChar A60 NullChar B60. El valor ASCI del primer carácter en su valor numérico bit 0 indica si es tiempo bloqueado o no bloqueado, el bit 1 indica si ese bloque q dará puntaje, el bit 2 indica si ese bloque está superbloqueado (ejemplo: cuando pertenece a un bono FullDay que no guarda tiempo aún cuando el empleado y/o política configurada indique que debe guardarlo).
RegComplexTotal es relevante cuando en (RegStatus & 0x4000) == 0x4000 se indica que para calcular el total a cobrar por el cajero (tiempos de caja), es un precio total complejo, por ej., cuando el precio está compuesto por habilitaciones y añadiduras de tiempo de la misma fuente o distintas formas combinadas de agregar tiempo fijos.
RegCurrentAccountName indica la cuenta que consume actualmente en la PC, y solo es relevante si en (RegStatus & 0x20) == 0x20 , ya que ese bit debe estar activado para señalar que hay un consumo de cuenta, y por lo tanto RegCurrentAccountName es relevante.
RegToOpenWithAccountName indica la cuenta que puso una reserva inmediata en dicha PC (reserva al finalizar el consumo actual), y solo es relvante si (RegStatus & 8) == 8, ya que de lo contrario no hay reserva inmediata y cualquiera puede habilitar la PC.
Si la PC tiene un detalle técnico y alguien puso una marcación de detalle técnico, RegMarkedByAccountName indicará quien puso el detalle, y RegCause indicará el comentario de qué problema tiene la PC, estas variables son relevante solo sí (RegStatus & 0x80) == 0x80.
Otros bits relevantes de RegStatus, RegType y RegAction (Copy/Past):
' ************************************************************ ' * RegStatus * ' ************************************************************ ' * A los efectos del desplazamiento de usuarios. * ' * U/M = Propiedades de: (U = status usuario, * ' * M = status machine). * ' ************************************************************ ' * M bit0 = 0 desconectado. * ' * 1 conectado. * ' * U bit21= 00 PC-Puesto sin uso. * ' * 01 Consumiendo en modalidad libre. * ' * 10 Consumiendo prepago. * ' * 11 Puesto Bloqueado o mantenimiento. * ' * M bit3 = 0 Cualquier cuenta puede abrir el puesto. * ' * = 1 Solo la cuenta especificada lo abre. * ' * U bit4 = 0 Filtro porno habilitado. * ' * = 1 Filtro porno deshabilitado. * ' * U bit5 = 0 El consumo, no está asociado a una cuenta. * ' * = 1 El consumo, está asociado a una cuenta. * ' * (Con los fines de poder guardar el tiempo y * ' * consumir en modalidad libre.) * ' * U bit6 = 1 El usuario pide asistencia. * ' * M bit7 = 1 El puesto fue marcado por un operador o * ' * gerente, (Alguien informa que tiene un * ' * problema, quedará marcado hasta que lo * ' * desmarquen). * ' * - bit8 = 1 El servidor no está regularizado, StandBy. * ' * (todos los demás estados no tienen efecto). * ' * (Se usa solo para transmisión a los relojes).* ' * U bit9 = 1 El usuario asociado tiene un KIT. * ' * M bit10= 1 Habilitado el detector anti-robo. * ' * M bit11= 1 Alarma anti-robo sonando actualmente. * ' * U bit12= 1 Filtro porno semi-habilitado. * ' * M bit13= 1 Hay impresiones en espera para imprimirlas. * ' * U bit14= 1 Es tiempo fijo compuesto o de bono. * ' * M bit15= 1 Tiene cuenta Game Mgmt Client en uso. * ' * U bit16= 1 Es tiempo fijo postpago. * ' * U bit17= 1 Es consumo de bono lockeante. * ' * U bit18= 1 Es consumo de bono daypass (bloqueado o no). * ' * U bit19= 1 Está activo el modo ME FUI AL BAÑO. * ' * U bit20= 1 Tiene que cubrir la pantalla en un fijo * ' * no finalizado. * ' * M bit21= 1 PC sospechada de haber sido abandonada. * ' ************************************************************ ' ************************************************************************* ' * RegAction * ' * = 0 Nada. * ' * = 1 Habilitar tiempo libre (establecer StartTime = Now) * ' * = 2 Habilitar prepago (además LimitTime=StartTime+RegActionTime) * ' * = 3 El último consumo fue tiempo libre. * ' * = 4 El último consumo fue prepago. * ' * = 5 La última apertura fue por mantenimiento. * ' * = 6 Tiempo fijo de caja finalizado sin cerrarse por política activa. * ' ************************************************************************* ' Datos extras necesarios para el soporte a consolas. ' ***************************************************************** ' * RegType * ' * bit 0 = 0 Tipo normal (PC o dispositivo con cliente remoto). * ' * bit 0 = 1 Tipo manual (consola u otro elementos sin software).* ' * bit 3-1 = Valor de 0 a 7 indicando el número de joypad, etc. * ' * bit 4 = Registrar automáticamente la entrega del kit. * ' * bit 5 = Exigir deshabilitación manual (cuando no hay hardware * ' * de bloqueo dedicado instalado). * ' * bit 11-6 = Valor de 0 a 63 indicando el número de consola. * ' * bit 12 = No permite que operador/gerente desact. la chicharra.* ' * RegTypeData = Nombre del driver ejecutable a utilizar. * ' * bit 13 = 1 Este CCClient ofrece servicios solamente al staff. * ' * bit 14 = 1 Este CCClient es un punto de caja +BUFFET. * ' *****************************************************************
Minimum version for the target server required: v17.4.3.
Input parameters:
- CommandClass = _CCCGETSTATUS.
- Param1 = target CyberName.
- Param3 = PCNameID.
[{“ResponseClass”: “ERROR”, “Param1”: “message”, … }]
[{“ResponseClass”: “STATUSTIME”, “Param1”: “PCNameID + NullChar + RegStatus + NullChar + RegAction + NullChar + RegActionTimeInMinutesCount” , “Param2”: “RegStartTime”, “Param3”: “RegLimitTime”, “Param4”: “ActualServerNowTime” }]
[{“ResponseClass”: “STATUSINFO”, “Param1”: “PCNameID + NullChar + RegCurrentAccountName”, “Param2”: “RegToOpenWithAccountName”, “Param3”: “RegMaintainceByAccountName”, “Param4”: “RegMarkedByAccountName + NullChar + RegCause”}]
[{“ResponseClass”: “STATUSAUX”, “Param1”: “PCNameID”, “Param2”: “RegType”, “Param3”: “RegBlockingString”, “Param4”: “RegComplexTotal” }]
[{“ResponseClass”: “OK”}]
Example of usage:
Pide información sobre el estado de la PC01 en el establecimiento flulpycrea.