| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net;
- using System.Net.Sockets;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- using System.Timers;
- using System.Windows.Forms;
- using Core.Mes.Client.Comm.Tool;
- using Core.StlMes.Client.LgResMgt.Mcms.entity;
- using CoreFS.CA06;
- using Infragistics.Win.UltraWinListView;
- using Timer = System.Timers.Timer;
- namespace Core.StlMes.Client.LgResMgt.Mcms
- {
- public partial class TruckScaleServer : FrmBase
- {
- public TruckScaleServer()
- {
- InitializeComponent();
- timer.Elapsed += timer_Elapsed;
- timer.Interval = 1 *2000 * 1000;
- }
- private static readonly string _path = Environment.CurrentDirectory + "\\data\\SerialPort.xml";
- private SerialPortEntity _serialPortEntity;
- private CmmPoundBaseEntity cmmPoundBase;
- private SocketServer socketServer;
- public override void ToolBar_Click(object sender, string ToolbarKey)
- {
- switch (ToolbarKey)
- {
- case "start":
- start();
- break;
- case "end":
- end();
-
- break;
- case "close":
- Close();
- break;
- }
- }
- protected override void OnLoad(EventArgs e)
- {
- base.OnLoad(e);
-
- _serialPortEntity = new SerialPortEntity()
- {
- StrBaudRate = XmlHelper.GetXmlData(_path, "StrBaudRate", "9600"),
- StrDataBits = XmlHelper.GetXmlData(_path, "StrDataBits", "8"),
- StrParity = XmlHelper.GetXmlData(_path, "StrParity", "NONE"),
- StrStopBits = XmlHelper.GetXmlData(_path, "StrStopBits", "ONE"),
- PortName = XmlHelper.GetXmlData(_path, "PortName", "COM1")
- };
- cboNo.DataSource = EntityHelper.GetData<CmmPoundBaseEntity>(
- "com.steering.Mcms.PoundBaseServer.getPoudInfo",
- new object[] { ValidDataPurviewIds },
- ob);
- cboNo.DisplayMember = "PoundNo";
- var location = "";
- location = XmlHelper.GetXmlData(_path, "cboNo", "");
- if ("" == location)
- {
- if (cboNo.Items.Count > 0)
- {
- cboNo.SelectedIndex = 0;
- }
- }
- else
- {
- cboNo.Text = location;
- }
- baudRate.Text = _serialPortEntity.StrBaudRate;
- cmbCom.Text = _serialPortEntity.PortName;
- socketServer = new SocketServer();
- txtIp.Text = socketServer.GetIpAdress();
- txtPort.Text = "2333";
- _serialPortEntity.ReceiveData += (sender, data, message, type, bData) => ShowMessage(data, message, type, bData);
- socketServer.ReceiveData += (sender, data, message, type, bData) => ShowMessage(data, message, type, bData);
- btnTest.Visible = this.UserInfo.GetUserID() == "admin";
- chkDetail.Visible = this.UserInfo.GetUserID() == "admin";
- }
- private void ShowMessage(object data, string message, DataType dataType,byte[] dataBytes)
- {
- if (dataType == DataType.ReceiveData)
- {
- if (chkDetail.Checked) showMsg.SafeRefreshControl(() => showMsg.AddMsg(message));
- double wt;
- if (double.TryParse(data.ToString2(), out wt))
- {
- lblWtNow.SafeRefreshControl(() => { lblWtNow.Text = (wt/100d).ToString("0.00") + "t"; });
- }
- socketServer.SendMsgToClient(dataBytes);
- }
- else if (dataType == DataType.Open)
- {
- cmbCom.SafeRefreshControl(() => cmbCom.Enabled = false);
- baudRate.SafeRefreshControl(() => baudRate.Enabled = false);
- cboNo.SafeRefreshControl(() => cboNo.Enabled = false);
- showMsg.SafeRefreshControl(() => showMsg.AddMsg(message));
- }
- else if (dataType == DataType.Close)
- {
- cmbCom.SafeRefreshControl(() => cmbCom.Enabled = true);
- baudRate.SafeRefreshControl(() => baudRate.Enabled = true);
- cboNo.SafeRefreshControl(() => cboNo.Enabled = true);
- showMsg.SafeRefreshControl(() => showMsg.AddMsg(message));
- }
- else if (dataType == DataType.StartListen)
- {
- txtIp.SafeRefreshControl(() => txtIp.Enabled = false);
- txtPort.SafeRefreshControl(() => txtPort.Enabled = false);
- showMsg.SafeRefreshControl(() => showMsg.AddMsg(message));
- }
- else if (dataType == DataType.StopListen)
- {
- txtPort.SafeRefreshControl(() => txtPort.Enabled = true);
- showMsg.SafeRefreshControl(() => showMsg.AddMsg(message));
- }
- else if (dataType == DataType.EvenMessage && chkDetail.Checked)
- {
- showMsg.SafeRefreshControl(() => showMsg.AddMsg(message));
- }
- else if (dataType == DataType.Error)
- {
- showMsg.SafeRefreshControl(() => showMsg.AddError(message));
- }
- else if (dataType == DataType.ClientConnect)
- {
- ulvClient.SafeRefreshControl(() =>
- {
- var temp =
- new UltraListViewItem(data, null, null) { Key = data.ToString3() };
- foreach (var ultraListViewItem in ulvClient.Items)
- {
- if(ultraListViewItem.Key==data.ToString3())
- ulvClient.Items.Remove(ultraListViewItem);
- }
- ulvClient.Items.Add(temp);
- });
- showMsg.SafeRefreshControl(() => showMsg.AddMsg(message));
- }
- else if (dataType == DataType.ClientDisconnect)
- {
- ulvClient.SafeRefreshControl(() =>
- {
- foreach (var ultraListViewItem in ulvClient.Items)
- {
- if (ultraListViewItem.Key == data.ToString3())
- ulvClient.Items.Remove(ultraListViewItem);
- }
- });
- showMsg.SafeRefreshControl(() => showMsg.AddMsg(message));
- }
- }
- private bool ConnectPort(out string showMsg)
- {
- showMsg = "";
- if (_serialPortEntity == null) return false ;
- if (string.IsNullOrEmpty(cmbCom.Text))
- {
- showMsg = @"串口号不能为空!";
- return false;
- }
- if (string.IsNullOrEmpty(baudRate.Text))
- {
- showMsg = @"波特率不能为空!";
- return false;
- }
- _serialPortEntity.Start();
- XmlHelper.SetXmlData(_path, "cboNo", cmmPoundBase.PoundNo);
- return true;
- }
- private void DisconnectPort()
- {
- if ((_serialPortEntity != null) && _serialPortEntity.IsOpen)
- {
- _serialPortEntity.Stop();
- }
- }
- public void start()
- {
- string msg = "";
- if (!ConnectPort(out msg))
- {
- showMsg.AddError(msg);
- }
- try
- {
- socketServer.Ip = txtIp.Text;
- socketServer.Port = txtPort.Text;
- socketServer.Start();
- }
- catch (Exception ex)
- {
- showMsg.AddError(ex.Message);
- }
- }
- public void end()
- {
- DisconnectPort();
- socketServer.Stop();
- }
- private void cboNo_SelectedValueChanged(object sender, EventArgs e)
- {
- if (cboNo.SelectedIndex < 0) return;
- cmmPoundBase = cboNo.SelectedItem as CmmPoundBaseEntity;
- CmmBaseProtocolEntity cmmBaseProtocol = null;
- if (cmmPoundBase != null)
- {
- List<CmmBaseProtocolCEntity> protocols = EntityHelper.GetData<CmmBaseProtocolCEntity>(
- "com.steering.Mcms.ProcotolServer.getProcotolId",
- new object[] {cmmPoundBase.PoundProtocolId},
- ob);
- if ((protocols != null) && protocols.Any())
- cmmBaseProtocol = new CmmBaseProtocolEntity
- {
- ProtocolId = cmmPoundBase.PoundProtocolId,
- ListC = protocols
- };
- }
- _serialPortEntity.ChangeProtocol(new TruckScaleProtocol(cmmBaseProtocol));
- }
- private void TruckScaleServer_FormClosing(object sender, FormClosingEventArgs e)
- {
- end();
- }
- private readonly Timer timer = new Timer();
- private void timer_Elapsed(object sender, ElapsedEventArgs e)
- {
- byte[] ReceiveData = new[]
- {
- (byte) 0x02, (byte) 0x34, (byte) 0x20, (byte) 0x22, (byte) 0x20, (byte) 0x20, (byte) 0x20,
- (byte) 0x30,
- (byte) 0x31, (byte) 0x30, (byte) 0x20, (byte) 0x20, (byte) 0x20, (byte) 0x30, (byte) 0x30,
- (byte) 0x30,
- (byte) 0x0D,
-
- };
- Random r = new Random();
- int a = (byte)r.Next(0x31, 0x38);
- ReceiveData[8] = (byte)a;
- _serialPortEntity.HandleData(ReceiveData.ToList());
- }
- private void btnTest_Click(object sender, EventArgs e)
- {
- if (btnTest.Text.StartsWith("开始"))
- {
- timer.Start();
- btnTest.Text = "结束测试";
- timer_Elapsed(null, null);
- }
- else
- {
- timer.Stop();
- btnTest.Text = "开始测试";
- }
- }
-
- }
- }
|