예제 #1
0
        //정보 입력 후 추가버튼을 누르면 추가되고 사용자관리 페이지의 init함수를 실행하여 새로고침
        private void Add_Click(object sender, EventArgs e)
        {
            if (UserName.Text.Equals("") || userId.Text.Equals("") || right.Text.Equals("") || position.Text.Equals(""))
            {
                MessageBox.Show("정보를 모두 입력하고 등록해주세요");
            }
            else
            {
                TcpSocket   tcp  = new TcpSocket();                                                       //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
                JsonParsing json = new JsonParsing();                                                     //데이터를 받아오기 위해 클래스의 객체를 생성

                tcp.ConnectServer();                                                                      //서버 연결 시작
                byte[] user_data = json.UserParse(UserName.Text, userId.Text, right.Text, position.Text); //아이디와 패스워드를 json형식으로 받아와서 바이트로 바꿔줌
                byte[] user_info = tcp.DataParse(user_data);                                              //바이트로 바꾼 데이터를 파싱
                tcp.Request(user_info);                                                                   //서버로 데이터를 보내줌
                JObject recvMsg = tcp.Response();                                                         //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장
                tcp.Close();                                                                              //서버 연결 해제

                int val = Convert.ToInt32(recvMsg["regis_status"]);                                       //json형태의 데이터에 login_status라는 이름의 값을 찾아서 val변수에 저장

                if (val == 1)                                                                             //val=1이면 로그인 성공
                {
                    userM.init();
                    UserName.Text = string.Empty;
                    userId.Text   = string.Empty;
                    right.Text    = string.Empty;
                    position.Text = string.Empty;
                    MessageBox.Show("사용자가 등록이 되었습니다.");
                }
                else //아니면 실패
                {
                    MessageBox.Show("이미 존재하는 사원번호입니다.");
                }
            }
        }
예제 #2
0
        public void SelectOper(string _oper, int _page)
        {
            TcpSocket   tcp  = new TcpSocket();
            JsonParsing json = new JsonParsing();

            tcp.ConnectServer();
            byte[] data_oper = json.DataOperParse(oper, Convert.ToInt32(count.Text), cur_page);
            byte[] oper_info = tcp.DataParse(data_oper);
            tcp.Request(oper_info);           //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장
            int     cnt     = Convert.ToInt32(count.Text);

            totalPage = Convert.ToInt32(recvMsg["data_cnt"]) / cnt;
            if (totalPage % cnt != 0)
            {
                totalPage += 1;
            }
            tcp.Close();

            if (recvMsg.ContainsKey("ingot_data_oper"))
            {
                Data_Grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
                IngotOper(recvMsg);
            }
            else if (recvMsg.ContainsKey("wafer_data_oper"))
            {
                Data_Grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
                WaferOper(recvMsg);
            }
            page.Text = cur_page.ToString() + " / " + totalPage.ToString();
        }
