Ejemplo n.º 1
0
        /// <summary>
        /// Used to print over the voucher image
        /// </summary>
        /// <returns></returns>
        public static VoucherProcessDelegate CreatePrintOnImageDelegate()
        {
            var method = new VoucherProcessDelegate((Voucher data, StateObj state) =>
            {
                var printLocation = SettingsTable.Get <Point>(Strings.VScan_PrintAreaLocation, Point.Empty);
                if (printLocation == Point.Empty)
                {
                    var ex = new ApplicationException("Cannot find 'print on image' configuration.");
                    ex.AddNext(new MethodInvoker(() =>
                    {
                        string id    = Strings.VScan_EditItem.Uniqueue();
                        data.Message = ex.Message;
                        DataSlot.Set(id, data);
                        WinMsg.SendText(state.Scan, state.Main, id);
                    }));
                    throw ex;
                }

                var aliases           = new Hashtable(StringComparer.InvariantCultureIgnoreCase);
                aliases["[DATE]"]     = new Func <string>(() => DateTime.Now.ToString());
                aliases["[OPERATOR]"] = new Func <string>(() => SettingsTable.Get <UserAuth>(Strings.Transferring_AuthObject, UserAuth.Default).Name);
                aliases["[PCNAME]"]   = new Func <string>(() => PTFUtils.GetMachine());
                aliases["[SITEID]"]   = new Func <string>(() => data.SiteCode);
                aliases["[NUMBER]"]   = new Func <string>(() => Convert.ToString(SettingsTable.Get <int>(Strings.VScan_ScanCount, 0)));

                string voucherTemplate = SettingsTable.Get <string>(Strings.VScan_ImPrinterTemplate, Strings.VScan_ImPrinterTemplateDefault);
                string voucherText     = voucherTemplate.format(aliases);

                using (var g = Graphics.FromImage(data.VoucherImage))
                    g.DrawString(voucherText, SystemFonts.CaptionFont, Brushes.Red, printLocation);
            });

            return(method);
        }
Ejemplo n.º 2
0
 public static void Stop()
 {
     if (ms_This != IntPtr.Zero)
     {
         WinMsg.SendText(ms_This, Strings.VScan_SinglentonFormClose);
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Used to find and cover the cardcode by using the barcode location
        /// </summary>
        /// <returns></returns>
        public static VoucherProcessDelegate CreateHideCardDetailsDelegateByBarcode()
        {
            var method = new VoucherProcessDelegate((Voucher data, StateObj state) =>
            {
                var distanceToHiddenArea = SettingsTable.Get <Point>(Strings.VScan_DistanceFromBarcodeBottomLeftToHiddenArea, Point.Empty);
                if (distanceToHiddenArea == Point.Empty)
                {
                    var ex = new ApplicationException("Cannot find chunk configuration.");
                    ex.AddNext(new MethodInvoker(() =>
                    {
                        string id    = Strings.VScan_EditItem.Uniqueue();
                        data.Message = ex.Message;
                        DataSlot.Set(id, data);
                        WinMsg.SendText(state.Scan, state.Main, id);
                    }));
                    throw ex;
                }

                Size hideAreaSize        = SettingsTable.Get <Size>(Strings.VScan_HiddenAreaSize, Size.Empty);
                Point hiddenAreaLocation = new Point(data.BarCodeArea.Left, data.BarCodeArea.Bottom);

                hiddenAreaLocation.Offset(distanceToHiddenArea);
                Rectangle hiddenArea = new Rectangle(hiddenAreaLocation, hideAreaSize);

                var hiddenAreaDraw = SettingsTable.Get <HiddenAreaDrawingCfg>(Strings.VScan_HiddenAreaDrawingCfg, HiddenAreaDrawingCfg.Default);

                using (var g = Graphics.FromImage(data.VoucherImage))
                    g.FillRectangleHatch(hiddenArea, hiddenAreaDraw.ForeColor, hiddenAreaDraw.BackColor, hiddenAreaDraw.Style);
            });

            return(method);
        }
Ejemplo n.º 4
0
 public static void Stop()
 {
     if (ms_This != IntPtr.Zero)
     {
         WinMsg.SendText(ms_This, Strings.VScan_DesktopUnlock);
     }
 }
Ejemplo n.º 5
0
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
            case user32.WM_COPYDATA:
            {
                string text = WinMsg.ReceiveText(m.LParam);
                if (text.CompareNoCase(Strings.VScan_DesktopUnlock))
                {
                    DialogResult = DialogResult.OK;
                    if (Unlocked != null)
                    {
                        Unlocked(this, EventArgs.Empty);
                    }
                    ms_Thread = null;
                    ms_This   = IntPtr.Zero;
                    Application.ExitThread();
                }
                else
                {
                    Message = text;
                    Invalidate();
                }
            }
            break;

            default:
                base.WndProc(ref m);
                break;
            }
        }
Ejemplo n.º 6
0
        private void dealWinMsg(WindowsBase topWin, WinMsg msg)
        {
            switch (msg)
            {
            case WinMsg.Show:
                topWin.OnShow();
                topWin.CanvasGroup.interactable = true;
                topWin.OnResume();
                break;

            case WinMsg.Hide:
                topWin.CanvasGroup.interactable = false;
                topWin.OnPause();
                topWin.OnHide();
                break;

            case WinMsg.Pause:
                topWin.CanvasGroup.interactable = false;
                topWin.OnPause();
                break;

            case WinMsg.Resume:
                topWin.CanvasGroup.interactable = true;
                topWin.OnResume();
                break;

            case WinMsg.Destroy:
                topWin.OnDestroy();
                break;
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Used to find and cover the card code by a mark on the voucher image
        /// </summary>
        /// <returns></returns>
        public static VoucherProcessDelegate CreateHideCardDetailsDelegateByMark()
        {
            var method = new VoucherProcessDelegate((Voucher data, StateObj state) =>
            {
                var markArea = SettingsTable.Get <MarkAreaCfg>(Strings.VScan_MarkAreaConfiguration, MarkAreaCfg.Empty);

                if (markArea.Equals(MarkAreaCfg.Empty))
                {
                    var ex = new ApplicationException("Cannot find 'hide area' configuration.");
                    ex.AddNext(new MethodInvoker(() =>
                    {
                        string id    = Strings.VScan_EditItem.Uniqueue();
                        data.Message = ex.Message;
                        DataSlot.Set(id, data);
                        WinMsg.SendText(state.Scan, state.Main, id);
                    }));
                    throw ex;
                }

                Rectangle hiddenArea;

                using (var bmp2 = data.VoucherImage.ToBlackWhite(markArea.BlackWhiteThreshold))
                    hiddenArea = bmp2.FindRectangle(Point.Empty, markArea.BackColor, markArea.MinAreaSize, markArea.MaxAreaSize, markArea.Threshold);

                var hiddenAreaDraw = SettingsTable.Get <HiddenAreaDrawingCfg>(Strings.VScan_DistanceFromBarcodeBottomLeftToHiddenArea, HiddenAreaDrawingCfg.Default);

                using (var g = Graphics.FromImage(data.VoucherImage))
                    g.FillRectangleHatch(hiddenArea, hiddenAreaDraw.ForeColor, hiddenAreaDraw.BackColor, hiddenAreaDraw.Style);
            });

            return(method);
        }
Ejemplo n.º 8
0
 /// <summary>
 /// Shows image on monitor if its open
 /// </summary>
 /// <param name="name"></param>
 public static void ShowImage(string name)
 {
     if (ms_This != IntPtr.Zero)
     {
         WinMsg.SendText(ms_This, name);
     }
 }
Ejemplo n.º 9
0
 /// <summary>
 /// 设置鼠标的位置
 /// </summary>
 /// <param name="x">x坐标</param>
 /// <param name="y">y坐标</param>
 /// <param name="msg">操作内容</param>
 public int MouseHandle(WinMsg msg, int x, int y)
 {
     if (!this)
     {
         return(-1);
     }
     return(WindowHelp.MouseHandle(IntPtr, msg, x, y));
 }
Ejemplo n.º 10
0
 public void PostMessage(WinMsg msg, int wParam = 0, int lParam = 0)
 {
     if (!this)
     {
         return;
     }
     WindowHelp.PostMessage(IntPtr, msg, wParam, lParam);
 }
Ejemplo n.º 11
0
        public static void SendWindowMessage(string winName, string metho, object param)
        {
            WinMsg wm = new WinMsg();

            wm.winName = winName;
            wm.metho   = metho;
            wm.param   = param;
            EventMgr.single.SendEvent("Window", wm);
        }
Ejemplo n.º 12
0
        public void ShowMsg(string msg, int type)
        {
            var winMsg = new WinMsg(msg, type)
            {
                Owner = this, Topmost = true
            };

            winMsg.Show();
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Used to insert voucher data to the database
        /// </summary>
        /// <returns></returns>
        public static VoucherProcessDelegate CreateInsertVoucherDelegate()
        {
            var method = new VoucherProcessDelegate((Voucher data, StateObj state) =>
            {
                Debug.Assert(state.Dib != IntPtr.Zero);
                Debug.Assert(state.Main != IntPtr.Zero);
                Debug.Assert(state.Scan != IntPtr.Zero);
                Debug.Assert(data != null);

                try
                {
                    data.Validate();

                    ClientDataAccess.UpdateFileAsync((DbClientVoucher)data,
                                                     new EventHandler((o, e) =>
                    {
                        string fileName = Path.ChangeExtension(
                            string.Format("{0}{1}", PTFUtils.GetMachine(), DateTime.Now).ReplaceAll(new char[] { '.', '/', '\\', '-' }, '_'), ".xml");

                        //Data has been saved successfully. Show message
                        string id = string.Concat(Strings.VScan_ItemSaved, fileName);
                        DataSlot.Set(id, data);
                        WinMsg.SendText(state.Main, id);
                    }),
                                                     new ThreadExceptionEventHandler((o, e) =>
                    {
                        //Data has failed to save.
                        var ex = new ApplicationException("Can't insert: ".concat(e.Exception.Message), e.Exception);
                        ex.AddNext(new MethodInvoker(() =>
                        {
                            string id    = Strings.VScan_EditItem.Uniqueue();
                            data.Message = ex.Message;
                            DataSlot.Set(id, data);
                            WinMsg.SendText(state.Scan, state.Main, id);
                        }));
                        throw ex;
                    }));
                }
                catch (Exception e)
                {
                    var ex = new ApplicationException("Err: ".concat(e.Message), e);
                    ex.AddNext(new MethodInvoker(() =>
                    {
                        string id    = Strings.VScan_EditItem.Uniqueue();
                        data.Message = ex.Message;
                        DataSlot.Set(id, data);
                        WinMsg.SendText(state.Main, id);
                    }));
                    throw ex;
                }
            });

            return(method);
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Send data to UI editor directly
        /// </summary>
        /// <returns></returns>
        public static VoucherProcessDelegate CreateSendToUIDelagete()
        {
            var method = new VoucherProcessDelegate((Voucher data, StateObj state) =>
            {
                string id    = Strings.VScan_EditItem.Uniqueue();
                data.Message = "Insert data to db is switched off";
                DataSlot.Set(id, data);
                WinMsg.SendText(state.Scan, state.Main, id);
            });

            return(method);
        }
Ejemplo n.º 15
0
        public bool PreFilterMessage(ref Message m)
        {
            TwainCommand cmd = m_twain.PassMessage(ref m);

            if (cmd == TwainCommand.Not)
            {
                return(false);
            }

            switch (cmd)
            {
            case TwainCommand.TransferReady:
            {
                bool status = m_twain.TransferPictures(VoucherData);
                if (status)
                {
                    AcquireVoucher(true);
                }
                else
                {
                    m_twain.CloseDS();
                    m_twain.CloseDSM();
                    Close();
                }
                break;
            }

            case TwainCommand.CloseRequest:
            {
                m_twain.CloseDS();
                m_twain.CloseDSM();
                Close();
                break;
            }

            case TwainCommand.CloseOk:
            {
                WinMsg.SendText(m_MainFormHandler, Strings.VScan_ScanIsDoneEvent);
                Close();
                break;
            }

            case TwainCommand.DeviceEvent:
                break;

            default:
                break;
            }

            return(true);
        }
Ejemplo n.º 16
0
 public void PopWindow(WinMsg msg)
 {
     if (winStack.Count > 0)
     {
         GameObject.Destroy(winStack.Last().gameObject);
         winStack.RemoveAt(winStack.Count - 1);
         if (winStack.Count > 0)
         {
             dealWinMsg(winStack.Last(), msg);
         }
     }
     else
     {
         throw new System.Exception("Winstack is empty!");
     }
 }
Ejemplo n.º 17
0
        public void PopWindow(WinMsg msg)
        {
            WindowsBase topWin;

            if (winStack.TryPop(out topWin))
            {
                GameObject.Destroy(topWin.gameObject);
                if (winStack.TryPeek(out topWin))
                {
                    dealWinMsg(topWin, msg);
                }
            }
            else
            {
                throw new System.Exception("Winstack is empty!");
            }
        }
Ejemplo n.º 18
0
        public WindowsBase PushWindow(WindowType type, WinMsg msg, Vector3 initPos = default(Vector3), params object[] parameters)
        {
            var go = WindowFactory.Instance.CreateWindows(type);

            go.name = type.ToString();
            go.transform.position = initPos;
            var win = go.GetComponent <WindowsBase>();

            win.Parameters = parameters;
            WindowsBase topWin;

            if (winStack.TryPeek(out topWin))
            {
                win.Canvas.sortingOrder = topWin.Canvas.sortingOrder + 1;
                dealWinMsg(topWin, msg);
            }
            winStack.Push(win);
            return(win);
        }
Ejemplo n.º 19
0
        public WindowsBase PushWindow(WindowType type, WinMsg msg, int sortLayer = -1, Vector3 initPos = default(Vector3), params object[] parameters)
        {
            var guid = System.Guid.NewGuid();

            TimeScope.Start(guid, "push window " + type.ToString());
            var go = WindowFactory.Instance.CreateWindows(type);

            TimeScope.Stop(guid);
            go.name = type.ToString();
            go.transform.position = initPos;
            var win = go.GetComponent <WindowsBase>();

            win.Parameters = parameters;
            if (winStack.Count > 0)
            {
                dealWinMsg(winStack.Last(), msg);
                if (sortLayer == -1)
                {
                    if (win.Canvas.sortingOrder == 0)
                    {
                        win.Canvas.sortingOrder = winStack.Last().Canvas.sortingOrder + 1;
                    }
                }
                else
                {
                    win.Canvas.sortingOrder = sortLayer;
                }
            }
            winStack.Add(win);
            winStack.Sort((w1, w2) =>
            {
                if (w1.Canvas.sortingOrder < w2.Canvas.sortingOrder)
                {
                    return(-1);
                }
                else if (w1.Canvas.sortingOrder >= w2.Canvas.sortingOrder)
                {
                    return(1);
                }
                return(0);
            });
            return(win);
        }
Ejemplo n.º 20
0
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
            case user32.WM_COPYDATA:
            {
                IntPtr sender;
                string text = WinMsg.ReceiveText(m.LParam, out sender);
                if (text.CompareNoCase(Strings.VScan_StopTheScanner))
                {
                    Close();
                }
            }
            break;

            default:
                base.WndProc(ref m);
                break;
            }
        }
Ejemplo n.º 21
0
 protected override void OnStartup(StartupEventArgs e)
 {
     base.OnStartup(e);
     if (!SingleInstance.IsNewInstance(InstanceId))
     {
         WinMsg.BroadcastMessage(ShowWpfUiMsg);
         Shutdown();
         return;
     }
     WinMsg.RegisterReciveMessage(ShowWpfUiMsg, () =>
     {
         this.MainWindow.Show();
     });
     Log.LogLocation = true;
     Log.ListenSystemDiagnosticsLog();
     Clipboards.Instance.IsListenning = true;
     this.MainWindow = new MainWindow();
     this.MainWindow.Show();
     this.ShutdownMode = ShutdownMode.OnMainWindowClose;
 }
Ejemplo n.º 22
0
        void OnWindowMessage(EventMgr.EventData eb)
        {
            WinMsg wm = eb.data as WinMsg;

            if (wm.winName == null)
            {    //广播
                foreach (Window item in mWindows.Values)
                {
                    item.OnWindowMessage(wm.metho, wm.param);
                }
            }
            else
            {
                Window w = GetWindow(wm.winName, false);
                if (w == null)
                {
                    return;
                }
                w.OnWindowMessage(wm.metho, wm.param);
            }
        }
Ejemplo n.º 23
0
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
            case user32.WM_COPYDATA:
            {
                string text = WinMsg.ReceiveText(m.LParam);
                if (text.CompareNoCase(Strings.VScan_SinglentonFormClose))
                {
                    DialogResult = DialogResult.OK;
                    OnClosed(EventArgs.Empty);
                    Application.ExitThread();
                }
            }
            break;

            default:
                base.WndProc(ref m);
                break;
            }
        }
