/* * 声音 * 显示牌 * 摄像 * 用户界面 * 网络中心 */ protected override void ExamStart() { if (cand != null) { cand.Ksy1 = comboBox1.Text; cand.Ksy2 = comboBox2.Text; if (examTimes == 0) { SoundChange(cand.Xm + ",请上车,开始考试!"); } else { SoundChange(cand.Xm + ",第二回合开始考试!"); } LEDDisplayChange("正在考试"); CameraChannelChange(settings.CameraConfig.GaoChannel); if (examTimes == 0) { EnableCtrl(this.btnXReject, false); } CNetData tmpdata = new CNetData(); tmpdata.cmdCommand = Command.Ksks; tmpdata.intDevnum = settings.Devnum; Client.SendData(tmpdata); } }
public CNetData Encode(CMessage msg) { ushort id = msg.GetID(); CNetData data = new CNetData(4096); SGTMsgHeader head = new SGTMsgHeader(); head.wMsgID = id; head.Encode(data); EncoderFunc pfnEncode = FindEncodeFunc(id); if (null == pfnEncode) { return(null); } if (-1 == pfnEncode(msg, ref data)) { return(null); } head.wDataLen = (ushort)(data.GetDataLen() - 8); head.wCheckSum = (ushort)((head.wDataLen ^ 0xBBCC) & 0x88AA); data.Replace(0, BitConverter.GetBytes(CNetData.Inverse(head.wCheckSum))); data.Replace(4, BitConverter.GetBytes(CNetData.Inverse(head.wDataLen))); return(data); }
public void OnRecv(byte[] buffer, int offset) { CNetData data = new CNetData(); data.Prepare(buffer, offset); SGTMsgHeader head = new SGTMsgHeader(); head.Decode(data); CMessage msg = Decode((ushort)head.wMsgID, data); //Debug.Log("Recv=" + msg.GetType().ToString()); if (msg != null) { lock (m_lock) { m_MessageList.Add(msg); } } else { Debug.Log(head.wMsgID.ToString() + " Decode Failed!"); } }
public bool Send(CMessage msg) { if (msg == null) { return(false); } if (msg.GetID() == 0xffff) { return(false); } if (m_bConnect) { CNetData data = SGDP.GetInstance().Encode(msg); if (data == null) { return(false); } //Debug.Log("Send=" + msg.GetType().ToString()); if (!m_Send.Send(ref data)) { Debug.Log("Send Message DisConnect"); DisConnect(); return(false); } } return(true); }
private void treeViewParaman_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Node.Nodes.Count > 0) { return; } listViewParm.Items.Clear(); int fileNo = 0; int recNo = 0; if (e.Node.Parent == null) { fileNo = e.Node.Index; recNo = 0; } else { fileNo = e.Node.Parent.Index; recNo = e.Node.Index; } short clientNo = CNetData.GetActiveClientNo(); int ret = AddParItemFrmNet(fileNo, recNo, clientNo); if (ret < 0) { MessageBox.Show("网络读取参数出错!"); } }
/* * 考生数据处理(次数+1、状态置为1、考试成绩、设置回合数、考试结果信息、) * 用户界面(考试合格提示框,更新结果信息面板) * 声音(姓名+考试结果+考试结束) * 显示牌(考试结果) * 存盘打印 * 网络中心通信 */ protected override void ExamPass(string msg) { examTimes = examTimes + 1; if (cand != null) { cand.Kscs++; cand.Zt = "1"; cand.Kscj = 100; if (examTimes == 1) { cand.KS1 = msg; } if (examTimes == 2) { cand.KS2 = msg; } SoundChange(cand.Xm + "," + msg + ",考试结束。"); LEDDisplayChange(msg); ExamResultReady(examTimes, msg); ShowMsgBox(this, msg); StoreAndPrint(); CNetData tmpdata = new CNetData(); tmpdata.cmdCommand = Command.Kswc; tmpdata.intDevnum = settings.Devnum; tmpdata.strZjbh = cand.Zkzmbh; Client.SendData(tmpdata); } ResetPanel(); }
public static uint ParsePackage(ref byte[] data, uint offset, uint size) { //包头不完整 if (size < 14) { return(0); } else { int temp = (int)offset + DATA_LEN_OFFSET; ushort iDataLen = CNetData.Inverse(Helper.ReadU16(data, ref temp)); temp = (int)offset + MSG_OFFSET; ushort iMsgID = CNetData.Inverse(Helper.ReadU16(data, ref temp)); { if (iDataLen + 8 <= size) //大于一个包 { return((uint)iDataLen + 8); } else //包内容不完整 { return(0); } } } }
//申请考试 private void ButtonStart_Click(object sender, EventArgs e) { CNetData GetStudent_data = new CNetData(); GetStudent_data.cmdCommand = Command.GetStudent; GetStudent_data.intDevnum = settings.Devnum; Client.SendData(GetStudent_data); }
public void Decode(CNetData data) { data.Del(ref wCheckSum); data.Del(ref wMark); data.Del(ref wDataLen); data.Del(ref byFlags); data.Del(ref byOptLen); data.Del(ref wMsgID); data.Del(ref dwTransID); }
public void Encode(CNetData data) { data.Add(wCheckSum); data.Add(wMark); data.Add(wDataLen); data.Add(byFlags); data.Add(byOptLen); data.Add(wMsgID); data.Add(dwTransID); }
//拒绝考生 private void btnXReject_Click(object sender, EventArgs e) { CNetData data = new CNetData(); data.cmdCommand = Command.Jjks; data.intDevnum = settings.Devnum; data.strZjbh = cand.Zkzmbh; Client.SendData(data); ResetPanel(); }
public CMessage Decode(ushort iMsgID, CNetData data) { DecoderFunc pfnDecode = FindDecodeFunc(iMsgID); if (null == pfnDecode) { return(null); } return(pfnDecode(ref data)); }
//关闭资源 public override void CloseResources() { base.CloseResources(); CNetData data = new CNetData(); data.cmdCommand = Command.Logout; data.intDevnum = settings.Devnum; data.strZjbh = null; Client.SendData(data); Client.Close(); }
//网络事件 private void Client_Event_Devnetdata(CNetData data) { switch (data.cmdCommand) { case Command.Zkzhm: cand = DALcand.GetStudentInfo(data.strZjbh); if (cand != null) { EnableAndSetText(this.label_xm, true, "姓名:" + cand.Xm); EnableAndSetText(this.label_lsh, true, "流水号:" + cand.Lsh); EnableAndSetText(this.label_zkzhm, true, "准考证:" + cand.Zkzmbh); EnableAndSetText(this.label_sfzhm, true, "身份证:" + cand.Sfzmhm); EnableAndSetText(this.label_kscx, true, "考试车型:" + cand.Kscx); EnableAndSetText(this.label_kscs, true, "考试次数:" + cand.Kscs.ToString()); EnableAndSetText(this.label_jbr, true, "经办人:" + cand.Jbr); EnableAndSetText(this.label_kchp, true, "考车号牌:" + cand.Kchp); EnableCtrl(this.btnXReject, true); EnableCtrl(this.ButtonStart, false); if (this.ExamCtrl != null) { EnableCtrl(this.ExamCtrl, true); LEDDisplayChange(cand.Xm); } } break; case Command.AddStudent: if (candQuery != null) { candQuery.AddCandidate(data.strZjbh, data.Xm); } break; case Command.DeleteStudent: if (candQuery != null) { candQuery.DeleteCandidate(data.strZjbh); } break; case Command.ClearStudent: if (candQuery != null) { candQuery.ClearCandidate(); } break; } }
public bool Send(ref CNetData sendData) { int iSend = 0; lock (m_Lock) { try { iSend = m_Socket.Send(sendData.m_Buffer, sendData.m_iPos, 0); } catch (Exception e) { SGDP.DebugPrint(e.Message); return(false); } } return(true); }
private void NetStudentinforPanel_Load(object sender, EventArgs e) { DALcand = new NetDALCandidate(settings); try { //准备客户端连接 Client = new CNetClient(settings.ServerIP, settings.Devnum); Client.Connect(); Client.Event_Devnetdata += new CNetClient.D_DEVNETDATA(Client_Event_Devnetdata); //更新排队列表 CNetData data = new CNetData(); data.cmdCommand = Command.Updatelist; data.intDevnum = settings.Devnum; Client.SendData(data); } catch { MessageBox.Show("不能与点名中心建立网络连接", settings.Devnum.ToString()); } }
protected override void ExamFail(string msg) { examTimes = examTimes + 1; if (cand != null) { if (examTimes == 1) { cand.Kfxm = CKfxm.GetKfxm(msg); cand.KS1 = msg; SoundChange(cand.Xm + "," + msg + ",第一回合结束。"); } if (examTimes == 2) { cand.Kfxm = cand.Kfxm.Trim() + "," + CKfxm.GetKfxm(msg).Trim(); cand.Kscs++; cand.Zt = "2"; cand.Kscj = 0; cand.KS2 = msg; SoundChange(cand.Xm + "," + msg + ",考试结束。"); StoreAndPrint(); CNetData tmpdata = new CNetData(); tmpdata.cmdCommand = Command.Kswc; tmpdata.intDevnum = settings.Devnum; tmpdata.strZjbh = cand.Zkzmbh; Client.SendData(tmpdata); } LEDDisplayChange(msg); ExamResultReady(examTimes, msg); ShowMsgBox(this, msg); } if (examTimes == 2) { ResetPanel(); } }
public void InitParamanTreeView() { if (isParmanRead) { return; } treeViewParaman.Nodes.Clear(); short clientNo = CNetData.GetActiveClientNo(); if (NetDll.HncNetIsConnect(clientNo) == 0) { treeViewParaman.Nodes.Add(new TreeNode(STR_NO_CONNECTION)); } else { int ret = AddParamanItemFrmNet(clientNo); if (ret < 0) { MessageBox.Show("网络读取参数结构错误!"); } } }