예제 #3
0
        //잉곳 테이블을 조회하는 함수(새로고침)
        public void init()
        {
            TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
            string    send = "{\"ingot_manage\":\"null\"}";

            tcp.ConnectServer(); //서버 연결 시작
            byte[] sendMsg = Encoding.UTF8.GetBytes(send);
            byte[] buff    = tcp.DataParse(sendMsg);
            tcp.Request(buff);                //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

            tcp.Close();                      //서버 연결 해제

            DataTable ingot = new DataTable();

            //table의 칼럼 지정
            ingot.Columns.Add("잉곳ID", typeof(string));
            ingot.Columns.Add("생성진행현황", typeof(string));
            ingot.Columns.Add("생성 일 수", typeof(string));
            ingot.Columns.Add("시작시간", typeof(string));
            ingot.Columns.Add("완료시간", typeof(string));
            ingot.Columns.Add("장비ID", typeof(string));
            ingot.Columns.Add("생성자", typeof(string));
            //칼럼별 value값 지정
            JArray ingots = (JArray)recvMsg["ingot_manage"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장
            int    len    = ingots.Count;                    //json배열의 길이

            for (int i = 0; i < len; i++)                    //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장
            {
                ingot.Rows.Add(ingots[i]["ingot_id"], ingots[i]["ingot_state"], ingots[i]["ingot_create"], ingots[i]["ingot_start"],
                               ingots[i]["ingot_finish"], ingots[i]["equip_id"], ingots[i]["ingot_maker"]);
            }
            //값들을 테이블에 표시
            Ingot_Grid.DataSource = ingot;
        }
예제 #4
0
        //정보를 입력 후 변경버튼을 클릭하면 변경됨
        private void Update_Click(object sender, EventArgs e)
        {
            Menu menu = new Menu();

            if (userPw.Text == pwChk.Text)
            {
                TcpSocket   tcp  = new TcpSocket();                                                       //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
                JsonParsing json = new JsonParsing();                                                     //데이터를 받아오기 위해 클래스의 객체를 생성

                tcp.ConnectServer();                                                                      //서버 연결 시작
                byte[] update_data = json.UpdateParse(userID.Text, AES256_PW.EncryptString(userPw.Text)); //아이디와 패스워드를 json형식으로 받아와서 바이트로 바꿔줌
                byte[] update_info = tcp.DataParse(update_data);                                          //바이트로 바꾼 데이터를 파싱
                tcp.Request(update_info);                                                                 //서버로 데이터를 보내줌
                JObject recvMsg = tcp.Response();                                                         //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

                tcp.Close();                                                                              //서버 연결 해제

                int val = Convert.ToInt32(recvMsg["pw_update"]);                                          //json형태의 데이터에 login_status라는 이름의 값을 찾아서 val변수에 저장

                if (val == 1)                                                                             //val이 null이 아니면 로그인 성공
                {
                    MessageBox.Show("변경되었습니다.");
                    this.Visible = false;
                }
                else //아니면 실패
                {
                    MessageBox.Show("비밀번호 변경실패~!");
                }
            }
            else
            {
                MessageBox.Show("비밀번호가 일치하지 않습니다.");
            }
        }
예제 #5
0
        //삭제하고 싶은 경로를 테이블에서 선택 후 삭제버튼을 누리면 삭제 후 새로고침
        private void RouteDel_Click(object sender, EventArgs e)
        {
            TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
            string    send = "{\"route_del\":\"" + selectRoute + "\"}";

            tcp.ConnectServer(); //서버 연결 시작
            byte[] sendMsg = Encoding.UTF8.GetBytes(send);
            byte[] buff    = tcp.DataParse(sendMsg);
            tcp.Request(buff);                                      //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response();                       //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

            tcp.Close();                                            //서버 연결 해제

            int val = Convert.ToInt32(recvMsg["route_del_status"]); //json형태의 데이터에 login_status라는 이름의 값을 찾아서 val변수에 저장

            if (val == 1)
            {
                init();
                SelectRt.CurrentCell = null;
                route2.Text          = string.Empty;
                route1.Text          = string.Empty;
                route3.Text          = string.Empty;
                route4.Text          = string.Empty;
                route5.Text          = string.Empty;
                route6.Text          = string.Empty;
                route7.Text          = string.Empty;
                MetroFramework.MetroMessageBox.Show(this, "삭제 성공하였습니다.", "SUCCESS", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else //아니면 실패
            {
                SelectRt.CurrentCell = null;
                MetroFramework.MetroMessageBox.Show(this, "삭제 실패하였습니다.ㅠ", "FAILED", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
예제 #6
0
        //코드종류를 선택해서 코드ID 테이블에 띄워주는 함수(새로고침)
        public void init()
        {
            TcpSocket tcp  = new TcpSocket();
            string    send = "{\"code_type_select\":\"" + selectType + "\"}";

            tcp.ConnectServer(); //서버 연결 시작
            byte[] sendMsg = Encoding.UTF8.GetBytes(send);
            byte[] buff    = tcp.DataParse(sendMsg);
            tcp.Request(buff);                //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

            tcp.Close();                      //서버 연결 해제

            DataTable code = new DataTable();

            //table의 칼럼 지정
            code.Columns.Add("코드ID", typeof(string));
            //칼럼별 value값 지정
            JArray codes = (JArray)recvMsg["type_select_id"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장
            int    len   = codes.Count;                       //json배열의 길이

            for (int i = 0; i < len; i++)                     //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장
            {
                code.Rows.Add(codes[i]);
            }
            //값들을 테이블에 표시
            codeId_select.DataSource = code;
        }
예제 #7
0
        //등록된 경로들을 테이블에 표시하는 함수(새로고침)
        public void init()
        {
            TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
            string    send = "{\"route\":\"null\"}";

            tcp.ConnectServer(); //서버 연결 시작
            byte[] sendMsg = Encoding.UTF8.GetBytes(send);
            byte[] buff    = tcp.DataParse(sendMsg);
            tcp.Request(buff);                //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

            tcp.Close();                      //서버 연결 해제

            DataTable route = new DataTable();

            //table의 칼럼 지정
            route.Columns.Add("경로ID", typeof(string));

            //칼럼별 value값 지정
            JArray routes = (JArray)recvMsg["route_id"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장
            int    len    = routes.Count;                //json배열의 길이

            for (int i = 0; i < len; i++)                //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장
            {
                route.Rows.Add(routes[i]);
            }
            //값들을 테이블에 표시
            SelectRt.DataSource = route;
        }
예제 #8
0
        //첫 화면에 공정테이블을 불러와서 보여줌
        public EquipManagement()
        {
            InitializeComponent();
            TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
            string    send = "{\"equips\":\"null\"}";

            tcp.ConnectServer(); //서버 연결 시작
            byte[] sendMsg = Encoding.UTF8.GetBytes(send);
            byte[] buff    = tcp.DataParse(sendMsg);
            tcp.Request(buff);                //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

            tcp.Close();                      //서버 연결 해제

            DataTable equip = new DataTable();

            //table의 칼럼 지정
            equip.Columns.Add("공정ID", typeof(string));
            //칼럼별 value값 지정
            JArray equips = (JArray)recvMsg["equips_oper_id"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장
            int    len    = equips.Count;                      //json배열의 길이

            for (int i = 0; i < len; i++)                      //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장
            {
                equip.Rows.Add(equips[i]);
            }
            Oper_Grid.CurrentCell = null;

            //값들을 테이블에 표시
            Oper_Grid.DataSource = equip;
        }
예제 #9
0
        //아이디와 패스워드 입력후 로그인 버튼 클릭시 로그인
        private void logIn_Click(object sender, EventArgs e)
        {
            TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
            JsonParsing json = new JsonParsing(); //데이터를 받아오기 위해 클래스의 객체를 생성

            tcp.ConnectServer(); //서버 연결 시작
            byte[] login_data = json.LoginParse(ID.Text, AES256_PW.EncryptString(PW.Text)); //아이디와 패스워드를 json형식으로 받아와서 바이트로 바꿔줌
            byte[] log_info = tcp.DataParse(login_data); //바이트로 바꾼 데이터를 파싱
            tcp.Request(log_info); //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

            tcp.Close(); //서버 연결 해제

            string val = Convert.ToString(recvMsg["login_name"]); //json형태의 데이터에 login_status라는 이름의 값을 찾아서 val변수에 저장

            if (!val.Equals("null")) //val이 null이 아니면 로그인 성공
            {
                Person.name = val;

                this.Visible = false;
                Menu menu = new Menu();
                menu.ShowDialog();
            }
            else //아니면 실패
            {
                MetroFramework.MetroMessageBox.Show(this, "등록되지 않은 아이디이거나, 비밀번호가 틀렸습니다.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
예제 #10
0
        //첫 화면에 코드종류테이블을 보여줌
        public CodeManagement()
        {
            InitializeComponent();
            TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
            string    send = "{\"code_types\":\"null\"}";

            tcp.ConnectServer(); //서버 연결 시작
            byte[] sendMsg = Encoding.UTF8.GetBytes(send);
            byte[] buff    = tcp.DataParse(sendMsg);
            tcp.Request(buff);                //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

            tcp.Close();                      //서버 연결 해제

            DataTable code = new DataTable();

            //table의 칼럼 지정
            code.Columns.Add("코드종류", typeof(string));
            //칼럼별 value값 지정
            JArray codes = (JArray)recvMsg["code_types"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장
            int    len   = codes.Count;                   //json배열의 길이

            for (int i = 0; i < len; i++)                 //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장
            {
                code.Rows.Add(codes[i]);
            }
            //값들을 테이블에 표시
            codeType_select.DataSource  = code;
            codeType_select.CurrentCell = null;
        }
예제 #11
0
        //등록된 사용자들을 테이블에 보여주는 함수
        public void init()
        {
            TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
            string    send = "{\"users\":\"null\"}";

            tcp.ConnectServer(); //서버 연결 시작
            byte[] sendMsg = Encoding.UTF8.GetBytes(send);
            byte[] buff    = tcp.DataParse(sendMsg);
            tcp.Request(buff);                //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

            tcp.Close();                      //서버 연결 해제

            DataTable user = new DataTable();

            //table의 칼럼 지정
            user.Columns.Add("사원번호", typeof(string));
            user.Columns.Add("비밀번호", typeof(string));
            user.Columns.Add("이름", typeof(string));
            user.Columns.Add("직급", typeof(string));
            user.Columns.Add("권한", typeof(string));
            //칼럼별 value값 지정
            JArray users = (JArray)recvMsg["users"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장
            int    len   = users.Count;              //json배열의 길이

            for (int i = 0; i < len; i++)            //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장
            {
                user.Rows.Add(users[i]["user_id"], "*****", users[i]["user_name"], users[i]["user_pos"], users[i]["user_right"]);
            }
            User_Grid.Update();
            User_Grid.Refresh();
            //값들을 테이블에 표시
            User_Grid.DataSource = user;
        }
예제 #12
0
        //삭제하고 싶은 코드ID를 테이블에서 선택 후 삭제버튼 클릭시 삭제
        private void CodeDel_Click(object sender, EventArgs e)
        {
            TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
            string    send = "{\"code_del_id\":\"" + selectCode + "\"}";

            tcp.ConnectServer(); //서버 연결 시작
            byte[] sendMsg = Encoding.UTF8.GetBytes(send);
            byte[] buff    = tcp.DataParse(sendMsg);
            tcp.Request(buff);                                     //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response();                      //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

            tcp.Close();                                           //서버 연결 해제

            int val = Convert.ToInt32(recvMsg["code_del_status"]); //json형태의 데이터에 login_status라는 이름의 값을 찾아서 val변수에 저장

            if (val == 1)
            {
                init();
                codeType_select.CurrentCell = null;
                codeId_select.CurrentCell   = null;
                MetroFramework.MetroMessageBox.Show(this, "삭제 성공하였습니다. ^ㅡ^", "GOOD", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else //아니면 실패
            {
                codeType_select.CurrentCell = null;
                codeId_select.CurrentCell   = null;
                MetroFramework.MetroMessageBox.Show(this, "삭제 실패하였습니다. ㅠㅠ", "FAIL", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
예제 #13
0
        //수정하고 싶은 코드를 테이블에서 선택 후 정보들을 수정하고 저장 버튼을 클릭시 수정이 되며 새로고침
        private void Save_Click(object sender, EventArgs e)
        {
            TcpSocket   tcp  = new TcpSocket();                                                                                                                                                                                       //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
            JsonParsing json = new JsonParsing();                                                                                                                                                                                     //데이터를 받아오기 위해 클래스의 객체를 생성

            tcp.ConnectServer();                                                                                                                                                                                                      //서버 연결 시작
            byte[] code_data = json.CodeUpdateParse(selectCode, Comment.Text, codeAtt1.Text, codeAtt2.Text, codeAtt3.Text, codeAtt4.Text, codeAtt5.Text, codeAtt6.Text, codeAtt7.Text, codeAtt8.Text, codeAtt9.Text, codeAtt10.Text); //아이디와 패스워드를 json형식으로 받아와서 바이트로 바꿔줌
            byte[] code_info = tcp.DataParse(code_data);                                                                                                                                                                              //바이트로 바꾼 데이터를 파싱
            tcp.Request(code_info);                                                                                                                                                                                                   //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response();                                                                                                                                                                                         //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

            tcp.Close();                                                                                                                                                                                                              //서버 연결 해제

            int val = Convert.ToInt32(recvMsg["code_update_status"]);                                                                                                                                                                 //json형태의 데이터에 login_status라는 이름의 값을 찾아서 val변수에 저장

            if (val == 1)                                                                                                                                                                                                             //val=1이면 로그인 성공
            {
                init();
                codeType_select.CurrentCell = null;
                codeId_select.CurrentCell   = null;
                MetroFramework.MetroMessageBox.Show(this, "수정 성공하였습니다. ^ㅡ^", "GOOD", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else //아니면 실패
            {
                codeType_select.CurrentCell = null;
                codeId_select.CurrentCell   = null;
                MetroFramework.MetroMessageBox.Show(this, "수정 실패하였습니다. ㅠㅠ", "FAIL", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
예제 #14
0
        //코드ID 테이블의 행을 클릭하면 선택한 코드의 정보들을 텍스트박스에 보여줌
        private void CodeId_select_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                selectCode = codeId_select.Rows[e.RowIndex].Cells[0].Value.ToString();
                TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
                string    send = "{\"code_id_select\":\"" + selectCode + "\"}";
                tcp.ConnectServer();              //서버 연결 시작
                byte[] sendMsg = Encoding.UTF8.GetBytes(send);
                byte[] buff    = tcp.DataParse(sendMsg);
                tcp.Request(buff);                                //서버로 데이터를 보내줌
                JObject recvMsg = tcp.Response();                 //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장
                tcp.Close();                                      //서버 연결 해제

                JObject codeView = (JObject)recvMsg["code_view"]; //json형식의 변수지정 후 서버에서 받은 데이터를 저장

                Comment.Text   = codeView["code_comm"].ToString();
                codeAtt1.Text  = codeView["code_att_fir"].ToString();
                codeAtt2.Text  = codeView["code_att_sec"].ToString();
                codeAtt3.Text  = codeView["code_att_thr"].ToString();
                codeAtt4.Text  = codeView["code_att_four"].ToString();
                codeAtt5.Text  = codeView["code_att_fif"].ToString();
                codeAtt6.Text  = codeView["code_att_six"].ToString();
                codeAtt7.Text  = codeView["code_att_sev"].ToString();
                codeAtt8.Text  = codeView["code_att_eig"].ToString();
                codeAtt9.Text  = codeView["code_att_nin"].ToString();
                codeAtt10.Text = codeView["code_att_ten"].ToString();
            }
            else
            {
                return;
            }
        }
예제 #15
0
        //선택하고자하는 웨이트를 테이블에서 선택시 불량률을 테이블에 보여줌
        private void Wafer_Grid_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                selectwafer = Wafer_Grid.Rows[e.RowIndex].Cells[0].Value.ToString();
                TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
                string    send = "{\"wafer_faulty_id\":\"" + selectwafer + "\"}";
                tcp.ConnectServer();              //서버 연결 시작
                byte[] sendMsg = Encoding.UTF8.GetBytes(send);
                byte[] buff    = tcp.DataParse(sendMsg);
                tcp.Request(buff);                //서버로 데이터를 보내줌
                JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장
                tcp.Close();                      //서버 연결 해제

                DataTable error = new DataTable();
                //table의 칼럼 지정
                error.Columns.Add("불량코드ID", typeof(string));
                error.Columns.Add("불량수량", typeof(string));
                //칼럼별 value값 지정
                JArray errors = (JArray)recvMsg["wafer_faulty"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장
                int    len    = errors.Count;                    //json배열의 길이

                for (int i = 0; i < len; i++)
                {
                    error.Rows.Add(errors[i]["faulty_id"], errors[i]["faulty_quant"]);
                }
                //값들을 테이블에 표시
                errorRate.DataSource = error;
            }
            else
            {
                return;
            }
        }
예제 #16
0
        //생성버튼 클릭시 생성과 함께 테이블 새로고침
        private void Add_Click(object sender, EventArgs e)
        {
            TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
            string    send = "{\"ingot_start\":" + 1 + ", \"ingot_maker\":\"" + Person.name + "\"}";

            tcp.ConnectServer(); //서버 연결 시작
            byte[] sendMsg = Encoding.UTF8.GetBytes(send);
            byte[] buff    = tcp.DataParse(sendMsg);
            tcp.Request(buff);                //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

            tcp.Close();                      //서버 연결 해제

            int val = Convert.ToInt32(recvMsg["ingot_create_status"]);

            if (val == 1) //val=1이면 로그인 성공
            {
                init();
                Ingot_Grid.CurrentCell = null;
                MetroFramework.MetroMessageBox.Show(this, "잉곳을 생성합니다.", "GOOD", MessageBoxButtons.OK, MessageBoxIcon.Information);
                pr.Start();
            }
            else //아니면 실패
            {
                Ingot_Grid.CurrentCell = null;
                MetroFramework.MetroMessageBox.Show(this, "잉곳 생산에 실패하였습니다..", "FAILED", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
예제 #17
0
        //코드종류 테이블의 행을 클릭하면 선택한 코드종류의 코드ID들이 조회
        private void CodeType_select_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                selectType = codeType_select.Rows[e.RowIndex].Cells[0].Value.ToString();
                TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
                string    send = "{\"code_type_select\":\"" + selectType + "\"}";
                tcp.ConnectServer();              //서버 연결 시작
                byte[] sendMsg = Encoding.UTF8.GetBytes(send);
                byte[] buff    = tcp.DataParse(sendMsg);
                tcp.Request(buff);                //서버로 데이터를 보내줌
                JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장
                tcp.Close();                      //서버 연결 해제

                DataTable code = new DataTable();
                //table의 칼럼 지정
                code.Columns.Add("코드ID", typeof(string));
                //칼럼별 value값 지정
                JArray  codes   = (JArray)recvMsg["type_select_id"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장
                JObject codeAtt = (JObject)recvMsg["code_att"];

                int len = codes.Count;        //json배열의 길이

                for (int i = 0; i < len; i++) //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장
                {
                    code.Rows.Add(codes[i]);
                }
                //값들을 테이블에 표시
                codeId_select.DataSource  = code;
                codeId_select.CurrentCell = null;
                att1.Text      = codeAtt["att_fir"].ToString();
                att2.Text      = codeAtt["att_sec"].ToString();
                att3.Text      = codeAtt["att_thr"].ToString();
                att4.Text      = codeAtt["att_four"].ToString();
                att5.Text      = codeAtt["att_fif"].ToString();
                att6.Text      = codeAtt["att_six"].ToString();
                att7.Text      = codeAtt["att_sev"].ToString();
                att8.Text      = codeAtt["att_eig"].ToString();
                att9.Text      = codeAtt["att_nin"].ToString();
                att10.Text     = codeAtt["att_ten"].ToString();
                codeAtt1.Text  = string.Empty;
                codeAtt2.Text  = string.Empty;
                codeAtt3.Text  = string.Empty;
                codeAtt4.Text  = string.Empty;
                codeAtt5.Text  = string.Empty;
                codeAtt6.Text  = string.Empty;
                codeAtt7.Text  = string.Empty;
                codeAtt8.Text  = string.Empty;
                codeAtt9.Text  = string.Empty;
                codeAtt10.Text = string.Empty;
            }
            else
            {
                return;
            }
        }
예제 #18
0
        //제작할 웨이퍼의 정보에 적용시킬 제품정보를 콤보박스로 선택시 해당 제품정보의 경로가 표시
        private void SelectMS_SelectedIndexChanged(object sender, EventArgs e)
        {
            string    selectMs = selectMS.SelectedItem.ToString();
            TcpSocket tcp      = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
            string    send     = "{\"mscode_select\":\"" + selectMs + "\"}";

            tcp.ConnectServer(); //서버 연결 시작
            byte[] sendMsg = Encoding.UTF8.GetBytes(send);
            byte[] buff    = tcp.DataParse(sendMsg);
            tcp.Request(buff);                                 //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response();                  //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

            tcp.Close();                                       //서버 연결 해제

            JArray    routes  = (JArray)recvMsg["route_view"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장
            int       len     = routes.Count;                  //json배열의 길이
            ArrayList curList = new ArrayList();

            string[] nextList = new string[6];

            for (int i = 0; i < len; i++)
            {
                curList.Add(routes[i]["curr_route"].ToString());
            }
            curList.Remove("SAWING");
            for (int i = 0; i < len; i++)
            {
                for (int j = 0; j < curList.Count; j++)
                {
                    if (routes[i]["next_route"].ToString().Equals(curList[j].ToString()))
                    {
                        nextList[i] = routes[i]["next_route"].ToString();
                        curList.Remove(curList[j]);
                    }
                }
            }
            routeView.BeginUpdate();
            routeView.Columns.Clear();
            routeView.Items.Clear();
            routeView.View = View.Details;
            routeView.Columns.Add("", 0);
            routeView.Columns.Add("ROUTE", -2, HorizontalAlignment.Center);
            ListViewItem lvi = new ListViewItem();

            lvi.SubItems.Add("SAWING");
            routeView.Items.Add(lvi);
            foreach (var item in nextList)
            {
                ListViewItem lvi2 = new ListViewItem();
                lvi2.SubItems.Add(item);
                routeView.Items.Add(lvi2);
            }
            routeView.EndUpdate();
        }
예제 #19
0
        //테이블의 행 클릭시 행에 있는 값을 받아와서 텍스트박스에 보여줌
        private void Ingot_Grid_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                endTime     = null;
                selectIngot = Ingot_Grid.Rows[e.RowIndex].Cells[0].Value.ToString();
                TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
                string    send = "{\"ingot_id\":\"" + selectIngot + "\"}";
                tcp.ConnectServer();              //서버 연결 시작
                byte[] sendMsg = Encoding.UTF8.GetBytes(send);
                byte[] buff    = tcp.DataParse(sendMsg);
                tcp.Request(buff);                //서버로 데이터를 보내줌
                JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장
                tcp.Close();                      //서버 연결 해제

                JArray ingots = (JArray)recvMsg["ingot_data"];
                int    len    = ingots.Count - 1;
                if (ingots.Count == 0)
                {
                    Ingot_Id.Text  = string.Empty;
                    Cur_Temp.Text  = string.Empty;
                    Cur_Vel.Text   = string.Empty;
                    Cur_Len.Text   = string.Empty;
                    StartTime.Text = string.Empty;
                    RestTime.Text  = string.Empty;
                    User_Name.Text = string.Empty;
                    //MetroFramework.MetroMessageBox.Show(this, "데이터가 없습니다.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    Ingot_Id.Text  = ingots[len]["ingot_id"].ToString();
                    Cur_Temp.Text  = ingots[len]["curr_temp"].ToString() + "℃";
                    Cur_Vel.Text   = ingots[len]["curr_vel"].ToString() + "rpm";
                    Cur_Len.Text   = ingots[len]["curr_len"].ToString() + "m";
                    StartTime.Text = Ingot_Grid.Rows[e.RowIndex].Cells[3].Value.ToString();
                    endTime        = Ingot_Grid.Rows[e.RowIndex].Cells[4].Value.ToString();
                    if (endTime.Equals(""))
                    {
                        RestTime.Text = "진행중...";
                    }
                    else
                    {
                        TimeSpan date = DateTime.Parse(endTime) - DateTime.Parse(StartTime.Text);
                        RestTime.Text = date.Days.ToString() + "일" + date.Hours.ToString() + "시간" + date.Minutes.ToString() + "분" + date.Seconds.ToString() + "초";
                    }
                    User_Name.Text = Person.name;
                }
            }
            else
            {
                return;
            }
        }
예제 #20
0
        //원하는 경로를 테이블에서 선택시 해당 경로들을 텍스트박스에 표시
        private void SelectRt_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                selectRoute = SelectRt.Rows[e.RowIndex].Cells[0].Value.ToString();
                TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
                string    send = "{\"route_id\":\"" + selectRoute + "\"}";
                tcp.ConnectServer();              //서버 연결 시작
                byte[] sendMsg = Encoding.UTF8.GetBytes(send);
                byte[] buff    = tcp.DataParse(sendMsg);
                tcp.Request(buff);                             //서버로 데이터를 보내줌
                JObject recvMsg = tcp.Response();              //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장
                tcp.Close();                                   //서버 연결 해제

                JArray    routes   = (JArray)recvMsg["route"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장
                int       len      = routes.Count;
                ArrayList curList  = new ArrayList();
                string[]  nextList = new string[6];

                for (int i = 0; i < len; i++)
                {
                    curList.Add(routes[i]["curr_route"].ToString());
                }
                curList.Remove("SAWING");
                for (int i = 0; i < len; i++)
                {
                    for (int j = 0; j < curList.Count; j++)
                    {
                        if (routes[i]["next_route"].ToString().Equals(curList[j].ToString()))
                        {
                            nextList[i] = routes[i]["next_route"].ToString();
                            curList.Remove(curList[j]);
                        }
                    }
                }
                route1.Text = "SAWING";
                route2.Text = nextList[0];
                route3.Text = nextList[1];
                route4.Text = nextList[2];
                route5.Text = nextList[3];
                route6.Text = nextList[4];
                route7.Text = nextList[5];
            }
            else
            {
                return;
            }
        }
예제 #21
0
        //선택한 공정의 장비현황을 불러와서 테이블에 표시하는 함수(새로고침)
        public void init(string operselect)
        {
            TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
            string    send = "{\"oper_select_id\":\"" + operselect + "\"}";

            tcp.ConnectServer(); //서버 연결 시작
            byte[] sendMsg = Encoding.UTF8.GetBytes(send);
            byte[] buff    = tcp.DataParse(sendMsg);
            tcp.Request(buff);                //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

            tcp.Close();                      //서버 연결 해제

            DataTable oper = new DataTable();

            //table의 칼럼 지정
            oper.Columns.Add("장비ID", typeof(string));
            oper.Columns.Add("장비종류", typeof(string));
            oper.Columns.Add("장비상태", typeof(string));
            oper.Columns.Add("장비코멘트", typeof(string));
            oper.Columns.Add("장비입고날짜", typeof(string));
            oper.Columns.Add("장비관리자", typeof(string));
            oper.Columns.Add("장비수정날짜", typeof(string));
            //칼럼별 value값 지정
            JArray opers     = (JArray)recvMsg["oper_equip"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장
            int    len       = opers.Count;                   //json배열의 길이
            string operState = null;

            for (int i = 0; i < len; i++) //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장
            {
                if (Convert.ToInt32(opers[i]["oper_equip_state"]) == 0)
                {
                    operState = "대기중";
                }
                else
                {
                    operState = "사용중";
                }
                oper.Rows.Add(opers[i]["oper_equip_id"], opers[i]["oper_equip_type"], operState, opers[i]["oper_equip_comm"], opers[i]["oper_equip_rec_date"], opers[i]["oper_equip_man"], opers[i]["oper_equip_update"]);
            }
            //값들을 테이블에 표시
            Equip_Grid.DataSource   = oper;
            Equip_Grid.CurrentCell  = null;
            Eqiup_Event.CurrentCell = null;
        }
예제 #22
0
        //원하는 공정클릭시 해당 공정의 웨이퍼들이 테이블에 표시
        private void Select_Oper_SelectedIndexChanged(object sender, EventArgs e)
        {
            string    oper = select_Oper.SelectedItem.ToString();
            TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
            string    send = "{\"wafer_oper_id\":\"" + oper + "\"}";

            tcp.ConnectServer(); //서버 연결 시작
            byte[] sendMsg = Encoding.UTF8.GetBytes(send);
            byte[] buff    = tcp.DataParse(sendMsg);
            tcp.Request(buff);                //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

            tcp.Close();                      //서버 연결 해제

            DataTable wafer = new DataTable();

            //table의 칼럼 지정
            wafer.Columns.Add("웨이퍼ID", typeof(string));
            wafer.Columns.Add("잉곳ID", typeof(string));
            wafer.Columns.Add("블록ID", typeof(string));
            wafer.Columns.Add("수량", typeof(string));
            wafer.Columns.Add("생성일 수", typeof(string));
            wafer.Columns.Add("시작 시간", typeof(string));
            wafer.Columns.Add("완료 시간", typeof(string));
            wafer.Columns.Add("설명", typeof(string));
            wafer.Columns.Add("불량 수량", typeof(string));
            wafer.Columns.Add("현재 공정", typeof(string));
            wafer.Columns.Add("제품정보", typeof(string));
            wafer.Columns.Add("사용 된 장비", typeof(string));
            wafer.Columns.Add("생성자", typeof(string));
            //칼럼별 value값 지정
            JArray wafers = (JArray)recvMsg["wafer_select"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장
            int    len    = wafers.Count;                    //json배열의 길이

            for (int i = 0; i < len; i++)                    //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장
            {
                wafer.Rows.Add(wafers[i]["wafer_id"], wafers[i]["ingot_id"], wafers[i]["block_id"],
                               wafers[i]["wafer_quant"], wafers[i]["wafer_create"], wafers[i]["wafer_start"], wafers[i]["wafer_finish"],
                               wafers[i]["wafer_comm"], wafers[i]["wafer_fault"], wafers[i]["oper_id"], wafers[i]["mscode"],
                               wafers[i]["equip_id"], wafers[i]["wafer_maker"]);
            }
            //값들을 테이블에 표시
            Wafer_Grid.DataSource = wafer;
        }
예제 #23
0
        //웨이퍼ID를 입력 후 검색버튼 클릭시 검색하고자 하는 웨이퍼가 나옴
        private void LotSearch_Click(object sender, EventArgs e)
        {
            TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
            string    send = "{\"wafer_select_data\":\"" + lotNum.Text.ToString() + "\"}";

            tcp.ConnectServer(); //서버 연결 시작
            byte[] sendMsg = Encoding.UTF8.GetBytes(send);
            byte[] buff    = tcp.DataParse(sendMsg);
            tcp.Request(buff);                //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

            tcp.Close();                      //서버 연결 해제

            DataTable search = new DataTable();

            //table의 칼럼 지정
            search.Columns.Add("웨이퍼ID", typeof(string));
            search.Columns.Add("측정1(X좌표)", typeof(string));
            search.Columns.Add("측정1(Y좌표)", typeof(string));
            search.Columns.Add("측정2(X좌표)", typeof(string));
            search.Columns.Add("측정2(Y좌표)", typeof(string));
            search.Columns.Add("평탄도", typeof(string));
            search.Columns.Add("볼록함", typeof(string));
            search.Columns.Add("뒤틀림", typeof(string));
            search.Columns.Add("두께", typeof(string));
            search.Columns.Add("제품정보", typeof(string));
            search.Columns.Add("장비ID", typeof(string));
            search.Columns.Add("공정ID", typeof(string));
            search.Columns.Add("RPM", typeof(string));
            //칼럼별 value값 지정
            JArray searchs = (JArray)recvMsg["wafer_select_data"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장
            int    len     = searchs.Count;                        //json배열의 길이

            for (int i = 0; i < len; i++)                          //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장
            {
                search.Rows.Add(searchs[i]["wafer_id"], searchs[i]["wafer_pX1"], searchs[i]["wafer_pY1"], searchs[i]["wafer_pX2"], searchs[i]["wafer_pY2"],
                                searchs[i]["curr_ttv"], searchs[i]["curr_bow"], searchs[i]["curr_warp"], searchs[i]["curr_thk"], searchs[i]["mscode"],
                                searchs[i]["equip_id"], searchs[i]["oper_id"], searchs[i]["equip_rpm"]);
            }
            //값들을 테이블에 표시
            WaferMonuter.DataSource = search;

            lotNum.Text = string.Empty;
        }
예제 #24
0
        //추가할 경로들을 선택 후 추가버튼을 누르면 추가되고 새로고침
        private void Add_Click(object sender, EventArgs e)
        {
            if (routeAdd.CheckedItems.Count == 0)
            {
                MetroFramework.MetroMessageBox.Show(this, "공장을 선택해주세요!!!", "FAILED", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                TcpSocket   tcp      = new TcpSocket();   //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
                JsonParsing json     = new JsonParsing(); //데이터를 받아오기 위해 클래스의 객체를 생성
                string[]    selectRt = new string[routeAdd.CheckedItems.Count];
                for (int i = 0; i < routeAdd.CheckedItems.Count; i++)
                {
                    selectRt[i] = routeAdd.CheckedItems[i].ToString();
                }
                tcp.ConnectServer(); //서버 연결 시작

                byte[] route_data = json.RouteParse(selectRt);
                byte[] route_info = tcp.DataParse(route_data); //바이트로 바꾼 데이터를 파싱
                tcp.Request(route_info);                       //서버로 데이터를 보내줌

                JObject recvMsg = tcp.Response();              //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

                tcp.Close();                                   //서버 연결 해제

                int val = Convert.ToInt32(recvMsg["route_add_status"]);

                if (val == 1) //val=1이면 로그인 성공
                {
                    init();
                    SelectRt.CurrentCell = null;
                    MetroFramework.MetroMessageBox.Show(this, "추가 성공하였습니다.", "SUCCESS", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else //아니면 실패
                {
                    SelectRt.CurrentCell = null;
                    MetroFramework.MetroMessageBox.Show(this, "추가 실패하였습니다.", "FAILED", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                for (int i = 0; i < routeAdd.Items.Count; i++)
                {
                    routeAdd.SetItemChecked(i, false);
                }
            }
        }
예제 #25
0
        //제품정보를 추가할 때 경로를 선택하기 위해 콤보박스 클릭시 DB에 있는 경로테이블을 불러옴
        private void RouteId_add_Click(object sender, EventArgs e)
        {
            TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
            string    send = "{\"route\":\"null\"}";

            tcp.ConnectServer(); //서버 연결 시작
            byte[] sendMsg = Encoding.UTF8.GetBytes(send);
            byte[] buff    = tcp.DataParse(sendMsg);
            tcp.Request(buff);                           //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response();            //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

            tcp.Close();                                 //서버 연결 해제

            JArray routes = (JArray)recvMsg["route_id"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장

            routeId_add.Items.Clear();
            string[] selectRoute = routes.ToObject <string[]>();
            routeId_add.Items.AddRange(selectRoute);
        }
예제 #26
0
        private void Run()
        {
            while (threadFlag)
            {
                TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
                string    send = "{\"wafer_data\":\"null\"}";
                tcp.ConnectServer();              //서버 연결 시작
                byte[] sendMsg = Encoding.UTF8.GetBytes(send);
                byte[] buff    = tcp.DataParse(sendMsg);
                tcp.Request(buff);                //서버로 데이터를 보내줌
                JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장
                tcp.Close();                      //서버 연결 해제

                DataTable moniter = new DataTable();
                //table의 칼럼 지정
                moniter.Columns.Add("웨이퍼ID", typeof(string));
                moniter.Columns.Add("측정1(X좌표)", typeof(string));
                moniter.Columns.Add("측정1(Y좌표)", typeof(string));
                moniter.Columns.Add("측정2(X좌표)", typeof(string));
                moniter.Columns.Add("측정2(Y좌표)", typeof(string));
                moniter.Columns.Add("평탄도", typeof(string));
                moniter.Columns.Add("볼록함", typeof(string));
                moniter.Columns.Add("뒤틀림", typeof(string));
                moniter.Columns.Add("두께", typeof(string));
                moniter.Columns.Add("제품정보", typeof(string));
                moniter.Columns.Add("장비ID", typeof(string));
                moniter.Columns.Add("공정ID", typeof(string));
                moniter.Columns.Add("RPM", typeof(string));
                //칼럼별 value값 지정
                JArray moniters = (JArray)recvMsg["wafer_data"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장
                int    len      = moniters.Count;                //json배열의 길이

                for (int i = 0; i < len; i++)                    //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장
                {
                    moniter.Rows.Add(moniters[i]["wafer_id"], moniters[i]["wafer_pX1"], moniters[i]["wafer_pY1"], moniters[i]["wafer_pX2"], moniters[i]["wafer_pY2"],
                                     moniters[i]["curr_ttv"], moniters[i]["curr_bow"], moniters[i]["curr_warp"], moniters[i]["curr_thk"], moniters[i]["mscode"],
                                     moniters[i]["equip_id"], moniters[i]["oper_id"], moniters[i]["equip_rpm"]);
                }
                //값들을 테이블에 표시
                wafer_MsgRun(moniter);
                Thread.Sleep(1000);
            }
        }
예제 #27
0
        //장비종류를 공정ID로 불러옴
        private void Equip_Type_Click(object sender, EventArgs e)
        {
            TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
            string    send = "{\"equips\":\"null\"}";

            tcp.ConnectServer(); //서버 연결 시작
            byte[] sendMsg = Encoding.UTF8.GetBytes(send);
            byte[] buff    = tcp.DataParse(sendMsg);
            tcp.Request(buff);                //서버로 데이터를 보내줌
            JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

            tcp.Close();                      //서버 연결 해제

            JArray equips = (JArray)recvMsg["equips_oper_id"];

            Equip_Type.Items.Clear();
            string[] selectType = equips.ToObject <string[]>();
            Equip_Type.Items.AddRange(selectType);
        }
예제 #28
0
        //제작할 수량 및 정보를 입력 후 제작버튼을 클릭시 제작되며 테이블 새로고침
        private void Make_Click(object sender, EventArgs e)
        {
            if (selectMS.SelectedItem == null || Qty.Text.Equals("") || Comment.Text.Equals(""))
            {
                MetroFramework.MetroMessageBox.Show(this, "데이터를 입력해주세요 ㅠㅠ", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                TcpSocket   tcp  = new TcpSocket();   //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
                JsonParsing json = new JsonParsing(); //데이터를 받아오기 위해 클래스의 객체를 생성

                tcp.ConnectServer();                  //서버 연결 시작

                byte[] wafer_data = json.WaferMakeParse(selectMS.SelectedItem.ToString(), Qty.Text, Comment.Text, Person.name);
                byte[] wafer_info = tcp.DataParse(wafer_data); //바이트로 바꾼 데이터를 파싱
                tcp.Request(wafer_info);                       //서버로 데이터를 보내줌

                JObject recvMsg = tcp.Response();              //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

                tcp.Close();                                   //서버 연결 해제

                int val = Convert.ToInt32(recvMsg["wafer_add_status"]);

                if (val == 1)
                {
                    init();
                    Wafer_Grid.CurrentCell = null;
                    errorRate.CurrentCell  = null;
                    Qty.Text     = string.Empty;
                    Comment.Text = string.Empty;
                    selectMS.Items[selectMS.SelectedIndex] = string.Empty;
                    routeView.Clear();
                    MetroFramework.MetroMessageBox.Show(this, "생성을 시작합니다.", "SUCCESS", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else //아니면 실패
                {
                    Wafer_Grid.CurrentCell = null;
                    errorRate.CurrentCell  = null;
                    MetroFramework.MetroMessageBox.Show(this, "사용할 수 있는 장비가 없습니다.", "FAILED", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }
예제 #29
0
        private void Run()
        {
            while (threadFlag)
            {
                Console.WriteLine("스레드 반복 시작");
                TcpSocket tcp  = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
                string    send = "{\"ingot_make\":\"null\"}";
                tcp.ConnectServer();              //서버 연결 시작
                byte[] sendMsg = Encoding.UTF8.GetBytes(send);
                byte[] buff    = tcp.DataParse(sendMsg);
                tcp.Request(buff);                //서버로 데이터를 보내줌
                JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장
                tcp.Close();                      //서버 연결 해제

                int makes = Convert.ToInt32(recvMsg["ingot_make"]);
                if (makes == 1)
                {
                    ingot_BoolRun(true);
                }
                else
                {
                    ingot_BoolRun(false);
                }
                if (selectIngot == null) //아무것도 클릭 안했을 때
                {
                    ingot_MsgRun(0);
                }
                else if (endTime == null) //현재 진행 중인 잉곳을 클릭했을 때
                {
                    ingot_MsgRun(ProgressInfo.status);
                    if (ingotMoniter.Value == 100)
                    {
                        MetroFramework.MetroMessageBox.Show(this, "잉곳생성이 완료되었습니다.", "GOOD", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else //완료된 잉곳을 클릭했을 때
                {
                    ingot_MsgRun(pr.getFullStatus());
                }
                Thread.Sleep(1000);
            }
        }
예제 #30
0
        //추가하고자 하는 장비의 정보를 입력후 추가버튼을 누르면 추가가 되며 테이블 새로고침
        private void Add_Click(object sender, EventArgs e)
        {
            TcpSocket   tcp  = new TcpSocket();   //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성
            JsonParsing json = new JsonParsing(); //데이터를 받아오기 위해 클래스의 객체를 생성

            if (Equip_Name.Text.Equals("") || Equip_Type.SelectedItem == null)
            {
                MetroFramework.MetroMessageBox.Show(this, "정보를 입력하세요.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                byte[] equip_data = json.EquipParse(Equip_Name.Text, Equip_Type.SelectedItem.ToString(), Equip_Type.SelectedItem.ToString(), equip_Comment.Text, Person.name); //아이디와 패스워드를 json형식으로 받아와서 바이트로 바꿔줌
                tcp.ConnectServer();                                                                                                                                           //서버 연결 시작
                byte[] equip_info = tcp.DataParse(equip_data);                                                                                                                 //바이트로 바꾼 데이터를 파싱
                tcp.Request(equip_info);                                                                                                                                       //서버로 데이터를 보내줌
                JObject recvMsg = tcp.Response();                                                                                                                              //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장

                tcp.Close();                                                                                                                                                   //서버 연결 해제

                int val = Convert.ToInt32(recvMsg["equip_add_status"]);                                                                                                        //json형태의 데이터에 login_status라는 이름의 값을 찾아서 val변수에 저장

                if (val == 1)
                {
                    init(selectoper);
                    Oper_Grid.CurrentCell   = null;
                    Equip_Grid.CurrentCell  = null;
                    Eqiup_Event.CurrentCell = null;
                    Equip_Name.Text         = string.Empty;
                    equip_Comment.Text      = string.Empty;
                    Equip_Type.Items[Equip_Type.SelectedIndex] = string.Empty;
                    MetroFramework.MetroMessageBox.Show(this, "등록 성공했습니다.", "SUCCESS", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else //아니면 실패
                {
                    Oper_Grid.CurrentCell   = null;
                    Equip_Grid.CurrentCell  = null;
                    Eqiup_Event.CurrentCell = null;
                    MetroFramework.MetroMessageBox.Show(this, "등록 실패했습니다.", "FAILED", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }