コード例 #1
0
    //-------------------------------------------------------------- MESSAGE HANDLE ---------------------------------
    void OnCheckUserFunction(string data)
    {
        MsgJson.UserFunction jsonData = JsonUtility.FromJson <MsgJson.UserFunction>(data);

        if (jsonData.state == "success")
        {
            foreach (var v in jsonData.function)
            {
                switch (v.id)
                {
                case "1":
                    FrameUtil.AddChild(m_MainMenuList.gameObject, m_MainMenuItem).GetComponent <MainMenuItemLogic>().Init("User Access", OnUesrAccessClick);
                    break;

                case "2":
                    FrameUtil.AddChild(m_MainMenuList.gameObject, m_MainMenuItem).GetComponent <MainMenuItemLogic>().Init("Sales", OnSalesClick);
                    break;

                case "4":
                    FrameUtil.AddChild(m_MainMenuList.gameObject, m_MainMenuItem).GetComponent <MainMenuItemLogic>().Init("Model Management", OnModelManagementClick);
                    break;

                default:
                    Debug.Log(v.name);
                    Debug.Log("-------------------------------- OnCheckUserFunction Switch Error ! ---------------------------------------------------");
                    break;
                }
            }
        }
        else
        {
            GameObject go = FrameUtil.AddChild(GameObject.Find("Canvas/Other"), Resources.Load <GameObject>("NoticePanel"));
            go.GetComponent <NoticePanelLogic>().Init(jsonData.state);
        }
    }
コード例 #2
0
    void Start()
    {
        //加入所有用户;
        foreach (var v in ControlPlayer.Instance.m_UserAccessData.users)
        {
            FrameUtil.AddChild(m_UserItemList.gameObject, m_UserAccessUserItem).GetComponent <UserAccessUserItemLogic>().Init(v.id);
        }

        //加入新添用户按钮;
        FrameUtil.AddChild(m_UserItemList.gameObject, m_UserAccessUserItem).GetComponent <UserAccessUserItemLogic>().Init("Add New User", AddNewUser);

        //将第一个用户的信息显示在用户信息里面;
        m_FirstName.text = ControlPlayer.Instance.m_UserAccessData.users[0].firstname;
        m_LastName.text  = ControlPlayer.Instance.m_UserAccessData.users[0].lastname;
        m_Email.text     = ControlPlayer.Instance.m_UserAccessData.users[0].email;
        m_Phone.text     = ControlPlayer.Instance.m_UserAccessData.users[0].phone;

        //第一个用户的ID;
        ControlPlayer.Instance.m_CurrentEditUserID = ControlPlayer.Instance.m_UserAccessData.users[0].id;

        //加入现在所有的组,并检查第一个用户有没有这些组功能;
        foreach (var i in ControlPlayer.Instance.m_UserAccessData.groups)
        {
            GameObject go = FrameUtil.AddChild(m_Group.gameObject, m_GroupToggle);
            go.GetComponent <GroupToggleItemLogic>().Init(i);

            m_UserAccessToggleDic[i.id] = go;
        }
        RefreshGroupDisplay(ControlPlayer.Instance.m_UserAccessData.users[0].id);
    }
コード例 #3
0
        public void RenderColoredGray4(ColoredFrame frame)
        {
            // fall back if firmware doesn't support colored gray 4
            if (!_supportsColoredGray4)
            {
                var rgb24Frame = ColorUtil.ColorizeFrame(DmdWidth, DmdHeight,
                                                         FrameUtil.Join(DmdWidth, DmdHeight, frame.Planes), frame.Palette);
                RenderRgb24(rgb24Frame);
                return;
            }

            // copy palette
            var paletteChanged = false;

            for (var i = 0; i < 16; i++)
            {
                var color = frame.Palette[i];
                var j     = i * 3;
                paletteChanged = paletteChanged || (_frameBufferColoredGray4[j + 1] != color.R || _frameBufferColoredGray4[j + 2] != color.G || _frameBufferColoredGray4[j + 3] != color.B);
                _frameBufferColoredGray4[j + 1] = color.R;
                _frameBufferColoredGray4[j + 2] = color.G;
                _frameBufferColoredGray4[j + 3] = color.B;
            }

            // copy frame
            var frameChanged = FrameUtil.Copy(frame.Planes, _frameBufferColoredGray4, 49);

            // send frame buffer to device
            if (frameChanged || paletteChanged)
            {
                RenderRaw(_frameBufferColoredGray4);
            }
        }
コード例 #4
0
        public void DetectFollow(byte[] plane, uint NoMaskCRC, byte[][] masks, bool Reverse)
        {
            var frameIndex = 0;

            foreach (var af in Frames)
            {
                if (NoMaskCRC == af.Hash)
                {
                    _frameIndex = frameIndex;
                    return;
                }
                if (masks != null && masks.Length > 0)
                {
                    foreach (var mask in masks)
                    {
                        var maskcrc = FrameUtil.ChecksumWithMask(plane, mask, Reverse);
                        if (maskcrc == af.Hash)
                        {
                            _frameIndex = frameIndex;
                            return;
                        }
                    }
                }
                frameIndex++;
            }
        }
コード例 #5
0
        public void Tick(object sender, EventArgs e)
        {
            TimeSpan currentTime = stopWatch.Elapsed;
            TimeSpan elapsedTime = currentTime - lastTime;

            lastTime = currentTime;

            if (elapsedTime > MaxElapsedTime)
            {
                elapsedTime = MaxElapsedTime;
            }

            accumulatedTime += elapsedTime;

            bool updated = false;

            while (accumulatedTime >= TargetElapsedTime)
            {
                TurnsPerSecond = FrameUtil.CalculateRatePerSecond();

                TakeTurn();

                accumulatedTime -= TargetElapsedTime;
                updated          = true;
            }

            if (updated)
            {
                Thread.Sleep(10);

                InvalidateNeeded?.Invoke(this, EventArgs.Empty);
            }
        }
        /*
         * 返回上一页
         *
         * 2.淡出完成,开始淡入
         */
        private void fadeOut_Completed(DControl ctl, Boolean isBack, int pageSwitchType)
        {
            PageTemplate pt = new PageTemplate(pageTemplate1.mainFrame, ctl.linkToPageId, true, isBack, pageSwitchType, pageTemplate1.screen, pageTemplate1.mqServer);

            pageTemplate1.mainFrame.NavigationService.Navigate(pt);
            FrameUtil.RemoveBackEntry(pageTemplate1.mainFrame);
        }
コード例 #7
0
    //-------------------------------------------------------------- MESSAGE HANDLE ---------------------------------
    void OnLogin(string data)
    {
        MsgJson.Login jsonData = JsonUtility.FromJson <MsgJson.Login>(data);

        //登录成功;
        if (jsonData.state == "success")
        {
            //保留token;
            PlayerPrefs.SetString("token", jsonData.token);
            //保留ControlPlayer信息;
            ControlPlayer.Instance.m_GroupName = jsonData.user[0].GroupName;
            ControlPlayer.Instance.m_FirstName = jsonData.user[0].firstname;
            ControlPlayer.Instance.m_LastName  = jsonData.user[0].lastname;
            ControlPlayer.Instance.m_Email     = jsonData.user[0].email;
            ControlPlayer.Instance.m_Phone     = jsonData.user[0].phone;

            //加载主面板;
            FrameUtil.AddChild(GameObject.Find("Canvas/Stack"), Resources.Load <GameObject>("MainPanel"));
            //加入TitlePanel;
            FrameUtil.AddChild(GameObject.Find("Canvas/Other"), Resources.Load <GameObject>("TitlePanel"));
            //销毁Login面板;
            Destroy(gameObject);
        }
        //登录失败;
        else if (jsonData.state == "fail")
        {
            //弹出提示面板;
            Debug.Log("------------------------------------------- 登录失败 !!!-------------------------------------------------");
            GameObject go = FrameUtil.AddChild(GameObject.Find("Canvas/Other"), Resources.Load <GameObject>("NoticePanel"));
            go.GetComponent <NoticePanelLogic>().Init("Login Fail");
        }
    }
        /*
         * 进入新页面
         *
         * 2.淡出完成,开始淡入
         */
        private void fadeOut_Completed(DControl ctl, CFrameTag cFrameTag)
        {
            PageTemplate pageTemplate = new PageTemplate(cFrameTag.currCFrame, ctl.linkToPageId, true, ctl.isTransparentDialog, pageTemplate1.screen, pageTemplate1.mqServer);

            cFrameTag.currCFrame.NavigationService.Navigate(pageTemplate);
            FrameUtil.RemoveBackEntry(cFrameTag.currCFrame);
        }
