Beispiel #1
0
 /// <summary>
 /// Статус банківського термінала (Очікуєм карточки, Очікуєм підтвердження і ТД)
 /// </summary>
 /// <param name="ww"></param>
 void PosStatus(StatusEquipment ww)
 {
     if (ww is PosStatus status)
     {
         SetStatus?.Invoke(new StatusEquipment(Terminal.ModelEquipment, (int)status.Status, $"{status.TextState} {status.Status}"));
         Debug.WriteLine($"{DateTime.Now} {Terminal.ModelEquipment} {status.TextState} {status.Status}");
     }
 }
Beispiel #2
0
        private void SetStatusInfo()
        {
            int    columnNumber    = GetColumn(CurrentPosition);
            string nameTextBox     = AccessibleDescription;
            string rowNumberString = $"Row: {CurrentLine + 1} Column: {columnNumber + 1}";

            SetStatus?.Invoke(nameTextBox, rowNumberString);
            RefreshUndoRedoButton();
        }
Beispiel #3
0
        public void WriteFlash(Fel fel, byte[] fes, byte[] uboot, UInt32 address, byte[] data, bool verify = true, string what = "NAND")
        {
            var size = data.LongLength;

            size = (size + Fel.sector_size - 1) / Fel.sector_size;
            size = size * Fel.sector_size;
            if (data.LongLength != size)
            {
                var newData = new byte[size];
                Array.Copy(data, newData, data.Length);
                data = newData;
            }


            long maxProgress = (size / 65536) * (verify ? 2 : 1), progress = 0;

            // upload kernel through fel
            fel.WriteFlash(address, data,
                           delegate(Fel.CurrentAction action, string command)
            {
                switch (action)
                {
                case Fel.CurrentAction.WritingMemory:
                    SetStatus?.Invoke("Writing " + what);
                    break;
                }
                progress++;
                SetProgress?.Invoke(Math.Min(progress, maxProgress), maxProgress);
            }
                           );

            if (verify)
            {
                var r = fel.ReadFlash((UInt32)Fel.kernel_base_f, (UInt32)data.LongLength,
                                      delegate(Fel.CurrentAction action, string command)
                {
                    switch (action)
                    {
                    case Fel.CurrentAction.ReadingMemory:
                        SetStatus("Reading " + what);
                        break;
                    }
                    progress++;
                    SetProgress?.Invoke(Math.Min(progress, maxProgress), maxProgress);
                }
                                      );

                if (!data.SequenceEqual(r))
                {
                    throw new Exception("Verify failed for " + what);
                }
            }
        }
Beispiel #4
0
        public void Memboot(byte[] fes, byte[] uboot, byte[] bootImage, Fel.WriteLineHandler writeLineHandler = null)
        {
            var fel = new Fel();

            fel.WriteLine += WriteLine;
            fel.Fes1Bin    = fes;
            fel.UBootBin   = uboot;
            if (!fel.Open())
            {
                throw new Exception("USB Device Not Found");
            }

            var size = CalcKernelSize(bootImage);

            if (size > bootImage.Length || size > Fel.transfer_max_size)
            {
                throw new Exception($"Invalid boot image size: {size}");
            }
            size = (size + Fel.sector_size - 1) / Fel.sector_size;
            size = size * Fel.sector_size;
            if (bootImage.Length != size)
            {
                var newK = new byte[size];
                Array.Copy(bootImage, newK, bootImage.Length);
                bootImage = newK;
            }

            long maxProgress = size / 65536, progress = 0;

            // upload kernel through fel
            fel.WriteMemory(Fel.transfer_base_m, bootImage,
                            delegate(Fel.CurrentAction action, string command)
            {
                switch (action)
                {
                case Fel.CurrentAction.WritingMemory:
                    SetStatus?.Invoke("Uploading boot image");
                    break;
                }
                progress++;
                SetProgress?.Invoke(Math.Min(progress, maxProgress), maxProgress);
            }
                            );

            var bootCommand = string.Format("boota {0:x}", Fel.transfer_base_m);

            RunCommand(fel, bootCommand, true);
        }
Beispiel #5
0
        public void Init(Action <string, string> pSetBarCode, Action <double, bool> pSetWeight, Action <double, bool> pSetControlWeight, Action <StatusEquipment> pActionStatus = null)
        {
            var config = Config("appsettings.json");

            State = eStateEquipment.Init;
            try
            {
                //Scaner
                var ElEquipment = ListEquipment.Where(e => e.Type == eTypeEquipment.Scaner).First();
                switch (ElEquipment.Model)
                {
                case eModelEquipment.MagellanScaner:
                    ElEquipment.Equipment = new MagellanScaner(config, null, pSetBarCode);
                    break;

                case eModelEquipment.VirtualScaner:
                    ElEquipment.Equipment = new VirtualScaner(config, null, pSetBarCode);
                    break;

                default:
                    ElEquipment.Equipment = new Scaner(config);
                    break;
                }
                Scaner = (Scaner)ElEquipment.Equipment;

                //Scale
                ElEquipment = ListEquipment.Where(e => e.Type == eTypeEquipment.Scale).First();
                switch (ElEquipment.Model)
                {
                case eModelEquipment.MagellanScale:
                    ElEquipment.Equipment = new MagellanScale(((MagellanScaner)Scaner).Magellan9300, pSetWeight);
                    break;

                case eModelEquipment.VirtualScale:
                    ElEquipment.Equipment = new VirtualScale(config, null, pSetWeight);
                    break;

                default:
                    ElEquipment.Equipment = new Scale(config);
                    break;
                }
                Scale = (Scale)ElEquipment.Equipment;

                //ControlScale
                ElEquipment = ListEquipment.Where(e => e.Type == eTypeEquipment.ControlScale).First();
                if (ElEquipment.Model == eModelEquipment.ScaleModern)
                {
                    ElEquipment.Equipment = new ScaleModern(config, null, pSetControlWeight);
                }
                else
                {
                    ElEquipment.Equipment = new Scale(config);
                };
                ControlScale = (Scale)ElEquipment.Equipment;

                //Flag
                ElEquipment = ListEquipment.Where(e => e.Type == eTypeEquipment.Signal).First();
                if (ElEquipment.Model == eModelEquipment.SignalFlagModern)
                {
                    ElEquipment.Equipment = new SignalFlagModern(config);
                }
                else
                {
                    ElEquipment.Equipment = new SignalFlag(config);
                }
                Signal = (SignalFlag)ElEquipment.Equipment;

                //Bank Pos Terminal
                foreach (var el in GetBankTerminal)
                {
                    ElEquipment = el;

                    switch (ElEquipment.Model)
                    {
                    case eModelEquipment.Ingenico:
                        ElEquipment.Equipment = new IngenicoH(config, null, PosStatus);
                        break;

                    case eModelEquipment.VirtualBankPOS:
                        ElEquipment.Equipment = new VirtualBankPOS(config, null, PosStatus);
                        break;

                    default:
                        ElEquipment.Equipment = new BankTerminal(config);
                        break;
                    }
                    Terminal = (BankTerminal)ElEquipment.Equipment;
                }

                //RRO
                ElEquipment = ListEquipment.Where(e => e.Type == eTypeEquipment.RRO).First();
                switch (ElEquipment.Model)
                {
                case eModelEquipment.ExellioFP:
                    ElEquipment.Equipment = new Equipments.ExellioFP(config, null);
                    break;

                case eModelEquipment.pRRO_SG:
                    ElEquipment.Equipment = new pRRO_SG(config, null, pActionStatus);
                    break;

                case eModelEquipment.pRRo_WebCheck:
                    ElEquipment.Equipment = new pRRO_WebCheck(config, null, pActionStatus);
                    break;

                case eModelEquipment.Maria:
                    ElEquipment.Equipment = new RRO_Maria(config, null, pActionStatus);
                    break;

                case eModelEquipment.VirtualRRO:
                    ElEquipment.Equipment = new VirtualRRO(config, null, pActionStatus);
                    break;

                default:
                    ElEquipment.Equipment = new Rro(config);
                    break;
                }
                RRO = (Rro)ElEquipment.Equipment;

                State = eStateEquipment.Ok;

                foreach (var el in  ListEquipment)
                {
                    el.Equipment.SetState += (pStateEquipment, pModelEquipment) => { SetStatus?.Invoke(new StatusEquipment()
                        {
                            ModelEquipment = pModelEquipment, State = (int)pStateEquipment, TextState = $""
                        }); };
                }
            }
            catch (Exception e)
            {
                FileLogger.WriteLogMessage($"EquipmentFront Exception => Message=>{e.Message}{Environment.NewLine}StackTrace=>{e.StackTrace}", eTypeLog.Error);
                State = eStateEquipment.Error;
            }
        }