// State -> Map #region Map #endregion // State -> Play #region Play private void RefreshPlay(StateTable st) { labelActualState.Text = "Actual state : "; labelDislpayScreen.Text = "Display screen : "; treeViewStatePart.Nodes[0].Nodes.Clear(); treeViewStatePart.Nodes[1].Nodes.Clear(); for (int i = 0; i < st.PART.Length; i++) { if (st.PART[i].mask == null || SC == null) { break; } if (st.PART[i].mask == "SCREEN_DISPLAY") { ScreenKey temp = ScreenKey.GetScreenKey(st.PART[i].value); if (temp == null) { labelDislpayScreen.Text += "NOT EXIST!!!"; //break; } else { SC.LoadCharScreen(temp.text, false, temp.numar); Refresh(); labelDislpayScreen.Text = "Display screen : " + temp.numar; } treeViewStatePart.Nodes[0].Nodes.Add(st.PART[i].value + "->" + st.PART[i].name); //break; } else if (st.PART[i].mask.Contains("SCREEN_")) { treeViewStatePart.Nodes[0].Nodes.Add(st.PART[i].value + "->" + st.PART[i].name); } else if (st.PART[i].mask.Contains("STATE_")) { if (!st.PART[i].mask.Contains("STATE_EXTENSION") && !st.PART[i].mask.Contains("STATE_EXTENDED")) { treeViewStatePart.Nodes[1].Nodes.Add(st.PART[i].value + "->" + st.PART[i].name); } else if (st.PART[i].mask.Contains("STATE_EXTENDED")) { treeViewStatePart.Nodes[1].Nodes.Add("---EXTENDED---" + st.PART[i + 1].description); } } else if (st.PART[i].mask.Contains("NUMBER") && i > 0) { treeViewStatePart.Nodes[1].Nodes.Add("---EXTENDED---" + st.PART[i + 1].description); } } labelActualState.Text += st.PART[0].value; }
private void comboBoxSubscreen_SelectedIndexChanged(object sender, EventArgs e) { SC.ClearScreenBox(0, 0); ScreenKey temp = ScreenKey.GetScreenKey(comboBoxSubscreen.Text); SC.LoadCharScreen(temp.text, false, temp.numar); textBoxScreenView.Text = temp.numar; textBoxScreen.Text = temp.text; SC.Refresh(); }
private void treeViewStatePart_AfterSelect(object sender, TreeViewEventArgs e) { labelDislpayScreen.Text = "Display screen : "; SC.ClearScreenBox(0, 0); SC.Refresh(); if (treeViewStatePart.SelectedNode.Parent == null) { return; } else if (treeViewStatePart.SelectedNode.Parent.Text == "SCREENS") { SC.ClearScreenBox(0, 0); string screenNr = treeViewStatePart.SelectedNode.Text.Substring(0, treeViewStatePart.SelectedNode.Text.IndexOf("->")); ScreenKey tempSK = ScreenKey.GetScreenKey(screenNr); if (tempSK == null) { SC.LoadCharScreen(((char)0x1B).ToString() + "(1<NOT EXIST>", false, screenNr); SC.Refresh(); return; } labelDislpayScreen.Text = "Display screen : " + screenNr.ToString(); SC.LoadCharScreen(ScreenKey.GetScreenKey(screenNr).text, true, screenNr); SC.Refresh(); } else if (treeViewStatePart.SelectedNode.Parent.Text == "STATES" && treeViewStatePart.SelectedNode.Text[0] != '-') { if (StateTable.ViewStateTables.Count == 0) { StateTable st = new StateTable(listBoxStateTabels.Items[listBoxStateTabels.SelectedIndex].ToString()); StateTable.ViewStateTables.Add(st); } string stateNr = treeViewStatePart.SelectedNode.Text.Substring(0, treeViewStatePart.SelectedNode.Text.IndexOf("->")); StateTable temp = StateTable.FindStateTabelsInList(stateNr); int i = listBoxStateTabels.FindString(temp.textTable); listBoxStateTabels.SelectedIndex = i; StateTable.RemoveViewStatesTables(StateTable.SelectViewStates); StateTable.ViewStateTables.Add(temp); StateTable.RefreshViewStatesTables(comboBoxViewStates); } }
private void listBoxScreenKeyboard_SelectedIndexChanged(object sender, EventArgs e) { SC.ClearScreenBox(0, 0); labelFF.Visible = true; SC.ScreenBox[0, 0] = new BoxScreenControl(new Point(0, 0), new Point(20, 30), 'N'); string numarScreen = listBoxScreenKeyboard.Items[listBoxScreenKeyboard.SelectedIndex].ToString(); textBoxScreen.Text = ScreenKey.GetScreenKey(numarScreen).text; SK = SC.LoadCharScreen(textBoxScreen.Text, false, ScreenKey.GetScreenKey(numarScreen).numar); SC.Visible = true; SC.Refresh(); textBoxScreenView.Text = SK.numar; if (textBoxScreen.Text.Contains(((char)0x0C).ToString())) { labelFF.Visible = false; } labelVoice.Text = "Voices : " + SK.VoiceList.Count.ToString(); labelGraphic.Text = "Graphics : " + SK.GraphicPictures.Count.ToString(); labelPicture.Text = "Pictures : " + SK.Picture.Count.ToString(); labelLogo.Text = "Logos : " + SK.Logo.Count.ToString(); labelDisplayImageFile.Text = "Display Image Files : " + SK.DisplayImageFileCommand.Count.ToString(); // idle screen labelIdleScreen.Text = "Idle screens : " + SK.ScreenIdle.Count.ToString(); comboBoxIdleScreen.Items.Clear(); comboBoxIdleScreen.Text = ""; for (int i = 0; i < SK.ScreenIdle.Count; i++) { comboBoxIdleScreen.Items.Add(SK.ScreenIdle[i].numar); } // subscreen labelSubscreen.Text = "Subscreens : " + SK.SubScreen.Count.ToString(); comboBoxSubscreen.Items.Clear(); comboBoxSubscreen.Text = ""; for (int i = 0; i < SK.SubScreen.Count; i++) { comboBoxSubscreen.Items.Add(SK.SubScreen[i].numar); } }
public ScreenKey LoadCharScreen(string strScreen, bool showIdleScreen, string numar) // incarca aria screen-ului cu caractere { SK_Control = new ScreenKey(); SK_Control.numar = numar; SK_Control.text = strScreen; int ii = 0; int jj = 0; int offset = 0; // caractere pe lungime dubla string font = BoxScreenControl.NDCFONTS[0]; float size = BoxScreenControl.SIZEFONTS[0]; Color tempColorBCK = Color.Navy; Brush tempBrText = Brushes.Yellow; Brush lastTempBrText = Brushes.Yellow; // initial value int leftMargin = 0; ii = 0; jj = 0; //ClearScreenBox(0, 0); for (int i = 0; i < strScreen.Length; i++) { char ch = strScreen[i]; switch (ch) { case (char)0x0C: // FF ii = 0; jj = 0; ClearScreenBox(0, 0); tempColorBCK = Color.Navy; tempBrText = Brushes.Yellow; font = BoxScreenControl.NDCFONTS[0]; size = BoxScreenControl.SIZEFONTS[0]; offset = 0; break; case (char)0x0E: // SO if (strScreen.Length <= i + 3) { return(null); } ScreenKey temp = ScreenKey.GetScreenKey(strScreen.Substring(i + 1, ScreenKey.NrOfCharScreenNumber)); if (temp != null) { i += ScreenKey.NrOfCharScreenNumber; // temp este un idle screen if (strScreen.Length > i + 6 && strScreen[i + 1] == (char)0x1B && strScreen[i + 2] == '[' && strScreen[i + 6] == 'z') { temp.idle = Convert.ToInt16(strScreen.Substring(i + 3, 3)); SK_Control.ScreenIdle.Add(temp); i += 6; } else { i -= ScreenKey.NrOfCharScreenNumber; strScreen = strScreen.Remove(i, ScreenKey.NrOfCharScreenNumber + 1); strScreen = strScreen.Insert(i, temp.text); SK_Control.SubScreen.Add(temp); i--; } } //‘G00’ – standard Insert Card picture //‘G01’ – standard Press Key picture //‘G03’ – standard Make A Deposit picture //‘G04’ – standard Take Receipt picture //‘G05’ – standard Take Money picture //‘G06’ – standard Take Statement picture. else if (strScreen[i + 1] == 'G') // G – Graphic Pictures { string strPath = @"C:\NTGlobal\Final\XFS\Dll\" + strScreen.Substring(i + 1, 3) + ".pcx"; SK_Control.GraphicPictures.Add(new Photo(strPath, ii, jj)); i += 3; } break; case (char)0x0F: // SI if (i + 2 < strScreen.Length) { int tempii = GetPos(strScreen[i + 1]); if (tempii < 0) { break; } int tempjj = GetPos(strScreen[i + 2]); if (tempjj < 0) { break; } ii = tempii; jj = tempjj; i = i + 2; } break; case (char)0x09: // HT // Causes the name encoded on Track 1 of the card to be displayed, starting at the current cursor position (32 characters maximum). Both ISO and VISA display formats are supported. // tab? break; case (char)0x11: // DC1 break; case (char)0x12: // DC2 break; case (char)0x1B: // ESC // Digital Audio Control Sequence #region Digital Audio Control Sequence if (strScreen.Length > i + 8 && strScreen[i + 1] == 'P' && strScreen[i + 2] == '0') { string terminatorVoice = "" + ((char)0x1B).ToString() + ('\\').ToString(); int stopVoice = strScreen.IndexOf(terminatorVoice, i + 1); char id = strScreen[i + 2]; string messageNumber = strScreen.Substring(i + 3, stopVoice - i - 5); char nr = strScreen[stopVoice - 1]; SK_Control.VoiceList.Add(new Voice(id, messageNumber, nr)); i = stopVoice + 1; } #endregion #region Screen blinking and colour control // Screen blinking and colour control else if (strScreen.Length > i + 7 && strScreen[i + 4] == ';' && strScreen[i + 1] == '[') { string color = strScreen.Substring(i + 2, 2); // background color if (color == "30" || color == "C0") { tempColorBCK = Color.Black; } else if (color == "31" || color == "C1") { tempColorBCK = Color.Red; } else if (color == "C2" || color == "32") { tempColorBCK = Color.Green; } else if (color == "C3" || color == "33") { tempColorBCK = Color.Yellow; } else if (color == "34" || color == "C4") { tempColorBCK = Color.Blue; } else if (color == "35" || color == "C5") { tempColorBCK = Color.Magenta; } else if (color == "36" || color == "C6") { tempColorBCK = Color.Cyan; } else if (color == "C7" || color == "37") { tempColorBCK = Color.White; } else if (color == "80") { tempColorBCK = Color.Transparent; } // text color else if (color == "20" || color == "BO") { tempBrText = Brushes.Black; } else if (color == "21" || color == "B1") { tempBrText = Brushes.Red; } else if (color == "B2" || color == "22") { tempBrText = Brushes.Green; } else if (color == "B3" || color == "23") { tempBrText = Brushes.Yellow; } else if (color == "24" || color == "B4") { tempBrText = Brushes.Blue; } else if (color == "25" || color == "B5") { tempBrText = Brushes.Magenta; } else if (color == "26" || color == "B6") { tempBrText = Brushes.Cyan; } else if (color == "B7" || color == "27") { tempBrText = Brushes.White; } // blink else if (color == "10") { lastTempBrText = tempBrText; tempBrText = Brushes.Violet; } else if (color == "11") { tempBrText = lastTempBrText; } else if (color == "00") { tempBrText = lastTempBrText; } i += 7; } // Screen blinking and colour control else if (strScreen.Length > i + 5 && strScreen[i + 4] == 'm' && strScreen[i + 1] == '[') { string color = strScreen.Substring(i + 2, 2); // background color if (color == "30" || color == "C0") { tempColorBCK = Color.Black; } else if (color == "31" || color == "C1") { tempColorBCK = Color.Red; } else if (color == "C2" || color == "32") { tempColorBCK = Color.Green; } else if (color == "C3" || color == "33") { tempColorBCK = Color.Yellow; } else if (color == "34" || color == "C4") { tempColorBCK = Color.Blue; } else if (color == "35" || color == "C5") { tempColorBCK = Color.Magenta; } else if (color == "36" || color == "C6") { tempColorBCK = Color.Cyan; } else if (color == "C7" || color == "37") { tempColorBCK = Color.White; } else if (color == "80") { tempColorBCK = Color.Transparent; } // text color else if (color == "20" || color == "BO") { tempBrText = Brushes.Black; } else if (color == "21" || color == "B1") { tempBrText = Brushes.Red; } else if (color == "B2" || color == "22") { tempBrText = Brushes.Green; } else if (color == "B3" || color == "23") { tempBrText = Brushes.Yellow; } else if (color == "24" || color == "B4") { tempBrText = Brushes.Blue; } else if (color == "25" || color == "B5") { tempBrText = Brushes.Magenta; } else if (color == "26" || color == "B6") { tempBrText = Brushes.Cyan; } else if (color == "B7" || color == "27") { tempBrText = Brushes.White; } // blink else if (color == "10") { lastTempBrText = tempBrText; tempBrText = Brushes.Violet; } else if (color == "11") { tempBrText = lastTempBrText; } else if (color == "00") { tempBrText = lastTempBrText; } i += 4; } #endregion // Changing display in idle else if (strScreen.Length > i + 6 && strScreen[i + 5] == 'z' && strScreen[i + 1] == '[') { int delayTime = Convert.ToInt16(strScreen.Substring(i + 2, 3)); i += 5; } #region Character set 1 // select character set - 1 else if (strScreen.Length > i + 2 && strScreen[i + 1] == '(') { switch (strScreen[i + 2]) { case '1': offset = 0; font = BoxScreenControl.NDCFONTS[0]; size = BoxScreenControl.SIZEFONTS[0]; break; case '2': offset = 0; font = BoxScreenControl.NDCFONTS[1]; size = BoxScreenControl.SIZEFONTS[0]; break; case '3': offset = 0; font = BoxScreenControl.NDCFONTS[2]; size = BoxScreenControl.SIZEFONTS[0]; break; case '4': offset = 0; font = BoxScreenControl.NDCFONTS[3]; size = BoxScreenControl.SIZEFONTS[0]; break; case '5': offset = 0; font = BoxScreenControl.NDCFONTS[4]; size = BoxScreenControl.SIZEFONTS[0]; break; case '>': offset = 1; size = BoxScreenControl.SIZEFONTS[1]; font = BoxScreenControl.NDCFONTS[5]; break; case '?': offset = 1; size = BoxScreenControl.SIZEFONTS[1]; font = BoxScreenControl.NDCFONTS[6]; break; case '7': offset = 0; size = BoxScreenControl.SIZEFONTS[0]; font = BoxScreenControl.NDCFONTS[7]; break; case ':': offset = 0; size = BoxScreenControl.SIZEFONTS[0]; font = BoxScreenControl.NDCFONTS[8]; break; case ';': offset = 0; size = BoxScreenControl.SIZEFONTS[0]; font = BoxScreenControl.NDCFONTS[9]; break; case 'B': offset = 1; size = BoxScreenControl.SIZEFONTS[1]; font = BoxScreenControl.NDCFONTS[10]; break; } i = i + 2; } #endregion #region Character set 2 // select character set - 2 else if (strScreen.Length > i + 2 && strScreen[i + 1] == ')') { switch (strScreen[i + 2]) { case '1': offset = 0; font = BoxScreenControl.NDCFONTS[0]; size = BoxScreenControl.SIZEFONTS[0]; break; case '2': offset = 0; font = BoxScreenControl.NDCFONTS[1]; size = BoxScreenControl.SIZEFONTS[0]; break; case '3': offset = 0; font = BoxScreenControl.NDCFONTS[2]; size = BoxScreenControl.SIZEFONTS[0]; break; case '4': offset = 0; font = BoxScreenControl.NDCFONTS[3]; size = BoxScreenControl.SIZEFONTS[0]; break; case '5': offset = 0; font = BoxScreenControl.NDCFONTS[4]; size = BoxScreenControl.SIZEFONTS[0]; break; case '>': offset = 1; size = BoxScreenControl.SIZEFONTS[1]; font = BoxScreenControl.NDCFONTS[5]; break; case '?': offset = 1; size = BoxScreenControl.SIZEFONTS[1]; font = BoxScreenControl.NDCFONTS[6]; break; case '7': offset = 0; size = BoxScreenControl.SIZEFONTS[0]; font = BoxScreenControl.NDCFONTS[7]; break; case ':': offset = 0; size = BoxScreenControl.SIZEFONTS[0]; font = BoxScreenControl.NDCFONTS[8]; break; case ';': offset = 0; size = BoxScreenControl.SIZEFONTS[0]; font = BoxScreenControl.NDCFONTS[9]; break; case 'B': offset = 1; size = BoxScreenControl.SIZEFONTS[1]; font = BoxScreenControl.NDCFONTS[10]; break; } i = i + 2; } #endregion // Set Left Margin Position else if (strScreen.Length > i + 5 && strScreen[i + 1] == '[' && strScreen[i + 5] == 'P') { leftMargin = Convert.ToInt32(strScreen.Substring(i + 2, 2)); i = i + 5; } // select logo else if (strScreen.Length > i + 5 && strScreen[i + 1] == 'P' && strScreen[i + 2] == '1') { string strPath = @"C:\NTGlobal\Final\XFS\Dll\pic00" + strScreen.Substring(i + 3, 2) + ".pcx"; SK_Control.Logo.Add(new Photo(strPath, ii, jj)); i += 5; } // Picture Control Command else if (strScreen.Length > i + 5 && strScreen[i + 1] == 'P' && strScreen[i + 2] == '2') { string terminatorPicture = "" + ((char)0x1B).ToString() + ('\\').ToString(); int stopPicture = strScreen.IndexOf(terminatorPicture, i + 1); string strPath = @"C:\NTGlobal\Final\XFS\Dll\pic00" + strScreen.Substring(i + 3, stopPicture - i - 3) + ".pcx"; SK_Control.Picture.Add(new Photo(strPath, ii, jj)); i = stopPicture + 1; } // else if (strScreen.Length > i + 2 && strScreen[i + 1] == 'P' && strScreen[i + 2] == 'i') // not suported { string terminator = "" + ((char)0x1B).ToString() + ('\\').ToString(); int stop = strScreen.IndexOf(terminator, i + 1); i = stop + 1; // +1; } // Display Image File Command else if (strScreen.Length > i + 5 && strScreen[i + 1] == 'P' && strScreen[i + 2] == 'E') { string terminatorDisplay = "" + ((char)0x1B).ToString() + ('\\').ToString(); int stopDisplay = strScreen.IndexOf(terminatorDisplay, i + 1); string strPath = @"C:\NTGlobal\Final\XFS\Dll" + strScreen.Substring(i + 3, stopDisplay - i - 3);// .avi? SK_Control.DisplayImageFileCommand.Add(new Photo(strPath, ii, jj)); i = stopDisplay + 1; } // Display Lifted Cheque Image Command else if (strScreen.Length > i + 5 && strScreen[i + 1] == 'P' && strScreen[i + 2] == 'E') { // not implement string terminatorDisplay = "" + ((char)0x1B).ToString() + ('\\').ToString(); int stopDisplay = strScreen.IndexOf(terminatorDisplay, i + 1); string strPath = @"C:\NTGlobal\Final\XFS\Dll\" + strScreen.Substring(i + 3, stopDisplay - i - 3);// .avi? SK_Control.DisplayImageFileCommand.Add(new Photo(strPath, ii, jj)); i = stopDisplay + 1; } break; case (char)0x0D: // CR ii++; jj = leftMargin; break; case (char)0x0B: // VT break; default: { if (ii >= 16) { break; } ScreenBox[jj, ii].character = ch; ScreenBox[jj, ii].colorBCK = tempColorBCK; ScreenBox[jj, ii].brText = tempBrText; ScreenBox[jj, ii].font = font; ScreenBox[jj, ii].size = size; jj = jj + offset + 1; if (jj >= 32) { jj = 0; ii = ii + offset + 1; } break; } } } if (!showIdleScreen) { return(SK_Control); } ScreenKey tempSK = SK_Control; for (int i = 0; i < SK_Control.ScreenIdle.Count; i++) { LoadCharScreen(SK_Control.ScreenIdle[i].text, false, ""); Refresh(); System.Threading.Thread.Sleep(tempSK.ScreenIdle[i].idle /*30*/ * 10); SK_Control = tempSK; } return(SK_Control); }