コード例 #9
0
        public void CalculateFrameRateTest()
        {
            int i = 0;
            int currentFrameRate = 0;

            Console.WriteLine("Running frame rate test 1, this takes 10 seconds...");
            while (i < 100)
            {
                currentFrameRate = FrameUtil.CalculateRatePerSecond();
                System.Threading.Thread.Sleep(100); //simulate rendering
                i++;
            }

            //frame rate should be 10, might be +-5
            Assert.Greater(currentFrameRate, 5);
            Assert.Less(currentFrameRate, 15);


            i = 0;
            currentFrameRate = 0;
            Console.WriteLine("Running frame rate test 2, this takes 10 seconds...");
            while (i < 1000)
            {
                currentFrameRate = FrameUtil.CalculateRatePerSecond();
                System.Threading.Thread.Sleep(10); //simulate rendering
                i++;
            }

            //frame rate should be 100, might be +- 50
            Assert.Greater(currentFrameRate, 50);
            Assert.Less(currentFrameRate, 150);
        }
コード例 #10
0
ファイル: Animation.cs プロジェクト: markadr/dmd-extensions
 public void DetectFollow(byte[] plane, uint NoMaskCRC, bool Reverse)
 {
     if (NoMaskCRC == FollowHash || FrameUtil.ChecksumWithMask(plane, FollowMask, Reverse) == FollowHash)
     {
         FoundFollowMatch = true;
     }
 }
コード例 #11
0
    void OnDeleteButtonClick()
    {
        //加载UsersAndGroupsInfoPanel;
        GameObject go = FrameUtil.AddChild(GameObject.Find("Canvas/Other"), Resources.Load <GameObject>("ConfirmPanel"));

        go.GetComponent <ConfirmPanelLogic>().Init(OnDeleteUserCallBack);
    }
コード例 #12
0
    // Use this for initialization
    void Start()
    {
        //加入第一界面选择的Size;
        foreach (var v in ControlPlayer.Instance.m_AddModelPanelSaveData.m_Size)
        {
            FrameUtil.AddChild(m_LeftSizeList.gameObject, m_LeftSizeItem).GetComponent <LeftSizeItemLogic>().Init(v);
        }
        //默认点选第一个;
        m_LeftSizeList.transform.GetChild(0).GetComponent <LeftSizeItemLogic>().OnClick();

        //重新加入上个界面选择的普通部件;
        //AddPartItem();

        //加入供货商;
        foreach (var v in ControlPlayer.Instance.m_GetSupplier.supplier)
        {
            FrameUtil.AddChild(m_SupplierList.gameObject, Resources.Load <GameObject>("SupplierItem")).GetComponent <SupplierItemLogic>().Init(v);
        }

        ////获得ItemCategory信息
        //WWWForm form = new WWWForm();
        //form.AddField("token", PlayerPrefs.GetString("token"));
        //HttpManager.Instance.SendPostForm(ProjectConst.GetItemCategory, form);
        ////获得Stages信息;
        //WWWForm form1 = new WWWForm();
        //form1.AddField("token", PlayerPrefs.GetString("token"));
        //HttpManager.Instance.SendPostForm(ProjectConst.GetItemStages, form1);
        AddPartItem();
    }
コード例 #13
0
ファイル: HttpManager.cs プロジェクト: sezzna/JB-Management
    //参数为 url ,data 数据, 消息ID的string形式;
    private IEnumerator SendPostFormCoroutine(string url, WWWForm form)
    {
        WWW www_instance = new WWW(url, form);

        //开始转菊花图;
        FrameUtil.AddChild(GameObject.Find("Canvas/Other"), Resources.Load <GameObject>("WaitingPanel"));

        yield return(www_instance);

        if (www_instance.error != null)
        {
            //这里应该是做超时处理,要通知主逻辑弹出通知面板;
            Object.DestroyImmediate(GameObject.Find("WaitingPanel(Clone)"));
            //后面来做;
            Debug.LogError("------------------------ Send WWW Post Error : " + www_instance.error + "------------------------");
            GameObject go = FrameUtil.AddChild(GameObject.Find("Canvas/Other"), Resources.Load <GameObject>("NoticePanel"));
            go.GetComponent <NoticePanelLogic>().Init("Send WWW Post Error: " + www_instance.error);
        }
        else
        {
            Object.DestroyImmediate(GameObject.Find("WaitingPanel(Clone)"));

            Debug.Log("----------------------------------------- 收到消息号 : " + www_instance.responseHeaders["code"] + "----------------------------------------");
            Debug.Log(www_instance.text);

            MsgRegister.Instance.Handle(www_instance.responseHeaders["code"], www_instance.text);
        }
    }
コード例 #14
0
ファイル: Animation.cs プロジェクト: markadr/dmd-extensions
        public void DetectLCM(byte[] plane, uint NoMaskCRC, bool Reverse)
        {
            bool clear       = true;
            uint checksum    = NoMaskCRC;
            var  maskSize    = Width * Height / 8;
            var  maskedPlane = new byte[maskSize];

            for (int k = -1; k < Masks.Length; k++)
            {
                if (k >= 0)
                {
                    checksum = FrameUtil.ChecksumWithMask(plane, Masks[k], Reverse);
                }
                foreach (var af in Frames)
                {
                    if (af.Hash == checksum)
                    {
                        if (clear)
                        {
                            ClearLCMBuffer();
                            clear = false;
                        }
                        for (int i = 0; i < af.Planes.Count; i++)
                        {
                            FrameUtil.OrPlane(af.PlaneData[i], LCMBufferPlanes[i]);
                        }
                    }
                }
            }
        }
        public void ClickShowWeb(DControlDto ctl)
        {
            Int32  maxPagePercent = FrameUtil.getMaxPercent(App.localStorage.cfg.screenWidth, App.localStorage.cfg.screenHeight);
            double screenWidth    = SystemParameters.PrimaryScreenWidth;//得到屏幕整体宽度

            Cfg pageCfg   = PageWidthUtil.getPageCfg(dPage, App.localStorage.cfg);
            int winWidth  = (int)(pageCfg.screenWidth * maxPagePercent / 100);
            int winHeight = (int)(pageCfg.screenHeight * maxPagePercent / 100);

            App.localStorage.currForm1 = new Form1(winWidth, winHeight, ctl.linkToWeb, screenWidth);
            App.localStorage.currForm1.ShowDialog();


            //Int32 maxPagePercent = FrameUtil.getMaxPercent(App.localStorage.cfg.screenWidth, App.localStorage.cfg.screenHeight);
            //double screenWidth = SystemParameters.PrimaryScreenWidth;//得到屏幕整体宽度

            //Cfg pageCfg = PageWidthUtil.getPageCfg(dPage, App.localStorage.cfg);
            //int winWidth = (int)(pageCfg.screenWidth * maxPagePercent / 100);
            //int winHeight = (int)(pageCfg.screenHeight * maxPagePercent / 100);
            //App.localStorage.currForm1 = new Form1(winWidth, winHeight, ctl.linkToWeb, screenWidth);
            //App.localStorage.currForm1.Left = 500;
            //App.localStorage.currForm1.Top = pageTemplate1.screen.Bounds.Top;
            //App.localStorage.currForm1.Show();
            //App.localStorage.currForm1.BringToFront();

            //App.localStorage.currForm1.Click += currForm1_Click;
        }
コード例 #16
0
 void OnBackButtonClick()
 {
     //加载UsersAndGroupsInfoPanel;
     FrameUtil.AddChild(GameObject.Find("Canvas/Stack"), Resources.Load <GameObject>("UsersAndGroupsInfoPanel"));
     //销毁本面板;
     Destroy(gameObject);
 }