Ejemplo n.º 24
0
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
            case user32.WM_COPYDATA:
            {
                string text = WinMsg.ReceiveText(m.LParam);
                if (text.CompareNoCase(Strings.VScan_SinglentonFormClose))
                {
                    DialogResult = DialogResult.OK;
                    OnClosed(EventArgs.Empty);
                    Application.ExitThread();
                }
                else if (text.StartsWith(Strings.VScan_EditItem))
                {
                    var data = DataSlot.Get <Voucher>(text);
                    Debug.Assert(data != null);
                    MoveImage((Bitmap)data.VoucherImage.Clone());
                    DataSlot.Free(text);
                }
                else if (text.StartsWith(Strings.VScan_ItemSaved))
                {
                    var data = DataSlot.Get <Voucher>(text);
                    Debug.Assert(data != null);
                    MoveImage((Bitmap)data.VoucherImage.Clone());
                    DataSlot.Free(text);
                }

                if (tsmiShowNumber.Checked)
                {
                    this.TitleBar.TitleBarCaption = "Voucher monitor ".concat(SettingsTable.Get <int>(Strings.VScan_ScanCount, 0));
                }
            }
            break;

            default:
                base.WndProc(ref m);
                break;
            }
        }
Ejemplo n.º 25
0
 /// <summary>
 /// Send a Windows message.
 /// </summary>
 /// <param name="win">The target window handler</param>
 /// <param name="msg">The message code</param>
 /// <param name="lParam">The message parameter</param>
 /// <param name="wParam">The second message parameter</param>
 internal static IntPtr SendTextMessage(IntPtr win, WinMsg msg, [MarshalAs(UnmanagedType.LPStr)] string lParam) {
     return SendMessage_(win, (int)msg, IntPtr.Zero, lParam);
 }
