void print(IntPtr sdkContext, BS2Door door) { Console.WriteLine(">>>> Door ID[{0, 10}] name[{1}]", door.doorID, Encoding.UTF8.GetString(door.name).TrimEnd('\0')); Console.WriteLine(" |--entryDeviceID[{0}]", door.entryDeviceID); Console.WriteLine(" |--exitDeviceID[{0}]", door.exitDeviceID); Console.WriteLine(" |--relay[ioDeviceID[{0}] port[{1}]]", door.relay.deviceID, door.relay.port); Console.WriteLine(" |--sensor[ioDeviceID[{0}] port[{1}] switchType[{2}]]", door.sensor.deviceID, door.sensor.port, (BS2SwitchTypeEnum)door.sensor.switchType); Console.WriteLine(" |--exitButton[ioDeviceID[{0}] port[{1}] switchType[{2}]]", door.button.deviceID, door.button.port, (BS2SwitchTypeEnum)door.button.switchType); Console.WriteLine(" |--autoLockTimeout[{0}ms]", door.autoLockTimeout); Console.WriteLine(" |--heldOpenTimeout[{0}ms]", door.heldOpenTimeout); Console.WriteLine(" |--unlockFlags[{0}]", (BS2DoorFlagEnum)door.unlockFlags); Console.WriteLine(" |--lockFlags[{0}]", (BS2DoorFlagEnum)door.lockFlags); Console.WriteLine(" |--alarmFlags[{0}]", (BS2DoorAlarmFlagEnum)door.unconditionalLock); Console.WriteLine(" |--forcedOpenAlarm"); for (int idx = 0; idx < BS2Envirionment.BS2_MAX_FORCED_OPEN_ALARM_ACTION; ++idx) { BS2ActionTypeEnum actionType = (BS2ActionTypeEnum)door.heldOpenAlarm[idx].type; Console.WriteLine(" | |--ID[{0}] Type[{1}] {2}", door.heldOpenAlarm[idx].deviceID, (BS2ActionTypeEnum)door.heldOpenAlarm[idx].type, Util.getActionMsg(door.forcedOpenAlarm[idx])); } Console.WriteLine(" |--heldOpenAlarm"); for (int idx = 0; idx < BS2Envirionment.BS2_MAX_HELD_OPEN_ALARM_ACTION; ++idx) { BS2ActionTypeEnum actionType = (BS2ActionTypeEnum)door.heldOpenAlarm[idx].type; Console.WriteLine(" | |--ID[{0}] Type[{1}] {2}", door.heldOpenAlarm[idx].deviceID, (BS2ActionTypeEnum)door.heldOpenAlarm[idx].type, Util.getActionMsg(door.heldOpenAlarm[idx])); } Console.WriteLine(" |--dualAuthScheduleID[{0}]", door.dualAuthScheduleID); Console.WriteLine(" |--dualAuthDevice[{0}]", door.dualAuthDevice); Console.WriteLine(" |--dualAuthApprovalType[{0}]", (BS2DualAuthApprovalEnum)door.dualAuthApprovalType); Console.WriteLine(" |--dualAuthTimeout[{0}ms]", door.dualAuthTimeout); if (door.numDualAuthApprovalGroups > 0) { Console.WriteLine(" |--dualAuthApprovalGroupID"); for (int idx = 0; idx < door.numDualAuthApprovalGroups; ++idx) { Console.WriteLine(" | |--dual auth approval group id[{0}]", door.dualAuthApprovalGroupID[idx]); } } }
public static string getActionMsg(BS2Action action) { BS2ActionTypeEnum actionType = (BS2ActionTypeEnum)action.type; switch (actionType) { case BS2ActionTypeEnum.NONE: return("Not specified"); case BS2ActionTypeEnum.RELAY: { BS2RelayAction relay = Util.ConvertTo <BS2RelayAction>(action.actionUnion); return(String.Format("RelayAction relayIndex[{0}] signalID[{1}] count[{2}] onDuration[{3}ms] offDuration[{4}ms] delay[{5}ms]", relay.relayIndex, relay.signal.signalID, relay.signal.count, relay.signal.onDuration, relay.signal.offDuration, relay.signal.delay)); } case BS2ActionTypeEnum.TTL: { BS2OutputPortAction outputPort = Util.ConvertTo <BS2OutputPortAction>(action.actionUnion); return(String.Format("OutputPortAction relayIndex[{0}] signalID[{1}] count[{2}] onDuration[{3}ms] offDuration[{4}ms] delay[{5}ms]", outputPort.portIndex, outputPort.signal.signalID, outputPort.signal.count, outputPort.signal.onDuration, outputPort.signal.offDuration, outputPort.signal.delay)); } case BS2ActionTypeEnum.DISPLAY: { BS2DisplayAction display = Util.ConvertTo <BS2DisplayAction>(action.actionUnion); return(String.Format("DisplayAction displayID[{0}] resourceID[{1}] delay[{2}ms]", display.displayID, display.resourceID, display.duration)); } case BS2ActionTypeEnum.SOUND: { BS2SoundAction sound = Util.ConvertTo <BS2SoundAction>(action.actionUnion); return(String.Format("SoundAction soundIndex[{0}] count[{1}]", sound.soundIndex, sound.count)); } case BS2ActionTypeEnum.LED: { BS2LedAction led = Util.ConvertTo <BS2LedAction>(action.actionUnion); string ledSignalStr = ""; for (int idx = 0; idx < BS2Environment.BS2_LED_SIGNAL_NUM; ++idx) { ledSignalStr += String.Format("[color[{0}] duration[{1}ms] delay[{2}ms]]", (BS2LedColorEnum)led.signal[idx].color, led.signal[idx].duration, led.signal[idx].delay); if (idx + 1 < BS2Environment.BS2_LED_SIGNAL_NUM) { ledSignalStr += ", "; } } return(String.Format("LedAction count[{0}] {1}", led.count, ledSignalStr)); } case BS2ActionTypeEnum.BUZZER: { BS2BuzzerAction buzzer = Util.ConvertTo <BS2BuzzerAction>(action.actionUnion); string buzzerSignalStr = ""; for (int idx = 0; idx < BS2Environment.BS2_BUZZER_SIGNAL_NUM; ++idx) { buzzerSignalStr += String.Format("[tone[{0}] fadeout[{1}] duration[{2}ms] delay[{3}ms]]", (BS2BuzzerToneEnum)buzzer.signal[idx].tone, Convert.ToBoolean(buzzer.signal[idx].fadeout), buzzer.signal[idx].duration, buzzer.signal[idx].delay); if (idx + 1 < BS2Environment.BS2_BUZZER_SIGNAL_NUM) { buzzerSignalStr += ", "; } } return(String.Format("BuzzerAction count[{0}] {1}", buzzer.count, buzzerSignalStr)); } case BS2ActionTypeEnum.LIFT: { BS2LiftAction lift = Util.ConvertTo <BS2LiftAction>(action.actionUnion); return(String.Format("LiftAction deviceID[{0}] type[{1}]", lift.liftID, (BS2LiftActionTypeEnum)lift.type)); } default: return("Not implemented yet."); } }