Esempio n. 1
0
        private void OnReceive(IAsyncResult ar)
        {
            try
            {
                clientSocket.EndReceive(ar);

                CNetData msgReceived = new CNetData(byteData);
                if (_event_devnetdata != null)
                {
                    _event_devnetdata(msgReceived);
                }

                byteData = new byte[1024];
                clientSocket.BeginReceive(byteData,
                                          0,
                                          byteData.Length,
                                          SocketFlags.None,
                                          new AsyncCallback(OnReceive),
                                          null);
            }
            catch (ObjectDisposedException)
            { }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message, "CNetClient_OnReceive", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
            }
        }
Esempio n. 2
0
 private void ExamForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     timer1.Stop();
     //if (videoTimer != null)
     //    videoTimer.Stop();
     //if (Directory.Exists(tempBmpDir))
     //    foreach (string file in Directory.GetFiles(tempBmpDir))
     //        File.Delete(file);
     cm.Close();
     StateManager.Close();
     if (_isExam)
     {
         student.Close();
         idcardinfo.CloseIDcardDev();
         if (settings.IsNetwork)
         {
             CNetData data = new CNetData();
             data.cmdCommand = Command.Logout;
             data.intDevnum  = 0;
             data.strZjbh    = null;
             Client.SendData(data);
             Client.Close();
         }
     }
     this.camera.CloseCamera();
     //displaycomm.Close();
 }
Esempio n. 3
0
 private void buttonX3_Click(object sender, EventArgs e)
 {
     if (settings.IsNetwork)
     {
         CNetData data = new CNetData();
         data.cmdCommand = Command.Updatelist;
         data.intDevnum  = settings.Devnum;
         Client.SendData(data);
     }
 }
Esempio n. 4
0
        private void OnReceive(IAsyncResult ar)
        {
            try
            {
                clientSocket.EndReceive(ar);


                bool wexit   = false;
                int  tmpcp   = 0;//数组位置指针
                int  tmpsize = 0;

                while (!wexit)
                {
                    tmpsize = BitConverter.ToInt32(byteData, tmpcp);
                    if ((tmpsize == 0) || (tmpsize > 100))
                    {
                        wexit = true;
                    }
                    else
                    {
                        byte[] tmpdata = new byte[tmpsize];
                        Array.Copy(byteData, tmpcp, tmpdata, 0, tmpsize);
                        tmpcp = tmpcp + tmpsize;

                        CNetData msgReceived = new CNetData(tmpdata);
                        if (_event_devnetdata != null)
                        {
                            _event_devnetdata(msgReceived);
                        }
                    }
                }



                //CNetData msgReceived = new CNetData(byteData);
                //if (_event_devnetdata != null)
                //{
                //    _event_devnetdata(msgReceived);
                //}

                byteData = new byte[1024];
                clientSocket.BeginReceive(byteData,
                                          0,
                                          byteData.Length,
                                          SocketFlags.None,
                                          new AsyncCallback(OnReceive),
                                          null);
            }
            catch (ObjectDisposedException)
            { }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message, "CNetClient_OnReceive", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
            }
        }
Esempio n. 5
0
 public void SendData(CNetData datasend)
 {
     byte[] b = datasend.ToByte();
     try
     {
         clientSocket.Send(b, 0, b.Length, SocketFlags.None);
     }
     catch
     {
     }
 }
Esempio n. 6
0
 private void buttonX2_Click(object sender, EventArgs e)
 {
     if (settings.IsNetwork)
     {
         CNetData data = new CNetData();
         data.cmdCommand = Command.Jjks;
         data.intDevnum  = settings.Devnum;
         data.strZjbh    = student.Zkzmbh;
         Client.SendData(data);
     }
     InitStudent();
     ButtonStart.Text = "申请考试";
     buttonX2.Enabled = false;
     //displaycomm.ShowText("准备考试");
 }
Esempio n. 7
0
 private void ExamForm_Load(object sender, EventArgs e)
 {
     camera      = new zhuangkao.video.Camera(settings.YuntaiChannel);
     camera.Dock = DockStyle.Fill;
     this.panelExCameraWhole.Controls.Add(camera);
     this.Move   += camera.Camera_Move;
     this.Resize += camera.Camera_Resize;
     if (_isExam)
     {
         //同步排队列表
         if (settings.IsNetwork)
         {
             CNetData data = new CNetData();
             data.cmdCommand = Command.Updatelist;
             data.intDevnum  = settings.Devnum;
             Client.SendData(data);
         }
     }
 }
Esempio n. 8
0
        private void OnConnect(IAsyncResult ar)
        {
            try
            {
                clientSocket.EndConnect(ar);

                //We are connected so we login into the server
                CNetData msgToSend = new CNetData();
                msgToSend.cmdCommand = Command.Login;
                msgToSend.intDevnum  = intDevnum;
                msgToSend.strZjbh    = null;

                byte[] b = msgToSend.ToByte();

                //Send the message to the server
                clientSocket.BeginSend(b, 0, b.Length, SocketFlags.None, new AsyncCallback(OnSend), null);
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message, "CNetClient_OnConnect", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
            }
        }