Ejemplo n.º 26
0
 public static extern int SendMessage(IntPtr hwnd, WinMsg wMsg, IntPtr wParam, int lParam);
        public void sendMsgToWinFunc(WinMsg msg)
        {
            if (!valmoWin.flagStartUpOk)
                return;
            switch (msg.type)
            {
                case WinMsgType.mwLinkPlcOK:
                    {
                        tbMenu.SelectedItem = Menu_Msg;
                        valmoWin.sMainPanelCtrl.cvsMain.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x78, 0xDD, 0xFF));
                        lbMsg.Content = "linkPlcOK !";
                        dtStart = DateTime.Now.Ticks;
                        if (dtMsg.IsEnabled == false && valmoWin.flagStartUpOk)
                            dtMsg.Start();
                    }
                    break;
                case WinMsgType.mwLinkPlcError:
                    {
                        tbMenu.SelectedItem = Menu_Msg;
                        valmoWin.sMainPanelCtrl.cvsMain.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x78, 0xDD, 0xFF));
                        lbMsg.Content = "linkPlcError !";
                    }
                    break;
                case WinMsgType.mwLogInOK:
                    {

                        lbMsg.Content = valmoWin.dv.getCurDis("lanKey035") + valmoWin.dv.users.curUser.name + valmoWin.dv.getCurDis("lanKey1104");
                        lastUserName = valmoWin.dv.users.curUser.name;
                        tbMenu.SelectedItem = Menu_Msg;
                        valmoWin.sMainPanelCtrl.cvsMain.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x78, 0xDD, 0xFF));
                        dtStart = DateTime.Now.Ticks;
                        if (dtMsg.IsEnabled == false && valmoWin.flagStartUpOk)
                            dtMsg.Start();
                    }
                    break;
                case WinMsgType.mwLogOut:
                    {

                        lbMsg.Content = valmoWin.dv.getCurDis("lanKey035") + msg.pStr + valmoWin.dv.getCurDis("lanKey1103");
                        tbMenu.SelectedItem = Menu_Msg;
                        valmoWin.sMainPanelCtrl.cvsMain.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x78, 0xDD, 0xFF));
                        dtStart = DateTime.Now.Ticks;
                        if (dtMsg.IsEnabled == false && valmoWin.flagStartUpOk)
                            dtMsg.Start();
                    }
                    break;
                case WinMsgType.mwAccessLower:
                    {
                        lbMsg.Content = valmoWin.dv.getCurDis("lanKey1102");
                        tbMenu.SelectedItem = Menu_Msg;
                        valmoWin.sMainPanelCtrl.cvsMain.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x78, 0xDD, 0xFF));

                        dtStart = DateTime.Now.Ticks;
                        if (dtMsg.IsEnabled == false && valmoWin.flagStartUpOk)
                            dtMsg.Start();
                    }
                    break;
                case WinMsgType.mwUserNull:
                    {
                        lbMsg.Content = valmoWin.dv.getCurDis("lanKey1100");
                        tbMenu.SelectedItem = Menu_Msg;
                        valmoWin.sMainPanelCtrl.cvsMain.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x78, 0xDD, 0xFF));
                        dtStart = DateTime.Now.Ticks;
                        if (dtMsg.IsEnabled == false && valmoWin.flagStartUpOk)
                            dtMsg.Start();
                    }
                    break;
                case WinMsgType.mwJumpHeartErr:
                    {
                        lbMsg.Content = valmoWin.dv.getCurDis("lanKey1101");
                        tbMenu.SelectedItem = Menu_Msg;
                        valmoWin.sMainPanelCtrl.cvsMain.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x78, 0xDD, 0xFF));
                    }
                    break;
                case WinMsgType.mwMsgSys:
                    {
                        dtStart = DateTime.Now.Ticks;
                        if (dtMsg.IsEnabled == false && valmoWin.flagStartUpOk)
                            dtMsg.Start();
                    }
                    break;
                case WinMsgType.mwMsgAlm:
                    {
                        dtMsg.Stop();
                    }
                    break;
                case WinMsgType.mwRelink:
                    {
                        curActiveAlmObjLst.Clear();
                        tbMenu.SelectedItem = Menu_Null;
                        valmoWin.sMainPanelCtrl.cvsMain.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0xF4, 0xF4, 0xF4));
                    }
                    break;
            }
        }
