//-------------------------------------------------------------- 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); } }
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); }
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); } }
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++; } }
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); }
//-------------------------------------------------------------- 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); }
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); }
public void DetectFollow(byte[] plane, uint NoMaskCRC, bool Reverse) { if (NoMaskCRC == FollowHash || FrameUtil.ChecksumWithMask(plane, FollowMask, Reverse) == FollowHash) { FoundFollowMatch = true; } }
void OnDeleteButtonClick() { //加载UsersAndGroupsInfoPanel; GameObject go = FrameUtil.AddChild(GameObject.Find("Canvas/Other"), Resources.Load <GameObject>("ConfirmPanel")); go.GetComponent <ConfirmPanelLogic>().Init(OnDeleteUserCallBack); }
// 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(); }
//参数为 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); } }
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; }
void OnBackButtonClick() { //加载UsersAndGroupsInfoPanel; FrameUtil.AddChild(GameObject.Find("Canvas/Stack"), Resources.Load <GameObject>("UsersAndGroupsInfoPanel")); //销毁本面板; Destroy(gameObject); }
void OnBackButtonClick() { //加载UsersAndGroupsInfoPanel; FrameUtil.AddChild(GameObject.Find("Canvas/Stack"), Resources.Load <GameObject>("MainPanel")); GameObject.Find("TitlePanel(Clone)").GetComponent <TitlePanelLogic>().ChangeModuleName(""); //销毁Login面板; Destroy(gameObject); }
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 })); }
// 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); } }
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 })); }
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); }
//处理得到供货商消息; 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); }
//------------------------------------------------------------- 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); }
//添加左边的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(); }
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); }
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; }
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); } }
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()); }