private static void GetSupplies() { var input = new WaitForStatus2Input { maxSeconds = 20, matchConditionClient = MyClientID, matchConditionJobId = jobID, minConditionSeverity = ConditionSeverity.Notice, includeConditions = true, includeCounters = true, includeJobQueue = false, includeNetworkAdapters = false, includeSensors = true, includeSettings = true, includeSupplies = true, includeTunnels = false }; input.minConditionMarker = currentConditionMarker; var output = dpcl2Client.WaitForStatus2(input); uint foilRemainingPercent = output.status.supply.FirstOrDefault(x => x.module == "Embosser-TopperFoil").percentRemain; Console.WriteLine("Foil remaining: " + foilRemainingPercent); // output.status.supply. }
/// <summary> /// Gets the last job identifier. /// </summary> /// <returns>The last job ID</returns> private static void GetData() { var status = dpcl2Client.DiscoverPrinter( new DiscoverPrinterInput { includeActions = true }); Console.WriteLine($"Model: {status.model}"); var statusIn = new WaitForStatus2Input { includeConditions = true, includeCounters = false, includeJobQueue = true, includeNetworkAdapters = false, includeSensors = false, includeSettings = true, includeSupplies = false, includeTunnels = false, matchConditionClient = null, matchConditionJobId = 0 }; var statusOut = dpcl2Client.WaitForStatus2(statusIn); var v1 = statusOut?.status?.settingsGroup?.FirstOrDefault(x => x.name == "Factory"); var v2 = v1?.module.FirstOrDefault(x => x.name == "D1")?.subsystem.FirstOrDefault(y => y.name == "Options"); foreach (var vv in v2.element) { Console.WriteLine($"{vv.name}: {vv.value}"); } }
private void Park() { var parameters = new List <Parameter>(); parameters.Add(new Parameter { name = "PageNumber", value = "1" }); parameters.Add(new Parameter { name = "ParkPosition", value = "Smartcard" }); // To perform any kind of action, we need to call the SubmitAction method SubmitAction("Park", parameters.ToArray()); var input = new WaitForStatus2Input { maxSeconds = 20, matchConditionClient = ClientId, matchConditionJobId = JobId, minConditionSeverity = ConditionSeverity.Notice, includeConditions = true, includeCounters = false, includeJobQueue = false, includeNetworkAdapters = false, includeSensors = false, includeSettings = false, includeSupplies = false, includeTunnels = false }; WaitForActionCompletion(); }
private uint GetNewJobID() { var statusIn = new WaitForStatus2Input { includeConditions = false, includeCounters = false, includeJobQueue = true, includeNetworkAdapters = false, includeSensors = false, includeSettings = false, includeSupplies = false, includeTunnels = false, matchConditionClient = null, matchConditionJobId = 0 }; var statusOut = dpcl2Client.WaitForStatus2(statusIn); if (statusOut.status.job == null) { return(100); } return(statusOut.status.job .Select(a => a.id) .DefaultIfEmpty((uint)100) .Max() + 1); }
public override int FindHopper(int[] hoppers) { var input = new WaitForStatus2Input { maxSeconds = 20, matchConditionClient = ClientId, matchConditionJobId = JobId, minConditionSeverity = ConditionSeverity.Notice, includeSensors = true, includeSettings = true }; var output = dpcl2Client.WaitForStatus2(input); string kioskSupport = output?.status?.settingsGroup?.FirstOrDefault(y => y.name == "Group01")?.module.FirstOrDefault(z => z.name == "D1")?.subsystem.FirstOrDefault(w => w.name == "Options")?.element.FirstOrDefault(u => u.name == "EmbossModuleKioskSupport")?.value; isKiosk = (kioskSupport.ToLower() == "enabled"); foreach (int n in hoppers) { string val = ""; if (deviceType == ProcardWPF.DeviceType.Sigma) { val = output?.status?.sensor?.FirstOrDefault(x => x.name == $"Printer-Card{n}Present")?.value; } else { val = output?.status?.sensor?.FirstOrDefault(x => x.name == $"Hopper-Card{n}Present")?.value; } if (val == "1") { HopperID = n; return(n); } } return(-1); }
private void WaitForActionCompletion() { var input = new WaitForStatus2Input { maxSeconds = 20, matchConditionClient = ClientId, matchConditionJobId = JobId, minConditionSeverity = ConditionSeverity.Notice, includeConditions = true, includeCounters = false, includeJobQueue = false, includeNetworkAdapters = false, includeSensors = false, includeSettings = false, includeSupplies = false, includeTunnels = false }; int i = 0; uint currentConditionMarker = 0; while (true) { input.minConditionMarker = currentConditionMarker; var output = dpcl2Client.WaitForStatus2(input); currentConditionMarker = output.nextConditionMarker; if (output.status.condition == null) { continue; } foreach (var c in output.status.condition.Where(c => c.client == ClientId)) { if (c.code == 6) { return; } switch (c.severity) { case ConditionSeverity.Notice: break; default: throw new Exception(GetErrorMessage(c.code)); } } } }
/// <summary> /// Waits for the job completion. /// </summary> private static void WaitForCompletion() { var input = new WaitForStatus2Input { maxSeconds = 20, matchConditionClient = MyClientID, matchConditionJobId = jobID, minConditionSeverity = ConditionSeverity.Notice, includeConditions = true, includeCounters = false, includeJobQueue = false, includeNetworkAdapters = false, includeSensors = false, includeSettings = false, includeSupplies = true, includeTunnels = false }; while (true) { input.minConditionMarker = currentConditionMarker; var output = dpcl2Client.WaitForStatus2(input); currentConditionMarker = output.nextConditionMarker; //0 582 if (output.status.condition == null) { continue; } foreach (var c in output.status.condition.Where(c => c.client == MyClientID)) { if ((c.code == 0) || (c.code == 1)) { return; } switch (c.severity) { case ConditionSeverity.Notice: break; default: throw new Exception($"Printer error code {c.code}"); } } } }
/// <summary> /// Waits for the job completion. /// </summary> private void WaitForCompletion() { var input = new WaitForStatus2Input { maxSeconds = 2, matchConditionClient = ClientId, matchConditionJobId = JobId, minConditionSeverity = ConditionSeverity.Notice, includeConditions = true, includeCounters = false, includeJobQueue = false, includeNetworkAdapters = false, includeSensors = false, includeSettings = false, includeSupplies = true, includeTunnels = false }; uint currentConditionMarker = 0; uint? startConditionMarker = null; DateTime startTime = DateTime.Now; int countWait = 0; while (true) { if ((DateTime.Now - startTime).Seconds > 15) { LogClass.WriteToLog($"CardId = {cardId}, Printer = {printerName}, WaitForCompletion, ~15 sec passed"); startTime = DateTime.Now; countWait++; } if (countWait > 20) { throw new Exception($"CardId = { cardId }, Printer = { printerName}, WaitForCompletion, Error = too long"); } input.minConditionMarker = currentConditionMarker; var output = dpcl2Client.WaitForStatus2(input); currentConditionMarker = output.nextConditionMarker; if (startConditionMarker == null) { startConditionMarker = currentConditionMarker; } //LogClass.WriteToLog($"{currentConditionMarker}"); if (isKiosk && (currentConditionMarker - startConditionMarker) >= 6) { SendMessage(MessageType.CompleteStep, $"dispense:{cardId}"); } if (output.status.condition == null) { continue; } foreach (var c in output.status.condition.Where(c => c.client == ClientId)) { LogClass.WriteToLog($"CardId = {cardId}, Printer = {printerName}, WaitForCompletion = {c.code}"); if ((c.code == 0) || (c.code == 1)) { return; } switch (c.severity) { case ConditionSeverity.Notice: break; default: //break; throw new Exception(GetErrorMessage(c.code)); } } } }