Example #1
0
        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.
        }
Example #2
0
        /// <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}");
            }
        }
Example #3
0
        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();
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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));
                    }
                }
            }
        }
Example #7
0
        /// <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}");
                    }
                }
            }
        }
Example #8
0
        /// <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));
                    }
                }
            }
        }