Esempio n. 9
0
        private void StartButton_Click(object sender, EventArgs e)
        {
            if (_isExam)
            {
                if (ButtonStart.Text == "申请考试")
                {
                    if (settings.IsNetwork)
                    {
                        CNetData GetStudent_data = new CNetData();
                        GetStudent_data.cmdCommand = Command.GetStudent;
                        GetStudent_data.intDevnum  = settings.Devnum;
                        Client.SendData(GetStudent_data);
                    }
                    else
                    {
                        getStudentInfoFromLocal();
                    }
                    return;
                }
                //TextBox_Input.Enabled = false;
            }
            for (int i = 0; i < 6; i++)
            {
                //gan[i].Stat = cm.CurrData.gan[i];
                //xian[i].Stat = cm.CurrData.xian[i];

                //if (i == 3)
                //{
                //    xian[6].Stat = cm.CurrData.xian[3];//4线隔断的水平线段,只用于显示
                //    xian[7].Stat = cm.CurrData.xian[3];
                //    xian[8].Stat = cm.CurrData.xian[3];
                //}
                //if (cm.CurrData.gan[i] == 0)
                if (gan[i].Stat == 0)
                {
                    MessageBox.Show("请检查第" + (i + 1).ToString() + "杆信号是否正常!", "提示");
                    return;
                }
                //if (cm.CurrData.xian[i] == 0)
                if (xian [i].Stat == 0)
                {
                    MessageBox.Show("请检查第" + (i + 1).ToString() + "线信号是否正常!", "提示");
                    return;
                }
            }

            isstart                    = true;
            CState.stopcount           = 0;
            toolStripStatusLabel1.Text = "状态:开始考试";
            myTrace.Initial(che);
            Hkey.StartHotkey();
            pictureBox1.Focus();
            if (_isExam)
            {
                CVoice.Play(student.Xm + ",请上车");
                ButtonStart.Enabled = false;
                //储存考生照片
                if (!Directory.Exists(Environment.CurrentDirectory + @"\ScreenShot\"))
                {
                    Directory.CreateDirectory(Environment.CurrentDirectory + @"\ScreenShot\");
                }
                if (!camera.CaptureImage(Environment.CurrentDirectory + @"\ScreenShot\" + student.Sfzmhm + "_" + Guid.NewGuid().ToString(null) + ".bmp"))
                {
                    MessageBox.Show("拍照失败!");
                }
                if (settings.IsNetwork)
                {
                    CNetData tmpdata = new CNetData();
                    tmpdata.cmdCommand = Command.Ksks;
                    tmpdata.intDevnum  = settings.Devnum;
                    Client.SendData(tmpdata);
                }
                buttonX2.Enabled = false;
            }
            else
            {
                buttonX4.Enabled = true;
                CVoice.Play("请上车");
            }
            camera.Channel = settings.GaoChannel;

            if (_isExam)
            {
                //在此处加摄像开始
                //bmpCounter = 0;
                //if (Directory.Exists(tempBmpDir))
                //    foreach (string file in Directory.GetFiles(tempBmpDir))
                //        File.Delete(file);
                //videoTimer = new System.Windows.Forms.Timer();
                //videoTimer.Interval = 100;
                //videoTimer.Tick += new EventHandler(videoTimer_Tick);
                //videoTimer.Start();
            }

            //displaycomm.ShowText("正在考试");
            StateManager.CurrState = statemanager.State0;
            StateManager.CurrState.Start();
            ButtonStart.Enabled = false;
        }
Esempio n. 10
0
        public void KaoShiEndFun(int kscj, string sm)//考试结束处理函数
        {
            //displaycomm.ShowText(sm);
            StateManager.Close();
            isstart = false;
            Hkey.StopHotkey();
            //MessageBox.Show(sm+"考试结束!");
            //button1.Enabled = true;
            if (_isExam)
            {
                //在此处添加摄像停止并保存功能
                //videoTimer.Stop();
                //string videoDir = Environment.CurrentDirectory + @"\Video\";
                //if (!Directory.Exists(videoDir))
                //    Directory.CreateDirectory(videoDir);
                //string destPath = videoDir + student.Lsh + Guid.NewGuid().ToString() + ".avi";

                //makeVideo(tempBmpDir, destPath);

                if ((kscj == 1) || (student.HuiHeShu == 2))
                {
                    //打印合格
                    //清除输入内容,解除输入框只读
                    //此处为河南省考表打印格式,需根据地方需求而改变

                    //myprint.ksddstr = settings.Ksdd;
                    //myprint.ksrqstr = System.DateTime.Now.ToString();
                    //myprint.ksxmstr = student.Xm;
                    //myprint.ksyxmstr = student.Ksy1;
                    //myprint.kscjstr = "1";
                    //myprint.Print();   //取消注释即可打印

                    //-----------写入考试结果到数据库--------------
                    if (student.HuiHeShu == 1)
                    {
                        student.KS1    = sm;
                        label_ks1.Text = "第一回合考试:" + sm;
                    }
                    else
                    {
                        student.KS2    = sm;
                        label_ks2.Text = "第二回合考试:" + sm;
                    }
                    //Bitmap bm = new Bitmap(pictureBoxTrace.Image);
                    //bm.Save(@"C:\" + Guid.NewGuid().ToString(null) + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp);
                    student.Kscj = kscj; //写入考试成绩
                    student.Kscs++;      //考试次数加1
                    student.Ksy1 = comboBox1.Text;
                    student.Ksy2 = comboBox2.Text;

                    if (!student.SaveInfo())
                    {
                        MessageBox.Show("数据库写错误!");
                    }
                    else
                    {
                        //考试完成,发送kswc命令到点名中心
                        if (settings.IsNetwork)
                        {
                            CNetData tmpdata = new CNetData();
                            tmpdata.cmdCommand = Command.Kswc;
                            tmpdata.intDevnum  = settings.Devnum;
                            tmpdata.strZjbh    = student.Zkzmbh;
                            Client.SendData(tmpdata);
                            ButtonStart.Text    = "申请考试";
                            ButtonStart.Enabled = true;
                        }
                        InitStudent();
                    }
                    CVoice.Play(student.Xm + "?" + sm + "?考试结束");
                    MessageBox.Show(sm + "! 考试结束!");

                    //------------初始化输入信息----------------
                    //TextBox_Input.Enabled = true;
                    //TextBox_Input.Text = "";
                    //for (int i = 1; i < 7; i++)
                    //{
                    //    StudentText[i].ReadOnly = false;
                    //    StudentText[i].Text = "";
                    //}
                    //StudentText[0].Focus();
                    student.Clear();
                    label_ks1.Text = "第一回合考试:";
                    label_ks2.Text = "第二回合考试:";
                    student.GetKsNumber(); //得到考试人数
                    label_pass.Text   = "合格:" + student.PassNumber.ToString() + "人";
                    label_nopass.Text = "不合格:" + student.NoPassNumber.ToString() + "人";
                    label_sum.Text    = "共计:" + Convert.ToString(student.PassNumber + student.NoPassNumber) + "人";
                }
                else
                {
                    label_ks1.Text = "第一回合考试:" + sm;
                    CVoice.Play(student.Xm + "?" + sm + "?第一回合结束");
                    MessageBox.Show(sm + "! 第一回合结束!");
                    student.KS1         = sm;
                    student.HuiHeShu    = 2;
                    ButtonStart.Enabled = true;
                }
                if (!Directory.Exists(Environment.CurrentDirectory + @"\Trace\"))
                {
                    Directory.CreateDirectory(Environment.CurrentDirectory + @"\Trace\");
                }
                SaveTrace(Environment.CurrentDirectory + @"\Trace\" + student.Sfzmhm + "_" + Guid.NewGuid().ToString(null) + ".bmp");
            }
            else
            {
                if (kscj == 1)
                {
                    MessageBox.Show(sm + "!");
                }
                else
                {
                    CVoice.Play(sm + ",练习考试不合格");
                    MessageBox.Show(sm + ",练习考试不合格!");
                }
                buttonX4.Enabled = false;
            }
            ChangDiInit();
        }
Esempio n. 11
0
        private void netclient_Event_Devnetdata(CNetData data)
        {
            switch (data.cmdCommand)
            {
            case Command.Zkzhm:
                if (label_xm.InvokeRequired || label_lsh.InvokeRequired || label_zkzhm.InvokeRequired)
                {
                    label_xm.BeginInvoke(new Labelinvoke(netclient_Event_Devnetdata), data);
                }
                else
                {
                    if (student.GetStudentInfo(data.strZjbh))
                    {
                        label_xm.Text    = "姓名:" + student.Xm;
                        label_lsh.Text   = "流水号:" + student.Lsh;
                        label_zkzhm.Text = "准考证:" + student.Zkzmbh;
                        label_sfzhm.Text = "身份证:" + student.Sfzmhm;
                        label_kscx.Text  = "考试车型:" + student.Kscx;
                        label_kscs.Text  = "考试次数:" + student.Kscs.ToString();
                        label_jbr.Text   = "经办人:" + student.Jbr;

                        ButtonStart.Text = "开始考试";
                        //displaycomm.ShowText(student.Xm);
                        buttonX2.Enabled = true;
                        ButtonStart.Focus();
                    }
                }
                break;

            case Command.AddStudent:
                if (StudentlistView.InvokeRequired)
                {
                    StudentlistView.BeginInvoke(new Labelinvoke(netclient_Event_Devnetdata), data);
                }
                else
                {
                    AddStudentforlistview(data.strZjbh, data.Xm);
                }
                break;

            case Command.DeleteStudent:
                if (StudentlistView.InvokeRequired)
                {
                    StudentlistView.BeginInvoke(new Labelinvoke(netclient_Event_Devnetdata), data);
                }
                else
                {
                    DeleteStudentforlistview(data.strZjbh);
                }
                break;

            case Command.ClearStudent:
                if (StudentlistView.InvokeRequired)
                {
                    StudentlistView.BeginInvoke(new Labelinvoke(netclient_Event_Devnetdata), data);
                }
                else
                {
                    ClearStudentlistview();
                }
                break;
            }
        }