Ejemplo n.º 28
0
 /// <summary>
 /// post消息到窗口
 /// </summary>
 /// <param name="intPtr"></param>
 /// <param name="msg"></param>
 /// <param name="wParam"></param>
 /// <param name="lParam"></param>
 public static void PostMessage(IntPtr intPtr, WinMsg msg, int wParam = 1, int lParam = 0)
 {
     PostMessage(intPtr, (int)msg, wParam, lParam);
 }
Ejemplo n.º 29
0
 public static int MouseHandle(IntPtr intPtr, WinMsg wm, int x, int y)
 {
     return(SendMessage(intPtr, (int)wm, 0, (uint)GetLParamByPoint(x, y)));
 }
        public void sendMsgToWinFunc(WinMsg msg)
        {
            //if (!valmoWin.flagMainWindowInitOk)
            //    return;
            switch (msg.type)
            {
                case WinMsgType.mwLinkPlcOK:
                    {
                        PLCLinkState = true;
                        linkPanel.flagForceClose = false;
                        linkPanel.active = true;
                        linkPanel.Visibility = Visibility.Hidden;

                        linkState = true;
                        recUnit obj = new recUnit("Als000", DateTime.Now, recType.sysType);
                        valmoWin.eventMgr.msgSave(obj);
                        //WinMsg mwMsg = new WinMsg();
                        //mwMsg.type = WinMsgType.mwMsg;
                        //valmoWin.sendMsgToWinHandle(mwMsg);
                    }
                    break;
                case WinMsgType.mwLinkPlcError:
                    {
                        PLCLinkState = false;
                        if (!linkPanel.flagForceClose)
                            linkPanel.show();
                        if (linkState)
                        {
                            linkState = false;
                            recUnit obj = new recUnit("Als001", DateTime.Now, recType.sysType);
                            valmoWin.eventMgr.msgSave(obj);
                        }
                        //WinMsg mwMsg = new WinMsg();
                        //mwMsg.type = WinMsgType.mwMsg;
                        //valmoWin.sendMsgToWinHandle(mwMsg);
                    }
                    break;
                case WinMsgType.mwLogInOK:
                    {
                        PLCLinkState = true;
                        //imgUserNull.Opacity = 0;
                        //imgUserOn.Opacity = 1;
                        lbUserName.Content = valmoWin.dv.users.curUser.name;
                    }
                    break;
                case WinMsgType.mwLogOut:
                    {
                        //imgUserNull.Opacity = 1;
                        //imgUserOn.Opacity = 0;
                        lbUserName.Content = "null";
                    }
                    break;
                case WinMsgType.mwPidClear:
                    {
                    }
                    break;
                case WinMsgType.mwJumpHeartErr:
                    {
                        //imgLineOn.Visibility = Visibility.Hidden;
                    }
                    break;
                case WinMsgType.mwJumpHeartRetart:
                    {

                    }
                    break;
                case WinMsgType.mwRelink:
                    {
                        PLCLinkState = true;
                        linkPanel.flagForceClose = false;
                        linkPanel.active = true;

                        recUnit obj = new recUnit("Als000", DateTime.Now, recType.sysType);
                        valmoWin.eventMgr.msgSave(obj);
                    }
                    break;
            }
            lstWinMsgCtrl1.sendMsgToWinFunc(msg);
        }
Ejemplo n.º 31
0
 internal static extern IntPtr SendMessage(IntPtr hwnd, WinMsg msg, ushort wParam, StringBuilder strBuffer);
        public void refreshAlmLst(objUnit obj)
        {
            for (int i = 0; i < 32; i++)
            {
                if (((obj.value >> i) & 0x01) == 1)
                {
                    bool bIsExist = false;

                    for (int j = 0; j < curActiveAlmObjLst.Count; j++)
                    {
                        if (curActiveAlmObjLst[j].serialNum == obj.bitSers[i])
                        {
                            bIsExist = true;
                            break;
                        }
                    }

                    if (bIsExist == false)
                    {
                        recUnit ergObj = null;

                        if (obj.objType == objectType.AlmPr)
                        {
                            ergObj = new recUnit(obj.bitSers[i], DateTime.Now, recType.alarmType);
                            curActiveAlmObjLst.Insert(0, ergObj);
                        }
                        else if (obj.objType == objectType.AlmSys)
                        {
                            ergObj = new recUnit(obj.bitSers[i], DateTime.Now, recType.sysType);
                            curActiveAlmObjLst.Insert(0, ergObj);

                            WinMsg msgSys = new WinMsg();
                            msgSys.type = WinMsgType.mwMsgSys;
                            sendMsgToWinFunc(msgSys);
                        }

                        if (ergObj != null)
                        {
                            valmoWin.eventMgr.msgSave(ergObj);
                        }

                        valmoWin.execHandle(opeOrderType.winMsg, new WinMsg(WinMsgType.mwMsg));

                        refreshAlarmList();
                    }
                }
                else
                {
                    for (int j = curActiveAlmObjLst.Count - 1; j >= 0; j--)
                    {
                        if (curActiveAlmObjLst[j].serialNum == obj.bitSers[i])
                        {
                            curActiveAlmObjLst.RemoveAt(j);

                            valmoWin.execHandle(opeOrderType.winMsg, new WinMsg(WinMsgType.mwMsg));
                            refreshAlarmList();
                        }
                    }
                }
            }
        }