コード例 #17
0
 void OnBackButtonClick()
 {
     //加载UsersAndGroupsInfoPanel;
     FrameUtil.AddChild(GameObject.Find("Canvas/Stack"), Resources.Load <GameObject>("MainPanel"));
     GameObject.Find("TitlePanel(Clone)").GetComponent <TitlePanelLogic>().ChangeModuleName("");
     //销毁Login面板;
     Destroy(gameObject);
 }
コード例 #18
0
        public void RenderColoredGray2(byte[][] planes, Color[] palette)
        {
            SetPalette(palette);

            var frame = FrameUtil.Join(DmdWidth, DmdHeight, planes);

            // send frame buffer to device
            RenderGray4(FrameUtil.ConvertGrayToGray(frame, new byte[] { 0x0, 0x1, 0x4, 0xf }));
        }
コード例 #19
0
    // Use this for initialization
    void Start()
    {
        UpdateTypeDropdownView();

        foreach (var v in ControlPlayer.Instance.m_ItemStages.stages)
        {
            FrameUtil.AddChild(m_StagesGrounp.gameObject, m_StageToggle).GetComponent <ItemStageLogic>().Init(v);
        }
    }
コード例 #20
0
ファイル: Pin2Dmd.cs プロジェクト: jbitonti/dmd-extensions
        public void RenderColoredGray2(ColoredFrame frame)
        {
            SetPalette(frame.Palette, frame.PaletteIndex);

            var joinedFrame = FrameUtil.Join(DmdWidth, DmdHeight, frame.Planes);

            // send frame buffer to device
            RenderGray4(FrameUtil.ConvertGrayToGray(joinedFrame, new byte[] { 0x0, 0x1, 0x4, 0xf }));
        }
コード例 #21
0
 public int[] GetPropIndexArray(string buffMap)
 {
     int[] buffIds = null;
     if (!string.IsNullOrEmpty(buffMap))
     {
         buffIds = FrameUtil.CastIntArray(buffMap, SPLITValues);
     }
     return(GetPropIndexArray(buffIds));
 }
        /*
         * 初始化头部菜单
         */
        private void initHeaderMenu()
        {
            Int32 pagePercent = FrameUtil.getMaxPercent(App.localStorage.cfg.screenWidth, App.localStorage.cfg.screenHeight);

            mainFrame.Width  = App.localStorage.cfg.screenWidth;
            mainFrame.Height = App.localStorage.cfg.screenHeight;
            //根据
            changeMainFramePercent(pagePercent);
        }
コード例 #23
0
    //处理得到供货商消息;
    void OnGetSupplier(string data)
    {
        ControlPlayer.Instance.m_GetSupplier = JsonUtility.FromJson <MsgJson.GetSupplier>(data);

        //Common Parts Selection Panel;
        FrameUtil.AddChild(GameObject.Find("Canvas/Stack"), Resources.Load <GameObject>("CommonPartsSelectionPanel"));

        Destroy(gameObject);
    }
コード例 #24
0
    //------------------------------------------------------------- Button Response ------------------------------------

    //用户控制按钮;
    void OnUesrAccessClick(GameObject go, PointerEventData eventData)
    {
        //加载UsersAndGroupsInfoPanel;
        FrameUtil.AddChild(GameObject.Find("Canvas/Stack"), Resources.Load <GameObject>("UsersAndGroupsInfoPanel"));

        GameObject.Find("TitlePanel(Clone)").GetComponent <TitlePanelLogic>().ChangeModuleName("User Access");
        //销毁主面板;
        Destroy(gameObject);
    }
