601 lines
25 KiB
C#
601 lines
25 KiB
C#
using DotNetSAPI;
|
||
using RGD.Common;
|
||
using RGD.DataService;
|
||
using RGD.DBUtility;
|
||
using RGD.ZhiQianAPI;
|
||
using RGD.MdsAPI;
|
||
using RGD.MdsAPI.WMS;
|
||
using System;
|
||
using System.Data;
|
||
using System.Net;
|
||
using System.Net.Sockets;
|
||
using System.Text;
|
||
using System.Text.RegularExpressions;
|
||
using System.Threading;
|
||
using System.Windows.Forms;
|
||
using System.Xml;
|
||
|
||
namespace RGD.WCS
|
||
{
|
||
public partial class FrmMain : Form
|
||
{
|
||
#region 窗体显示
|
||
|
||
[System.Runtime.InteropServices.DllImport("user32")]
|
||
private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);
|
||
|
||
private const int AW_HOR_POSITIVE = 0x0001;//自左向右显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志
|
||
private const int AW_HOR_NEGATIVE = 0x0002;//自右向左显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志
|
||
private const int AW_VER_POSITIVE = 0x0004;//自顶向下显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志
|
||
private const int AW_VER_NEGATIVE = 0x0008;//自下向上显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志该标志
|
||
private const int AW_CENTER = 0x0010;//若使用了AW_HIDE标志,则使窗口向内重叠;否则向外扩展
|
||
private const int AW_HIDE = 0x10000;//隐藏窗口
|
||
private const int AW_ACTIVE = 0x20000;//激活窗口,在使用了AW_HIDE标志后不要使用这个标志
|
||
private const int AW_SLIDE = 0x40000;//使用滑动类型动画效果,默认为滚动动画类型,当使用AW_CENTER标志时,这个标志就被忽略
|
||
private const int AW_BLEND = 0x80000;//使用淡入淡出效果
|
||
private static FrmMain _formInstance;
|
||
|
||
#endregion 窗体显示
|
||
|
||
private static Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||
private static byte[] result = new byte[1024];
|
||
public static int taskId = 0;
|
||
public static int taskCount = 0;
|
||
public static FrmMain FormInstance
|
||
{
|
||
get
|
||
{
|
||
if (_formInstance == null)
|
||
{
|
||
_formInstance = new FrmMain();
|
||
}
|
||
return _formInstance;
|
||
}
|
||
set { _formInstance = value; }
|
||
}
|
||
|
||
private SpeechVoiceSpeakFlags SpFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
|
||
public SpVoice Voice = new SpVoice();
|
||
|
||
public FrmMain()
|
||
{
|
||
InitializeComponent();
|
||
_formInstance = this;
|
||
//黑匣子文件 文件清理
|
||
RGD.Common.CCarryConvert.NeatenDarkCasket();
|
||
|
||
#region 系统配置文件初始化
|
||
|
||
////路径搜索方式
|
||
//CStaticClass.RouteSearchMode = CommonClassLib.AppSettings.GetValue("RouteSearchMode");
|
||
////双叉关联任务允许等待的时间
|
||
//CStaticClass.DoubleForkWaitTime = CommonClassLib.AppSettings.GetValue("DoubleForkWaitTime");
|
||
////AGV是否允许单叉动作
|
||
//CStaticClass.AGVAllowSingleFork = CommonClassLib.AppSettings.GetValue("AGVAllowSingleFork");
|
||
////日志黑匣子保存时间
|
||
//CStaticClass.SaveDays = CommonClassLib.AppSettings.GetValue("SaveDays");
|
||
////移动设备是否被提前触发将取
|
||
//CStaticClass.MovedDeviceAheadTrigger = CommonClassLib.AppSettings.GetValue("MovedDeviceAheadTrigger");
|
||
////堆垛机出库是否检测目标输送机空闲和有物
|
||
//CStaticClass.OutDetectArrowIdleGoods = CommonClassLib.AppSettings.GetValue("OutDetectArrowIdleGoods");
|
||
////设备发生故障自动变更路径
|
||
//CStaticClass.DeviceErrorAutoModifyRoutePath = CommonClassLib.AppSettings.GetValue("DeviceErrorAutoModifyRoutePath");
|
||
|
||
#endregion 系统配置文件初始化
|
||
|
||
//初始化管理和调度交互状态
|
||
IOControlService.AddIOControlStatus();
|
||
////初始化错误信息
|
||
BaseDeviceService.AddDeviceErrors();
|
||
|
||
//加载全局站台信息
|
||
CConfig.LoadConfig();
|
||
//初始化设备静态信息
|
||
BaseDeviceService.AddDeviceInfo();
|
||
//虚拟设备 PLC_DB2交互数据
|
||
CStaticClass.devinfo28 = BaseDeviceService.GetDeviceInfo(65534);
|
||
|
||
|
||
|
||
#region 界面布局
|
||
//主控
|
||
FrmControlMonitor.FormInstance.Show(this.dockPanel1);
|
||
FrmControlMonitor.FormInstance.DockTo(this.dockPanel1, DockStyle.Fill);
|
||
//任务列表窗口
|
||
FrmTaskList Frmlist = new FrmTaskList();
|
||
Frmlist.Show(this.dockPanel1);
|
||
Frmlist.DockTo(this.dockPanel1, DockStyle.Bottom);
|
||
Frmlist.DockState = WeifenLuo.WinFormsUI.Docking.DockState.DockBottom;
|
||
Frmlist.AutoHidePortion = 0.28;//(double)Frmlist.Height / (double)this.dockPanel1.Height;
|
||
Frmlist.CloseButton = false;
|
||
//运行异常窗口
|
||
FrmErrorMessage frmErrorMessage = new FrmErrorMessage();
|
||
frmErrorMessage.Show(this.dockPanel1);
|
||
frmErrorMessage.DockTo(this.dockPanel1, DockStyle.Bottom);
|
||
frmErrorMessage.DockState = WeifenLuo.WinFormsUI.Docking.DockState.DockBottomAutoHide;
|
||
frmErrorMessage.CloseButton = false;
|
||
//帮助信息窗口
|
||
FrmHelp frmHelp = new FrmHelp();
|
||
frmHelp.Show(this.dockPanel1);
|
||
frmHelp.DockTo(this.dockPanel1, DockStyle.Bottom);
|
||
frmHelp.DockState = WeifenLuo.WinFormsUI.Docking.DockState.DockBottomAutoHide;
|
||
frmHelp.CloseButton = false;
|
||
|
||
#endregion 界面布局
|
||
|
||
//检测是否登录
|
||
if (FrmLogin.FormInstance.ShowDialog() != DialogResult.OK) return; //dzf 调试时注释掉
|
||
CCarryConvert.WriteDarkCasket("Login", "UserID:" + CStaticClass.UserID + "的操作日志", "成功登录系统", "", "");
|
||
this.DoubleBuffered = true;
|
||
SetStyle(ControlStyles.UserPaint, true);
|
||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||
this.UpdateStyles();
|
||
}
|
||
|
||
private void FrmMain_Load(object sender, EventArgs e)
|
||
{
|
||
//SocketService();
|
||
}
|
||
|
||
#region 命令开关 接口服务
|
||
|
||
private CControl cc = new CControl();
|
||
private CListenPLCAsk cplc = new CListenPLCAsk();
|
||
|
||
/// <summary>
|
||
/// 打开命令开关
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void MITurnOn_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
MMDarketManage.Enabled = true;
|
||
MMUserManage.Enabled = true;
|
||
MIUserInfoManage.Enabled = true;
|
||
CStaticClass.Order = true;
|
||
MITurnOff.Enabled = true;
|
||
MITurnOn.Enabled = false;
|
||
MITurnOff.Checked = false;
|
||
MITurnOn.Checked = true;
|
||
|
||
//执行自动命令
|
||
CStaticClass.ReConnect();
|
||
MMDarketManage.Checked = true;
|
||
MMUserManage.Checked = false;
|
||
MIUserInfoManage.Checked = false;
|
||
this.Text = "瑞吉德自动化物流监控调度系统" + "--【正在执行自动命令!】";
|
||
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", "", false);
|
||
//单次调用 与opc通信 取数据存放于CStaticClass.AllReturns
|
||
LogUtil.WriteLog("", "打开命令开关-获取opc数据");
|
||
CStaticClass.GetAllReturns();
|
||
CConfig.StartAll();
|
||
//后台独立线程 循环 解析plc读取的数据 CStaticClass.AllReturns 300ms 更新到设备内存中
|
||
LogUtil.WriteLog("", "打开命令开关-启动opcAllReturns数据解析");
|
||
CParsePLCData.StartListen();
|
||
//AGV相关服务启动
|
||
HttpServer.start();
|
||
//终端socket启动
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
MessageBox.Show(":" + ex.Message, "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 关闭命令开关
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void MITurnOff_Click(object sender, EventArgs e)
|
||
{
|
||
if (MessageBox.Show("您确认要“关闭命令开关”吗?如果“关闭命令开关”将导致调度计算机与所有设备通讯中断!", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) != DialogResult.OK)
|
||
{
|
||
return;
|
||
}
|
||
CStaticClass.Order = false;
|
||
MITurnOff.Enabled = false;
|
||
MITurnOn.Enabled = true;
|
||
MITurnOn.Checked = false;
|
||
MITurnOff.Checked = true;
|
||
HttpServer.close();
|
||
this.Text = "瑞吉德自动化物流监控调度系统";
|
||
//getAllReturnTimer.Enabled = false;
|
||
//getAllReturnTimer.Stop();
|
||
CConfig.StopAll();
|
||
CParsePLCData.EndListen();
|
||
}
|
||
|
||
#endregion 命令开关 接口服务
|
||
|
||
#region 按钮事件
|
||
|
||
/// <summary>
|
||
/// 指令队列管理
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void MIAltMonitor_Click(object sender, EventArgs e)
|
||
{
|
||
FrmModifyMonitor.FormInstance.ShowDialog();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 调度任务管理
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void MIAltManange_Click(object sender, EventArgs e)
|
||
{
|
||
FrmModifyManage.FormInstance.ShowDialog();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 单一设备指令
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void toolStripMenuItem1_Click(object sender, EventArgs e)
|
||
{
|
||
FrmHandCommand.FormInstance.ShowDialog();
|
||
}
|
||
|
||
private void MIManageShow_Click(object sender, EventArgs e)
|
||
{
|
||
FrmAutoCommand.FormInstance.ShowDialog();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 叠盘机缓存管理
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void MIdp_Click(object sender, EventArgs e)
|
||
{
|
||
FrmStackerCache.FormInstance.ShowDialog();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 清除任务
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void MIClearTask_Click(object sender, EventArgs e)
|
||
{
|
||
DialogResult dr = MessageBox.Show("是否清除调度系统收到的任务信息?", "警告", MessageBoxButtons.YesNo);
|
||
if (dr == DialogResult.Yes)
|
||
{
|
||
DbHelperSQL.ExecuteSql("update t_warehouse set f_task_no='',f_task_type='',f_task_status='FREE',f_equip_type='',F_IO_WH_SORT_CODE='',F_LASTBOX_REACH_FLAG=0");
|
||
DbHelperSQL.ExecuteSql("delete t_manage_task");
|
||
DbHelperSQL.ExecuteSql("delete t_monitor_task");
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 浏览黑匣子文件
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void MISeeDarket_Click(object sender, EventArgs e)
|
||
{
|
||
FrmBrowseDarkCasket.FormInstance.ShowDialog();
|
||
}
|
||
|
||
private void MIAbout_Click(object sender, EventArgs e)
|
||
{
|
||
new FrmAboutBox().ShowDialog();
|
||
}
|
||
|
||
|
||
|
||
private void MMExitSystem_Click(object sender, EventArgs e)
|
||
{
|
||
DialogResult dr = MessageBox.Show("真的要退出系统?", "提示", MessageBoxButtons.YesNo);
|
||
if (dr == DialogResult.Yes)
|
||
{
|
||
this.Close();
|
||
}
|
||
}
|
||
|
||
private void DeviceStatusSearchMenuItem_Click(object sender, EventArgs e)
|
||
{
|
||
FrmDeviceErrorLog.FormInstance.ShowDialog();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 设备状态
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void MIDeviceState_Click(object sender, EventArgs e)
|
||
{
|
||
FrmDeviceInfoEdit.FormInstance.ShowDialog();
|
||
}
|
||
|
||
#endregion 按钮事件
|
||
|
||
private void MonitorDataBackUpMenuItem_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
string localFilePath;
|
||
string saveFilepath = "E:\\";
|
||
saveFileDialog1.Title = "备份调度系统数据库...";
|
||
saveFileDialog1.FileName = DateTime.Now.ToString("yyyyMMddHHmmss") + "DBBak";
|
||
saveFileDialog1.Filter = "所有文件(*.*)|*.*";
|
||
|
||
if (System.IO.Directory.Exists(saveFilepath))//文件目录是否存在
|
||
{
|
||
saveFileDialog1.InitialDirectory = saveFilepath;
|
||
}
|
||
|
||
saveFileDialog1.RestoreDirectory = true;
|
||
//saveFileDialog1.CheckFileExists = true;
|
||
saveFileDialog1.CheckPathExists = true;
|
||
saveFileDialog1.OverwritePrompt = true;
|
||
|
||
if (this.saveFileDialog1.ShowDialog() == DialogResult.OK)
|
||
{
|
||
localFilePath = saveFileDialog1.FileName.ToString();
|
||
|
||
string sql = string.Format("Backup database AHFY_WCS to disk = '{0}'", localFilePath); //MyTest为远程数据库名称,也可以改成用变量传入
|
||
DbHelperSQL.ExecuteSql(sql);
|
||
|
||
//下面判断文件是否生成来确定是否备份成功
|
||
if (System.IO.File.Exists(localFilePath))
|
||
{
|
||
MessageBox.Show("数据库备份成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
||
}
|
||
else
|
||
{
|
||
MessageBox.Show("数据库备份失败!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||
}
|
||
|
||
//还原是一样的.只是sql改成"RESTORE FILELISTONLY FROM DISK ='路径'"
|
||
}
|
||
}
|
||
catch (Exception err)
|
||
{
|
||
MessageBox.Show(err.Message);
|
||
}
|
||
}
|
||
|
||
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
|
||
{
|
||
this.TopMost = true;
|
||
this.Visible = true;
|
||
this.TopMost = false;
|
||
this.WindowState = FormWindowState.Maximized;
|
||
}
|
||
|
||
private void notifyIcon1_BalloonTipShown(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
//Voice.Speak("123", SpFlags);
|
||
//Voice.Speak(notifyIcon1.BalloonTipText, SpFlags);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
}
|
||
}
|
||
|
||
private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
|
||
{
|
||
if (MessageBox.Show("您确认要退出瑞吉德自动化物流监控调度系统吗?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
|
||
{
|
||
CParsePLCData.EndListen();
|
||
CCarryConvert.WriteDarkCasket("Login", "UserID:" + CStaticClass.UserID + "的操作日志", "退出系统", "", "");
|
||
System.Diagnostics.Process.GetCurrentProcess().Kill();
|
||
}
|
||
else
|
||
{
|
||
e.Cancel = true;
|
||
}
|
||
}
|
||
|
||
private void SocketService()
|
||
{
|
||
string IP = AppSettings.GetValue("AndroidIP");
|
||
int port = int.Parse(AppSettings.GetValue("Port"));
|
||
socket.Bind(new IPEndPoint(IPAddress.Parse(IP), port));
|
||
socket.Listen(10);
|
||
|
||
Thread myThread = new Thread(ListenClientConnect);
|
||
|
||
myThread.Start();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 监听客户端连接
|
||
/// </summary>
|
||
private static void ListenClientConnect()
|
||
{
|
||
while (true)
|
||
{
|
||
Socket clientSocket = socket.Accept();
|
||
//System.Console.WriteLine("客户的本地端口是:" + clientSocket.LocalEndPoint.ToString());
|
||
//System.Console.WriteLine("客户端是:" + clientSocket.RemoteEndPoint.ToString());
|
||
System.Console.WriteLine(clientSocket.Connected);
|
||
Thread receiveThread = new Thread(ReceiveMessage);
|
||
System.Console.WriteLine(clientSocket.Connected);
|
||
receiveThread.Start(clientSocket);
|
||
}
|
||
}
|
||
|
||
private static void ReceiveMessage(object clientSocket)
|
||
{
|
||
Socket myClientSocket = (Socket)clientSocket;
|
||
//System.Console.WriteLine(myClientSocket.Connected+"1");
|
||
while (true)
|
||
{
|
||
//System.Console.WriteLine(myClientSocket.Connected + "2");
|
||
try
|
||
{
|
||
//System.Console.WriteLine(myClientSocket.Connected + "3");
|
||
if (myClientSocket.Connected && myClientSocket != null)
|
||
{
|
||
//通过clientSocket接收数据
|
||
int receiveNumber = myClientSocket.Receive(result);
|
||
if (receiveNumber == 0)
|
||
{
|
||
return;
|
||
}
|
||
Console.WriteLine(myClientSocket.RemoteEndPoint.ToString(), Encoding.UTF8.GetString(result, 0, receiveNumber));
|
||
string receiveData = Encoding.UTF8.GetString(result, 0, receiveNumber);
|
||
XmlDocument xmlDoc = new XmlDocument();
|
||
xmlDoc.LoadXml(receiveData);
|
||
|
||
XmlNode nodeRoot = xmlDoc.SelectSingleNode("DataFromZD");
|
||
string method = nodeRoot.SelectSingleNode(@"Method").InnerText;
|
||
XmlNodeList xnlBOX_BARCODE = nodeRoot.SelectNodes(@"BoxsCodes");
|
||
string sBOX_BARCODE = string.Empty;
|
||
foreach (XmlNode nBOX_BARCODE in xnlBOX_BARCODE)
|
||
{
|
||
sBOX_BARCODE += nBOX_BARCODE.InnerText + ",";
|
||
}
|
||
string[] boxs = Regex.Split(sBOX_BARCODE, "(?<=\\G.{12})");
|
||
if (boxs.Length > 1)
|
||
{
|
||
Array.Resize(ref boxs, boxs.Length - 1);
|
||
}
|
||
|
||
sBOX_BARCODE = string.Empty;
|
||
foreach (string box in boxs)
|
||
{
|
||
sBOX_BARCODE += box + ",";
|
||
}
|
||
sBOX_BARCODE = sBOX_BARCODE.TrimEnd(',');
|
||
XmlNodeList xnlGOODS_BARCODE = nodeRoot.SelectNodes(@"GoodsCodes");
|
||
string sGOODS_BARCODE = string.Empty;
|
||
|
||
foreach (XmlNode nGOODS_BARCODE in xnlGOODS_BARCODE)
|
||
{
|
||
sGOODS_BARCODE += nGOODS_BARCODE.InnerText + ",";
|
||
}
|
||
string[] goods = Regex.Split(sGOODS_BARCODE, "(?<=\\G.{22})");
|
||
if (goods.Length > 1)
|
||
{
|
||
Array.Resize(ref goods, goods.Length - 1);
|
||
}
|
||
|
||
sGOODS_BARCODE = string.Empty;
|
||
foreach (string good in goods)
|
||
{
|
||
sGOODS_BARCODE += good + ",";
|
||
}
|
||
sGOODS_BARCODE = sGOODS_BARCODE.TrimEnd(',');
|
||
DataView dvt = DbHelperSQL.Query("select F_TASK_NO,F_TASK_TYPE,F_EQUIP_TYPE from T_WareHouse").Tables[0].DefaultView;
|
||
string sResult = string.Empty;
|
||
bool bResult;
|
||
switch (method)
|
||
{
|
||
case "boxsin":
|
||
bResult = (new getInStackLocation()).Notify(dvt[0]["F_TASK_NO"].ToString(), sBOX_BARCODE, "", out sResult);
|
||
getInStackLocation.DATA outData = (new Base()).DeSerialize<getInStackLocation.DATA>(sResult);
|
||
|
||
if (bResult)
|
||
{
|
||
new ManageTaskService().CreateMove(dvt[0]["F_TASK_NO"].ToString(), "1", "12001", outData.LOC_NO, sBOX_BARCODE, out sResult);
|
||
sResult = outData.LOC_NO;
|
||
}
|
||
else
|
||
{
|
||
sResult = outData.ERROR_INFO;
|
||
}
|
||
break;
|
||
|
||
case "goodsin":
|
||
bResult = (new getInOutCheckInfo()).Notify(dvt[0]["F_TASK_NO"].ToString(), "02", "", sBOX_BARCODE, sGOODS_BARCODE, out sResult);
|
||
getInOutCheckInfo.DATA op = (new Base()).DeSerialize<getInOutCheckInfo.DATA>(sResult);
|
||
if (bResult)
|
||
{
|
||
sResult = "true";
|
||
}
|
||
else
|
||
{
|
||
sResult = op.ERROR_INFO;
|
||
}
|
||
break;
|
||
|
||
case "outdetail":
|
||
bResult = (new getInOutCheckInfo()).Notify(dvt[0]["F_TASK_NO"].ToString(), "01", string.Empty, sBOX_BARCODE, string.Empty, out sResult);
|
||
if (bResult)
|
||
{
|
||
getInOutCheckInfo.DATA info = (new Base()).DeSerialize<getInOutCheckInfo.DATA>(sResult);
|
||
if (info.OUT_MODE.Equals("1"))
|
||
{
|
||
sResult = "true";
|
||
}
|
||
else if (info.OUT_MODE.Equals("2"))
|
||
{
|
||
sResult = "back";
|
||
}
|
||
else if (info.OUT_MODE.Equals("3"))
|
||
{
|
||
sResult = info.REPICK_ARRAY;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
sResult = "false";
|
||
}
|
||
break;
|
||
|
||
case "gettask":
|
||
DataView dv = DbHelperSQL.Query("select * from t_warehouse").Tables[0].DefaultView;
|
||
sResult = dv[0]["f_task_no"].ToString();
|
||
break;
|
||
|
||
case "login":
|
||
Object o = DbHelperSQL.GetSingle("select * from t_base_users where f_password='" + sBOX_BARCODE + "'");
|
||
if (o != null)
|
||
{
|
||
sResult = "true";
|
||
}
|
||
else
|
||
{
|
||
sResult = "false";
|
||
}
|
||
break;
|
||
}
|
||
|
||
byte[] bs = Encoding.UTF8.GetBytes(sResult);
|
||
myClientSocket.Send(bs, bs.Length, 0);
|
||
myClientSocket.Close();
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
Console.WriteLine(ex.Message);
|
||
myClientSocket.Shutdown(SocketShutdown.Both);
|
||
myClientSocket.Close();
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
private void 海柔测试ToolStripMenuItem_Click(object sender, EventArgs e)
|
||
{
|
||
TEST1.FormInstance.ShowDialog();
|
||
}
|
||
|
||
private void 接口恢复ToolStripMenuItem_Click(object sender, EventArgs e)
|
||
{
|
||
FrmInterfaceRestart.FormInstance.ShowDialog();
|
||
}
|
||
|
||
private void FrmMain_FormClosed(object sender, FormClosedEventArgs e)
|
||
{
|
||
System.Diagnostics.Process.GetCurrentProcess().Kill();
|
||
}
|
||
|
||
private void MIHandShow_Click(object sender, EventArgs e)
|
||
{
|
||
FrmHandCommand.FormInstance.ShowDialog();
|
||
}
|
||
}
|
||
} |