Ejemplo n.º 33
0
        public void ExportAndCloseAsync()
        {
            if (this.Parent != null)
            {
                IntPtr main = this.Parent.Handle;

                Voucher bData = Canvas.Data;
                bData.VoucherImage = (Bitmap)Canvas.BackgroundImage;

                var cnts = Canvas.Controls.Find(ManualInsertDataControl.MANUALINSERT_DATACONTROL_NAME, true);
                if (cnts != null && cnts.Length != 0)
                {
                    ManualInsertDataControl cnt = (ManualInsertDataControl)cnts[0];
                    if (!string.IsNullOrEmpty(cnt.BarCodeString))
                    {
                        bData.Parse(cnt.BarCodeString);
                    }
                    else
                    {
                        string[] str = cnt.BarCodeNumberGroups;
                        bData.CountryID = int.Parse(str[0]);
                        //bData.Business = int.Parse(str[1]);
                        bData.RetailerID    = int.Parse(str[2]);
                        bData.VoucherID     = str[3];
                        bData.BarCodeString = string.Format("{0:000}{1:00}{2:000000}{3:000000000}",
                                                            bData.CountryID, "na", bData.RetailerID, bData.VoucherID);
                    }
                }

                new Action <Voucher>((data) =>
                {
                    Debug.Assert(data != null);
                    Debug.Assert(data.VoucherImage != null);

                    lock (data.VoucherImage)
                    {
                        try
                        {
                            DelegateUtils.CreateAuditIdReloadDelegate().FireAndForget();

                            data.SiteCode = AuditIDSTable.SelectRemoveFirstOrEmpty().ThrowIfDefault <string, AppExclamationException>();

                            data.Validate();

                            ClientDataAccess.UpdateFileAsync((DbClientVoucher)data,
                                                             new EventHandler((o, s) =>
                            {
                                string fileName = Path.ChangeExtension(
                                    string.Format("{0}{1}", PTFUtils.GetMachine(),
                                                  DateTime.Now).ReplaceAll(new char[] { '.', '/', '\\', '-' }, '_'), ".xml");

                                //Data has been saved successfully.
                                string text = string.Concat(Strings.VScan_ItemSaved, fileName);
                                WinMsg.SendText(main, text);
                                this.InvokeSf(() =>
                                {
                                    //Set DialogResult OK
                                    //Or else the form will resign to close
                                    this.DialogResult = DialogResult.OK;
                                    this.Close();
                                });
                            }),
                                                             //No error handling.
                                                             //General processing handler.
                                                             null);
                        }
                        catch (Exception ee)
                        {
                            ee.AddNext(new MethodInvoker(() =>
                            {
                                Canvas.InvokeSf(() =>
                                {
                                    Canvas.ShowInputControl(ee.Message);
                                });
                            }));
                            throw;
                        }
                    }
                }).FireAndForget(bData);
            }
        }
Ejemplo n.º 34
0
 internal static extern IntPtr SendMessage(IntPtr hwnd, WinMsg msg, ushort wParam, uint lParam);
Ejemplo n.º 35
0
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
            case user32.WM_COPYDATA:
            {
                //The scaning Form sends ready status
                //Get image from appslot
                IntPtr sender;
                string text = WinMsg.ReceiveText(m.LParam, out sender);
                if (!string.IsNullOrEmpty(text))
                {
                    if (text.StartsWith(Strings.VScan_EditItem))
                    {
                        new MethodInvoker(() =>
                            {
                                const int MAX_OPENED_FORMS = 5;
                                int openedForms            = ScanAppContext.Default.OpenFormsOf <VoucherForm>().Count();
                                int settings = SettingsTable.Get <int>(Strings.VScan_MaximumOpenedScanForms, MAX_OPENED_FORMS);
                                if (openedForms > settings)
                                {
                                    WinMsg.SendText(sender, Strings.VScan_StopTheScanner);
                                    throw new AppExclamationException("Too many opened windows in editor.\nStop scanning.");
                                }
                            }).FireAndForget();

                        var data = DataSlot.Get <Voucher>(text);
                        Debug.Assert(data != null && data.VoucherImage != null && !string.IsNullOrEmpty(data.Message),
                                     "MainForm.WndProc");
                        try
                        {
                            VoucherForm form = AddNewChild();
                            form.Canvas.Update(data);
                        }
                        finally
                        {
                            if (VoucherMonitorForm.IsStarted)
                            {
                                VoucherMonitorForm.ShowImage(text);
                            }
                            DataSlot.Free(text);
                        }
                    }
                    else if (text.StartsWith(Strings.VScan_ItemSaved))
                    {
                        string[] msgs = text.Split('|');
                        if (msgs.Length > 1)
                        {
                            tssLabel1.Text = msgs[0];
                            tssLabel2.Text = msgs[1];
                        }

                        if (VoucherMonitorForm.IsStarted)
                        {
                            VoucherMonitorForm.ShowImage(text);
                        }
                        DataSlot.Free(text);
                    }
                    else if (text.CompareNoCase(Strings.VScan_ScanIsDoneEvent))
                    {
                        WaitForm.Stop(this);
                    }
                    else if (string.Compare(text, Strings.Transferring_RemoteLock) == 0)
                    {
                        Lock();
                    }
                }
            }
            break;

            default:
                base.WndProc(ref m);
                break;
            }
        }
Ejemplo n.º 36
0
 internal static bool PostMessage(IntPtr win, WinMsg msg) {
     return PostMessage_(win, (uint)msg, new IntPtr(0), new IntPtr(0) );
 }
Ejemplo n.º 37
0
            }             // func GetNumPadValue

            internal bool HandleScannerCommand(WinMsg dwMsg, ushort wMakeCode, out string barcode)
            {
                int tmp;

                barcode = null;

                // lookup the vkey from scancode
                IntPtr hkl;

                lock (this)
                    hkl = config.KeyboardLayoutHandle;

                var wVKey = (KeyCode)MapVirtualKeyEx(wMakeCode, 1, hkl);                 // MAPVK_VSC_TO_VK=1, MAPVK_VSC_TO_VK_EX=3

                //System.IO.File.AppendAllText("c:\\temp\\test.txt", String.Format("Msg=0x{0:X4}, Code=0x{1:X4}, VK={2}" + Environment.NewLine, dwMsg, wMakeCode, wVKey));

                // process key
                if (dwMsg == WinMsg.WM_KEYDOWN || dwMsg == WinMsg.WM_SYSKEYDOWN)
                {
                    //Debug.Print("KeyDown:{0}", (Keys)wVKey);
                    statesScanner[(byte)wVKey] |= 0x80;
                    if (wVKey == KeyCode.Enter ||
                        wVKey == KeyCode.LineFeed ||
                        ((statesScanner[(byte)KeyCode.ControlKey] & 0x80) != 0 && wVKey == KeyCode.M))
                    {
                        if (scannerBuffer.Length > 0)
                        {
                            // Jump over possible prefixes
                            var start = 0;
                            while (start < scannerBuffer.Length && scannerBuffer[start] < (char)32)
                            {
                                start++;
                            }
                            barcode = scannerBuffer.ToString(start, scannerBuffer.Length - start);

                            //System.IO.File.AppendAllText("c:\\temp\\test.txt", "BarCode=" + sBarCode + Environment.NewLine);
                            Debug.Print("BarCode: {0}", barcode);
                            scannerBuffer.Length = 0;
                            return(true);
                        }
                    }
                    else if (wVKey == KeyCode.Menu)
                    {
                        numInput = 0;
                    }
                    else if ((statesScanner[(byte)KeyCode.Menu] & 0x80) != 0 &&
                             (tmp = GetNumPadValue(wVKey)) >= 0)
                    {
                        numInput = numInput * 10 + tmp;
                    }
                    else
                    {
                        var sb  = new StringBuilder(64);
                        var ret = ToUnicodeEx((uint)wVKey, (uint)wMakeCode, statesScanner, sb, 64, 0, hkl);
                        if (ret > 0)
                        {
                            scannerBuffer.Append(sb.ToString());
                        }
                    }
                }
                else if (dwMsg == WinMsg.WM_KEYUP || dwMsg == WinMsg.WM_SYSKEYUP)
                {
                    //Debug.Print("KeyUp:{0}", (Keys)wVKey);
                    if (wVKey == KeyCode.Menu && numInput > 0)
                    {
                        try
                        {
                            scannerBuffer.Append(Convert.ToChar(numInput));
                        }
                        catch (Exception)
                        {
                        }
                        numInput = 0;
                    }

                    statesScanner[(byte)wVKey] &= 0x7F;
                }
                //System.IO.File.AppendAllText("c:\\temp\\test.txt", "   Buf=" + sbScannerBuffer.ToString() + Environment.NewLine);
                return(false);
            }             // proc HandleScannerCommand
 public void sendMsgToWinFunc(WinMsg msg)
 {
     if (!valmoWin.flagStartUpOk)
         return;
     switch (msg.type)
     {
         case WinMsgType.mwLogInOK:
         case WinMsgType.mwLogOut:
         case WinMsgType.mwMsg:
             {
                 ////overViewPage1.eventRecord1.refreshListFunc();
             }
             break;
     }
 }