コード例 #25
0
    //添加左边的Item;
    public void AddPartItem()
    {
        //清空所有的stage和item
        foreach (Transform child in m_PartList)
        {
            Destroy(child.gameObject);
        }

        //首先循环所有的stage;
        foreach (var v in ControlPlayer.Instance.m_ItemStages.stages)
        {
            bool check = false;
            //看看stageDisplayList里面有没有当前循环到的stage;
            foreach (var i in ControlPlayer.Instance.m_StageDisplayList)
            {
                if (i.stegeId == v.id)
                {
                    if (check == false)
                    {
                        FrameUtil.AddChild(m_PartList.gameObject, m_StageTatil).GetComponent <StageTitleLogic>().Init(v.des);
                        check = true;
                    }

                    foreach (var x in ControlPlayer.Instance.m_CommonItemList)
                    {
                        if (x.item.id == i.itemId)
                        {
                            FrameUtil.AddChild(m_PartList.gameObject, m_LeftSpecialItemItem).GetComponent <LeftSpecialItemItemLogic>().Init(x.item, x.qty);
                        }
                    }
                }
            }

            //添加特殊部件;
            foreach (var i in ControlPlayer.Instance.m_SpStageDisplayList)
            {
                if (i.stegeId == v.id && i.sizeId == ControlPlayer.Instance.m_CurrentChoiceSizeId)
                {
                    if (check == false)
                    {
                        FrameUtil.AddChild(m_PartList.gameObject, m_StageTatil).GetComponent <StageTitleLogic>().Init(v.des);
                        check = true;
                    }

                    foreach (var x in ControlPlayer.Instance.m_SpItemList)
                    {
                        if (x.item.id == i.itemId)
                        {
                            FrameUtil.AddChild(m_PartList.gameObject, m_LeftColorItemItem).GetComponent <LeftItemItemLogic>().Init(x.item, x.qty);
                        }
                    }
                }
            }
        }

        CalculateTotalAmount();
    }
コード例 #26
0
ファイル: ImageSource.cs プロジェクト: freezy/dmd-extensions
        public ImageSourceColoredGray2(BitmapSource bmp)
        {
            SetDimensions(bmp.PixelWidth, bmp.PixelHeight);
            var frame = new ColoredFrame(
                FrameUtil.Split(bmp.PixelWidth, bmp.PixelHeight, 2, ImageUtil.ConvertToGray2(bmp)),
                new [] { Colors.Black, Colors.Red, Colors.Green, Colors.Blue }
                );

            _frames = new BehaviorSubject <ColoredFrame>(frame);
        }
コード例 #27
0
        public void RenderGray4(byte[] frame)
        {
            // Render as orange palette (same as default with no PAL loaded)
            var planes = FrameUtil.Split(DmdWidth, DmdHeight, 4, frame);

            var orangeframe = LibDmd.Common.FrameUtil.ConvertToRgb24(DmdWidth, DmdHeight, planes, ColorUtil.GetPalette(new[] { Colors.Black, Colors.OrangeRed }, 16));

            Marshal.Copy(orangeframe, 0, _pnt, DmdWidth * DmdHeight * 3);
            Render_RGB24((ushort)DmdWidth, (ushort)DmdHeight, _pnt);
        }
 public PageTemplate(Frame mainFrame, Int32 pageId, MqServer mqServer)
 {
     InitializeComponent();
     this.mainFrame = mainFrame;
     App.localStorage.currPageId = pageId;
     this.mqServer = mqServer;
     FrameUtil.RemoveBackEntry(mainFrame);
     initControl(pageId);
     Unloaded += PageTemplate_UnLoaded;
 }
コード例 #29
0
        public void RenderRgb24(byte[] frame)
        {
            // copy data to frame buffer
            var changed = FrameUtil.Copy(frame, _frameBufferRgb24, 1);

            // can directly be sent to the device.
            if (changed)
            {
                RenderRaw(_frameBufferRgb24);
            }
        }
コード例 #30
0
        public byte[] SerializeGray(byte[] frame, int bitlength)
        {
            var timestamp = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
            var data      = Encoding.ASCII
                            .GetBytes("gray" + bitlength + "Planes")
                            .Concat(new byte[] { 0x0 })
                            .Concat(BitConverter.GetBytes((uint)(timestamp - _startedAt)))
                            .Concat(FrameUtil.Split(Width, Height, bitlength, frame).SelectMany(p => p));

            return(data.ToArray());
        }