Commit 946f98c7 LN

青岛智能料架项目 SO514 1272

1 个父辈 a1037a12
正在显示 62 个修改的文件 包含 330 行增加2854 行删除
...@@ -52,13 +52,13 @@ ...@@ -52,13 +52,13 @@
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="bean\Bean.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Setting_Init.cs" /> <Compile Include="Setting_Init.cs" />
<Compile Include="util\AcSerialBean.cs" /> <Compile Include="util\AcSerialBean.cs" />
<Compile Include="util\ConfigAppSettings.cs" /> <Compile Include="util\ConfigAppSettings.cs" />
<Compile Include="util\FormUtil.cs" /> <Compile Include="util\FormUtil.cs" />
<Compile Include="util\HttpHelper.cs" /> <Compile Include="util\HttpHelper.cs" />
<Compile Include="util\HttpServer.cs" />
<Compile Include="util\JsonHelper.cs" /> <Compile Include="util\JsonHelper.cs" />
<Compile Include="util\LogUtil.cs" /> <Compile Include="util\LogUtil.cs" />
<Compile Include="util\MyWebClient.cs"> <Compile Include="util\MyWebClient.cs">
......
...@@ -10,8 +10,7 @@ namespace SmartShelf.Common ...@@ -10,8 +10,7 @@ namespace SmartShelf.Common
/// 记录配置的key /// 记录配置的key
/// </summary> /// </summary>
public class Setting_Init public class Setting_Init
{ {
public static string Server_Log_Open = "Server_Log_Open";
/// <summary> /// <summary>
/// 系统启动时自动启动料仓,=1时自动启动,并隐藏窗口,=0时不需要 /// 系统启动时自动启动料仓,=1时自动启动,并隐藏窗口,=0时不需要
/// </summary> /// </summary>
...@@ -21,11 +20,11 @@ namespace SmartShelf.Common ...@@ -21,11 +20,11 @@ namespace SmartShelf.Common
/// </summary> /// </summary>
public static string App_Title = "App_Title"; public static string App_Title = "App_Title";
public static string http_server = "http.server"; public static string ServerPort = "ServerPort";
//以下为流水线料仓的配置 //以下为流水线料仓的配置
public static string Store_ConfigPath = "Store_ConfigPath"; //public static string Store_ConfigPath = "Store_ConfigPath";
public static string Store_Position_Config = "Store_Position_Config"; public static string Store_Position_Config = "Store_Position_Config";
public static string Store_CID = "Store_CID"; public static string Store_CID = "Store_CID";
...@@ -36,8 +35,8 @@ namespace SmartShelf.Common ...@@ -36,8 +35,8 @@ namespace SmartShelf.Common
public static string DeviceLedType = "DeviceLedType"; public static string DeviceLedType = "DeviceLedType";
public static string Status_Green_Lights = "Status_Green_Lights"; //public static string Status_Green_Lights = "Status_Green_Lights";
public static string Status_Red_Lights = "Status_Red_Lights"; //public static string Status_Red_Lights = "Status_Red_Lights";
public static string Status_Yellow_Lights = "Status_Yellow_Lights"; //public static string Status_Yellow_Lights = "Status_Yellow_Lights";
} }
} }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SmartShelf.Common
{
/// <summary>
/// 与服务器通信用对象
/// </summary>
public class Operation
{
/// <summary>
/// 料仓唯一标识
/// </summary>
private string _cid = "";
public string cid
{
get { return _cid; }
set { _cid = value; }
}
/// <summary>
/// 请求序列号
/// </summary>
public int seq { get; set; }
/// <summary>
/// 操作码(0无操作(发送料仓状态给服务器),1扫码入库(扫码成功后发送给服务器),2 出库(服务器发送),3表示错误信息 )
/// </summary>
public int op { get; set; }
/// <summary>
/// 操作相关数据,
/// op=1时,客户端发送 code 二维码给服务器,服务器返回时有:posId库位编号,plateW:料盘宽度,plateH:料盘高度
/// 如果需要更新温湿度的报警值,服务器会发送alarmTemperature,alarmHumidity给客户端,客户端缓存,如果没有发送,不处理
/// op=3时,data发送BoxID和AlarmCode
/// </summary>
private Dictionary<string, string> _data = new Dictionary<string, string>();
public Dictionary<string, string> data
{
get { return _data; }
set { _data = value; }
}
/// <summary>
/// 整体料仓状态
/// 1=正常运行中
/// 2=急停中
/// 3=故障(气压检测不到等,用msg发送详细故障说明)
/// 4=警告(用msg发送提醒,如出库到达工位但是没有工人操作)
/// </summary>
public int status { get; set; }
/// <summary>
/// 提示消息
/// 出入库错误: BOX正在调试中,不能出入库
/// 出入库错误: 急停了不能出入库
/// 入库错误:料盘过大,放不到指定的位置中去
/// 故障:气压信号检测不到
/// 警告:出库盘到达工位但是没有工人操作
/// </summary>
public string msg { get; set; }
/// <summary>
/// 包含的多个 BOX 的状态信息
/// </summary>
public Dictionary<int, BoxStatus> boxStatus = new Dictionary<int, BoxStatus>();
/// <summary>
/// 报警集合
/// </summary>
public List<AlarmInfo> alarmList = new List<AlarmInfo>();
}
/// <summary>
/// 单台料仓状态(包含流水线)
/// </summary>
public class BoxStatus
{
/// <summary>
/// Box编号,从1开始
/// </summary>
public int boxId { get; set; }
/// <summary>
/// 单台BOX状态
/// 急停,故障,调试中,就绪状态(正常待机)
/// 入库执行中,入库完成,入库失败
/// 出库执行中,出库完成,出库失败
/// </summary>
public int status { get; set; }
/// <summary>
/// 单台BOX的消息
/// 正在调试中,不能出入库
/// 入库失败原因:
/// 出库失败原因:
/// </summary>
public string msg { get; set; }
/// <summary>
/// 温度
/// </summary>
public string temperature { get; set; }
/// <summary>
/// 湿度
/// </summary>
public string humidity { get; set; }
/// <summary>
/// 操作相关数据,
/// 出库完成后发送posId库位编号给服务器
/// </summary>
private Dictionary<string, string> _data = new Dictionary<string, string>();
public Dictionary<string, string> data
{
get { return _data; }
set { _data = value; }
}
}
public class AlarmInfo
{
public AlarmInfo(int StoreID, int aType, string alarmDetial, string WarnMsg, int inoutStatus)
{
// TODO: Complete member initialization
this.boxId = StoreID;
this.alarmType = aType;
this.alarmDetail = alarmDetial;
this.alarmMsg = WarnMsg;
this.inOutStatus = inoutStatus;
}
public AlarmInfo()
{
// TODO: Complete member initialization
}
/// <summary>
/// 料仓ID,0表示流水线
/// </summary>
public int boxId { get; set; }
/// <summary>
/// 报警类型,
/// </summary>
public int alarmType { get; set; }
/// <summary>
/// 报警详情
///AlarmType= 0 消息 "1=原点返回
//AlarmType= 0 消息 2=复位"
//AlarmType=1 总体错误 "1=急停
//AlarmType=1 总体错误 2=没有气压信号
//AlarmType=1 总体错误,3=盘错乱"
//AlarmType=2 运动轴错误 1=第一轴(旋转)
//AlarmType=2 运动轴错误 2=第二轴(上下轴)
//AlarmType=2 运动轴错误 3=第三轴(前进轴)
//AlarmType=2 运动轴错误 4=第四轴(压紧轴)"
//AlarmType=2 电钢报警 5=上下电钢
//AlarmType=3 IO报警,信号超时 io电器定义(电器定义)
/// </summary>
public string alarmDetail { get; set; }
/// <summary>
/// 报警消息
/// </summary>
public string alarmMsg { get; set; }
/// <summary>
/// 0,1=入库,2=出库
/// </summary>
public int inOutStatus { get; set; }
}
public class ParamDefine
{
/// <summary>
/// 开灯: key为open value为库位信息,如果多个用|分割
/// </summary>
public static string open = "open";
/// <summary>
/// 关灯: key为close value为库位信息,如果多个用|分割
/// </summary>
public static string close = "close";
/// <summary>
/// 关灯: key为closeAll value为库位信息,如果多个用|分割
/// </summary>
public static string closeAll = "closeAll";
/// <summary>
/// 客户端发送 当前灯的状态:key为posOpened value为当前亮灯的库位,如果多个用|分割
/// </summary>
public static string posOpened = "posOpened";
///// <summary>
///// 卡信息: key为card value为读取到的卡内容,卡号-内容
///// </summary>
//public static string card = "card";
///// <summary>
///// 写卡: key=writeCard value为要写的内容
///// </summary>
//public static string writeCard = "writeCard";
///// <summary>
///// key= cardResult value = OK表示写成功
///// </summary>
//public static string cardResult = "cardResult";
}
}
...@@ -23,70 +23,8 @@ namespace SmartShelf.Common ...@@ -23,70 +23,8 @@ namespace SmartShelf.Common
return Post(url, paramData, Encoding.UTF8); return Post(url, paramData, Encoding.UTF8);
} }
/// <summary>
///
/// </summary>
/// <param name="url"></param>
/// <param name="operation"></param>
/// <param name="simulate">是否模拟服务器返回结果</param>
/// <returns></returns>
public static Operation Post(string url, Operation operation, bool simulate)
{
try
{
if (simulate)
{//模拟服务器返回
operation.status = 200;
operation.data.Clear();
operation.data.Add("posId", "A001");
string pos = "D100-111#D102-222#D104-333";
operation.data.Add("pos", pos);
if (operation.op == 1 || operation.op == 2)
{//入库或出库
string json = JsonHelper.SerializeObject(operation);
LogUtil.error(LOGGER, "模拟HTTP服务器返回出库入库信息:" + json);
return operation;
}
}
else
{
string json = "";
try
{
json = JsonHelper.SerializeObject(operation);
}
catch (Exception ex)
{
LOGGER.Error("JsonHelper.SerializeObject(operation) 出错【operation.op=" + operation.op + "】" + ex);
}
string result = Post(url, json);
if (!string.IsNullOrEmpty(result))
{
try
{
return JsonHelper.DeserializeJsonToObject<Operation>(result);
}
catch (Exception ex)
{
LOGGER.Error("JsonHelper.DeserializeJsonToObject 出错【result=" + result + "】" + ex);
}
}
}
}
catch (Exception ex)
{
LOGGER.Error("Post 出错【operation.op=" + operation.op + "】:" + ex);
}
return null;
}
public static int isLog = ConfigAppSettings.GetIntValue(Setting_Init.Server_Log_Open);
public static string Post(string url, string paramData, Encoding encoding) public static string Post(string url, string paramData, Encoding encoding)
{ {
if (isLog == 1)
{
LOGGER.Info("给服务器发送数据【" + paramData + "】 ");
}
if (paramData != "null" && paramData != null) if (paramData != "null" && paramData != null)
{ {
// LogUtil.debug(LOGGER, "HTTP POST to " + url + " \n\t >> " + paramData); // LogUtil.debug(LOGGER, "HTTP POST to " + url + " \n\t >> " + paramData);
...@@ -112,16 +50,12 @@ namespace SmartShelf.Common ...@@ -112,16 +50,12 @@ namespace SmartShelf.Common
} }
catch (Exception e) catch (Exception e)
{ {
LogUtil.error( "POST【"+ paramData + "】 ERROR:" + e.StackTrace, 1); LogUtil.error("POST【" + paramData + "】 ERROR:" + e.StackTrace, 1);
} }
if (!result.Contains("null") && result.Length != 0) if (!result.Contains("null") && result.Length != 0)
{ {
//LogUtil.debug(LOGGER,"receive << " + result); //LogUtil.debug(LOGGER,"receive << " + result);
} }
if (isLog == 1)
{
LOGGER.Info("收到服务器数据【" + result + "】");
}
return result; return result;
} }
...@@ -146,9 +80,42 @@ namespace SmartShelf.Common ...@@ -146,9 +80,42 @@ namespace SmartShelf.Common
} }
catch (Exception e) catch (Exception e)
{ {
LogUtil.error( "HTTP GET ERROR:" + e.Message, 2); LogUtil.error("HTTP GET ERROR:" + e.Message, 2);
} }
return ""; return "";
} }
public static string Get(string serverAddress, string path, Dictionary<string, object> map)
{
string param = GetParamStr(map);
string allPath = serverAddress + path;
if (param.Equals(""))
{
return HttpHelper.Get(allPath);
}
else
{
return HttpHelper.Get(allPath + "?" + param);
}
}
public static string GetParamStr(Dictionary<string, object> map)
{
string str = "";
foreach (string key in map.Keys)
{
if (str.Equals(""))
{
str = key + "=" + map[key];
}
else
{
str += "&" + key + "=" + map[key];
}
}
return str;
}
} }
} }
\ No newline at end of file \ No newline at end of file
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace SmartShelf.Common
{
public class HttpServer
{
private static TcpListener serverListener;
/// <summary>
/// 接收请求:例:请求地址为http://localhost:80/abc.html?id=1&name=abc那么reqPath为/abc.html参数字符串为id=1&name=abc
/// 当为POST请求时, 参数字符串是body的内容
/// </summary>
/// <param name="reqPath">请求地址,首页为空</param>
/// <param name="paramStr">请求参数Map</param>
/// <returns>返回的字符串结果</returns>
public delegate string OnReceived(string reqPath, string paramStr);
/// <summary>
/// 启动一个Http服务器
/// </summary>
/// <param name="onReceived">接收请求的处理方法</param>
/// <param name="port">端口号,默认为80</param>
public static void Start(OnReceived onReceived, int port = 80)
{
if (serverListener == null)
{
Task.Factory.StartNew(delegate ()
{
ProcessListener(onReceived, port);
});
}
}
/// <summary>
/// 停止Http监听
/// </summary>
public static void Stop()
{
try
{
LogUtil.debug("Stop Http Listener\n");
serverListener.Stop();
serverListener = null;
}
catch { }
}
/// <summary>
/// 解析HttpGet的参数到map中
/// </summary>
/// <param name="reqParams"></param>
/// <returns></returns>
public Dictionary<string, string> ResolveHttpGetParams(string reqParams)
{
Dictionary<string, string> reqParamMap = new Dictionary<string, string>();
string[] paras = reqParams.Split('&');
foreach (string item in paras)
{
string[] keyValue = item.Split('=');
string key = keyValue[0];
string value = "";
if (keyValue.Length > 1)
{
value = Uri.UnescapeDataString(keyValue[1]);
}
reqParamMap[key] = value;
}
return reqParamMap;
}
private static void hadle(Socket client, OnReceived onReceived)
{
try
{
string ip = (client.RemoteEndPoint as System.Net.IPEndPoint).Address.ToString();
byte[] buffer = new byte[1024];
int count = client.Receive(buffer);
if (count > 0)
{
string content = Encoding.UTF8.GetString(buffer, 0, count);
LogUtil.debug(content + "\n");
// 解析 content
string[] requestLines = content.Split('\n');
string[] requestInfo = requestLines[0].Split(' ') ;
string method = requestInfo[0];
string reqPath = "";
string reqParamStr = "";
if ("GET" == method.ToUpper())
{
string[] pathInfos = requestInfo[1].Split('?');
reqPath = pathInfos[0];
if (pathInfos.Length > 1)
{
reqParamStr = pathInfos[1];
}
}
else
{
//POST
reqPath = requestInfo[1];
//从body中取参数
int contentLength = 0;
string contentLengthStr = requestLines[3].Split(':')[1].Replace("\r", "");
Int32.TryParse(contentLengthStr, out contentLength);
if (contentLength > 0)
{
reqParamStr = content.Substring(content.Length - contentLength);
}
}
string responseBody = onReceived?.Invoke(reqPath, reqParamStr);
string headStr = @"HTTP/1.0 200 OK
Content-Type: text/json
Connection: keep-alive
Content-Encoding: utf-8
";
string data =headStr + responseBody;
client.Send(Encoding.UTF8.GetBytes(data));
}
}
catch { }
finally
{
try
{
client.Shutdown(SocketShutdown.Both);
client.Close();
client.Dispose();
}
catch { }
}
}
private static void ProcessListener(OnReceived onReceived, int port)
{
//初始化端点信息
IPAddress address = IPAddress.Loopback;
IPEndPoint endPoint = new IPEndPoint(address, port);
//初始化并启动监听器
serverListener = new TcpListener(endPoint);
serverListener.Start();
LogUtil.debug("Start Http listener on " + port + "\n");
while (true)
{
//挂起并接受请求
Socket client = serverListener.AcceptSocket();
LogUtil.debug("Receive a http request from " + client.RemoteEndPoint.ToString() + "\n");
try
{
hadle(client, onReceived);
}
catch (Exception ex)
{
LogUtil.info(ex.Message);
}
finally
{
//关闭TcpClient对象,回收资源
client.Close();
}
}
}
}
}
类型,说明,名称,属性值
PRO,端口号,Door_PortName,COM1
PRO,IOIP,AIO_IP,192.168.200.11
PRO,使用哪种IP模块,UseAIOBOX,1
位置,优先级,高度,宽度,料仓ID,设备IP,区域ID,灯索引
1#1-1,10,8,15,1,192.168.1.192,0,0
1#1-2,10,8,15,1,192.168.1.192,0,0
1#1-3,10,8,15,1,192.168.1.192,0,0
1#1-4,10,8,15,1,192.168.1.192,0,0
1#1-5,10,8,15,1,192.168.1.192,0,0
1#1-6,10,8,15,1,192.168.1.192,0,0
1#1-7,10,8,15,1,192.168.1.192,0,0
1#1-8,10,8,15,1,192.168.1.192,0,0
1#1-9,10,8,15,1,192.168.1.192,0,0
1#1-10,10,8,15,1,192.168.1.192,0,0
1#1-11,10,8,15,1,192.168.1.192,0,0
1#1-12,10,8,15,1,192.168.1.192,0,0
1#1-13,10,8,15,1,192.168.1.192,0,0
1#1-14,10,8,15,1,192.168.1.192,0,0
1#1-15,10,8,15,1,192.168.1.192,0,0
1#1-16,10,8,15,1,192.168.1.192,0,0
1#1-17,10,8,15,1,192.168.1.192,0,0
1#1-18,10,8,15,1,192.168.1.192,0,0
1#1-19,10,8,15,1,192.168.1.192,0,0
1#1-20,10,8,15,1,192.168.1.192,0,0
1#1-21,10,8,15,1,192.168.1.192,0,0
1#1-22,10,8,15,1,192.168.1.192,0,0
1#1-23,10,8,15,1,192.168.1.192,0,0
1#1-24,10,8,15,1,192.168.1.192,0,0
1#1-25,10,8,15,1,192.168.1.192,0,0
1#1-26,10,8,15,1,192.168.1.192,0,0
1#1-27,10,8,15,1,192.168.1.192,0,0
1#1-28,10,8,15,1,192.168.1.192,0,0
1#1-29,10,8,15,1,192.168.1.192,0,0
1#1-30,10,8,15,1,192.168.1.192,0,0
1#1-31,10,8,15,1,192.168.1.192,0,0
1#1-32,10,8,15,1,192.168.1.192,0,0
1#1-33,10,8,15,1,192.168.1.192,0,0
1#1-34,10,8,15,1,192.168.1.192,0,0
1#1-35,10,8,15,1,192.168.1.192,0,0
1#1-36,10,8,15,1,192.168.1.192,0,0
1#1-37,10,8,15,1,192.168.1.192,0,0
1#1-38,10,8,15,1,192.168.1.192,0,0
1#1-39,10,8,15,1,192.168.1.192,0,0
1#1-40,10,8,15,1,192.168.1.192,0,0
1#1-41,10,8,15,1,192.168.1.192,0,0
1#1-42,10,8,15,1,192.168.1.192,0,0
1#1-43,10,8,15,1,192.168.1.192,0,0
1#1-44,10,8,15,1,192.168.1.192,0,0
1#1-45,10,8,15,1,192.168.1.192,0,0
1#1-46,10,8,15,1,192.168.1.192,0,0
1#1-47,10,8,15,1,192.168.1.192,0,0
1#1-48,10,8,15,1,192.168.1.192,0,0
1#1-49,10,8,15,1,192.168.1.192,0,0
1#1-50,10,8,15,1,192.168.1.192,0,0
1#1-51,10,8,15,1,192.168.1.192,0,0
1#1-52,10,8,15,1,192.168.1.192,0,0
1#1-53,10,8,15,1,192.168.1.192,0,0
1#1-54,10,8,15,1,192.168.1.192,0,0
1#1-55,10,8,15,1,192.168.1.192,0,0
1#1-56,10,8,15,1,192.168.1.192,0,0
1#1-57,10,8,15,1,192.168.1.192,0,0
1#1-58,10,8,15,1,192.168.1.192,0,0
1#1-59,10,8,15,1,192.168.1.192,0,0
1#1-60,10,8,15,1,192.168.1.192,0,0
1#1-61,10,8,15,1,192.168.1.192,0,0
1#1-62,10,8,15,1,192.168.1.192,0,0
1#1-63,10,8,15,1,192.168.1.192,0,0
1#1-64,10,8,15,1,192.168.1.192,0,0
1#1-65,10,8,15,1,192.168.1.192,0,0
1#1-66,10,8,15,1,192.168.1.192,0,0
1#1-67,10,8,15,1,192.168.1.192,0,0
1#1-68,10,8,15,1,192.168.1.192,0,0
1#1-69,10,8,15,1,192.168.1.192,0,0
1#1-70,10,8,15,1,192.168.1.192,0,0
1#2-1,10,8,15,1,192.168.1.192,0,0
1#2-2,10,8,15,1,192.168.1.192,0,0
1#2-3,10,8,15,1,192.168.1.192,0,0
1#2-4,10,8,15,1,192.168.1.192,0,0
1#2-5,10,8,15,1,192.168.1.192,0,0
1#2-6,10,8,15,1,192.168.1.192,0,0
1#2-7,10,8,15,1,192.168.1.192,0,0
1#2-8,10,8,15,1,192.168.1.192,0,0
1#2-9,10,8,15,1,192.168.1.192,0,0
1#2-10,10,8,15,1,192.168.1.192,0,0
1#2-11,10,8,15,1,192.168.1.192,0,0
1#2-12,10,8,15,1,192.168.1.192,0,0
1#2-13,10,8,15,1,192.168.1.192,0,0
1#2-14,10,8,15,1,192.168.1.192,0,0
1#2-15,10,8,15,1,192.168.1.192,0,0
1#2-16,10,8,15,1,192.168.1.192,0,0
1#2-17,10,8,15,1,192.168.1.192,0,0
1#2-18,10,8,15,1,192.168.1.192,0,0
1#2-19,10,8,15,1,192.168.1.192,0,0
1#2-20,10,8,15,1,192.168.1.192,0,0
1#2-21,10,8,15,1,192.168.1.192,0,0
1#2-22,10,8,15,1,192.168.1.192,0,0
1#2-23,10,8,15,1,192.168.1.192,0,0
1#2-24,10,8,15,1,192.168.1.192,0,0
1#2-25,10,8,15,1,192.168.1.192,0,0
1#2-26,10,8,15,1,192.168.1.192,0,0
1#2-27,10,8,15,1,192.168.1.192,0,0
1#2-28,10,8,15,1,192.168.1.192,0,0
1#2-29,10,8,15,1,192.168.1.192,0,0
1#2-30,10,8,15,1,192.168.1.192,0,0
1#2-31,10,8,15,1,192.168.1.192,0,0
1#2-32,10,8,15,1,192.168.1.192,0,0
1#2-33,10,8,15,1,192.168.1.192,0,0
1#2-34,10,8,15,1,192.168.1.192,0,0
1#2-35,10,8,15,1,192.168.1.192,0,0
1#2-36,10,8,15,1,192.168.1.192,0,0
1#2-37,10,8,15,1,192.168.1.192,0,0
1#2-38,10,8,15,1,192.168.1.192,0,0
1#2-39,10,8,15,1,192.168.1.192,0,0
1#2-40,10,8,15,1,192.168.1.192,0,0
1#2-41,10,8,15,1,192.168.1.192,0,0
1#2-42,10,8,15,1,192.168.1.192,0,0
1#2-43,10,8,15,1,192.168.1.192,0,0
1#2-44,10,8,15,1,192.168.1.192,0,0
1#2-45,10,8,15,1,192.168.1.192,0,0
1#2-46,10,8,15,1,192.168.1.192,0,0
1#2-47,10,8,15,1,192.168.1.192,0,0
1#2-48,10,8,15,1,192.168.1.192,0,0
1#2-49,10,8,15,1,192.168.1.192,0,0
1#2-50,10,8,15,1,192.168.1.192,0,0
1#2-51,10,8,15,1,192.168.1.192,0,0
1#2-52,10,8,15,1,192.168.1.192,0,0
1#2-53,10,8,15,1,192.168.1.192,0,0
1#2-54,10,8,15,1,192.168.1.192,0,0
1#2-55,10,8,15,1,192.168.1.192,0,0
1#2-56,10,8,15,1,192.168.1.192,0,0
1#2-57,10,8,15,1,192.168.1.192,0,0
1#2-58,10,8,15,1,192.168.1.192,0,0
1#2-59,10,8,15,1,192.168.1.192,0,0
1#2-60,10,8,15,1,192.168.1.192,0,0
1#2-61,10,8,15,1,192.168.1.192,0,0
1#2-62,10,8,15,1,192.168.1.192,0,0
1#2-63,10,8,15,1,192.168.1.192,0,0
1#2-64,10,8,15,1,192.168.1.192,0,0
1#2-65,10,8,15,1,192.168.1.192,0,0
1#2-66,10,8,15,1,192.168.1.192,0,0
1#2-67,10,8,15,1,192.168.1.192,0,0
1#2-68,10,8,15,1,192.168.1.192,0,0
1#2-69,10,8,15,1,192.168.1.192,0,0
1#2-70,10,8,15,1,192.168.1.192,0,0
位置,优先级,高度,宽度,料仓ID,设备IP,区域ID,灯索引
2#1-1,10,8,15,2,192.168.200.222,0,0
2#1-2,10,8,15,2,192.168.200.222,0,0
2#1-3,10,8,15,2,192.168.200.222,0,0
2#1-4,10,8,15,2,192.168.200.222,0,0
2#1-5,10,8,15,2,192.168.200.222,0,0
2#1-6,10,8,15,2,192.168.200.222,0,0
2#1-7,10,8,15,2,192.168.200.222,0,0
2#1-8,10,8,15,2,192.168.200.222,0,0
2#1-9,10,8,15,2,192.168.200.222,0,0
2#1-10,10,8,15,2,192.168.200.222,0,0
2#1-11,10,8,15,2,192.168.200.222,0,0
2#1-12,10,8,15,2,192.168.200.222,0,0
2#1-13,10,8,15,2,192.168.200.222,0,0
2#1-14,10,8,15,2,192.168.200.222,0,0
2#1-15,10,8,15,2,192.168.200.222,0,0
2#1-16,10,8,15,2,192.168.200.222,0,0
2#1-17,10,8,15,2,192.168.200.222,0,0
2#1-18,10,8,15,2,192.168.200.222,0,0
2#1-19,10,8,15,2,192.168.200.222,0,0
2#1-20,10,8,15,2,192.168.200.222,0,0
2#1-21,10,8,15,2,192.168.200.222,0,0
2#1-22,10,8,15,2,192.168.200.222,0,0
2#1-23,10,8,15,2,192.168.200.222,0,0
2#1-24,10,8,15,2,192.168.200.222,0,0
2#1-25,10,8,15,2,192.168.200.222,0,0
2#1-26,10,8,15,2,192.168.200.222,0,0
2#1-27,10,8,15,2,192.168.200.222,0,0
2#1-28,10,8,15,2,192.168.200.222,0,0
2#1-29,10,8,15,2,192.168.200.222,0,0
2#1-30,10,8,15,2,192.168.200.222,0,0
2#1-31,10,8,15,2,192.168.200.222,0,0
2#1-32,10,8,15,2,192.168.200.222,0,0
2#1-33,10,8,15,2,192.168.200.222,0,0
2#1-34,10,8,15,2,192.168.200.222,0,0
2#1-35,10,8,15,2,192.168.200.222,0,0
2#1-36,10,8,15,2,192.168.200.222,0,0
2#1-37,10,8,15,2,192.168.200.222,0,0
2#1-38,10,8,15,2,192.168.200.222,0,0
2#1-39,10,8,15,2,192.168.200.222,0,0
2#1-40,10,8,15,2,192.168.200.222,0,0
2#1-41,10,8,15,2,192.168.200.222,0,0
2#1-42,10,8,15,2,192.168.200.222,0,0
2#1-43,10,8,15,2,192.168.200.222,0,0
2#1-44,10,8,15,2,192.168.200.222,0,0
2#1-45,10,8,15,2,192.168.200.222,0,0
2#1-46,10,8,15,2,192.168.200.222,0,0
2#1-47,10,8,15,2,192.168.200.222,0,0
2#1-48,10,8,15,2,192.168.200.222,0,0
2#1-49,10,8,15,2,192.168.200.222,0,0
2#1-50,10,8,15,2,192.168.200.222,0,0
2#1-51,10,8,15,2,192.168.200.222,0,0
2#1-52,10,8,15,2,192.168.200.222,0,0
2#1-53,10,8,15,2,192.168.200.222,0,0
2#1-54,10,8,15,2,192.168.200.222,0,0
2#1-55,10,8,15,2,192.168.200.222,0,0
2#1-56,10,8,15,2,192.168.200.222,0,0
2#1-57,10,8,15,2,192.168.200.222,0,0
2#1-58,10,8,15,2,192.168.200.222,0,0
2#1-59,10,8,15,2,192.168.200.222,0,0
2#1-60,10,8,15,2,192.168.200.222,0,0
2#1-61,10,8,15,2,192.168.200.222,0,0
2#1-62,10,8,15,2,192.168.200.222,0,0
2#1-63,10,8,15,2,192.168.200.222,0,0
2#1-64,10,8,15,2,192.168.200.222,0,0
2#1-65,10,8,15,2,192.168.200.222,0,0
2#1-66,10,8,15,2,192.168.200.222,0,0
2#1-67,10,8,15,2,192.168.200.222,0,0
2#1-68,10,8,15,2,192.168.200.222,0,0
2#1-69,10,8,15,2,192.168.200.222,0,0
2#1-70,10,8,15,2,192.168.200.222,0,0
2#2-1,10,8,15,2,192.168.200.222,0,0
2#2-2,10,8,15,2,192.168.200.222,0,0
2#2-3,10,8,15,2,192.168.200.222,0,0
2#2-4,10,8,15,2,192.168.200.222,0,0
2#2-5,10,8,15,2,192.168.200.222,0,0
2#2-6,10,8,15,2,192.168.200.222,0,0
2#2-7,10,8,15,2,192.168.200.222,0,0
2#2-8,10,8,15,2,192.168.200.222,0,0
2#2-9,10,8,15,2,192.168.200.222,0,0
2#2-10,10,8,15,2,192.168.200.222,0,0
2#2-11,10,8,15,2,192.168.200.222,0,0
2#2-12,10,8,15,2,192.168.200.222,0,0
2#2-13,10,8,15,2,192.168.200.222,0,0
2#2-14,10,8,15,2,192.168.200.222,0,0
2#2-15,10,8,15,2,192.168.200.222,0,0
2#2-16,10,8,15,2,192.168.200.222,0,0
2#2-17,10,8,15,2,192.168.200.222,0,0
2#2-18,10,8,15,2,192.168.200.222,0,0
2#2-19,10,8,15,2,192.168.200.222,0,0
2#2-20,10,8,15,2,192.168.200.222,0,0
2#2-21,10,8,15,2,192.168.200.222,0,0
2#2-22,10,8,15,2,192.168.200.222,0,0
2#2-23,10,8,15,2,192.168.200.222,0,0
2#2-24,10,8,15,2,192.168.200.222,0,0
2#2-25,10,8,15,2,192.168.200.222,0,0
2#2-26,10,8,15,2,192.168.200.222,0,0
2#2-27,10,8,15,2,192.168.200.222,0,0
2#2-28,10,8,15,2,192.168.200.222,0,0
2#2-29,10,8,15,2,192.168.200.222,0,0
2#2-30,10,8,15,2,192.168.200.222,0,0
2#2-31,10,8,15,2,192.168.200.222,0,0
2#2-32,10,8,15,2,192.168.200.222,0,0
2#2-33,10,8,15,2,192.168.200.222,0,0
2#2-34,10,8,15,2,192.168.200.222,0,0
2#2-35,10,8,15,2,192.168.200.222,0,0
2#2-36,10,8,15,2,192.168.200.222,0,0
2#2-37,10,8,15,2,192.168.200.222,0,0
2#2-38,10,8,15,2,192.168.200.222,0,0
2#2-39,10,8,15,2,192.168.200.222,0,0
2#2-40,10,8,15,2,192.168.200.222,0,0
2#2-41,10,8,15,2,192.168.200.222,0,0
2#2-42,10,8,15,2,192.168.200.222,0,0
2#2-43,10,8,15,2,192.168.200.222,0,0
2#2-44,10,8,15,2,192.168.200.222,0,0
2#2-45,10,8,15,2,192.168.200.222,0,0
2#2-46,10,8,15,2,192.168.200.222,0,0
2#2-47,10,8,15,2,192.168.200.222,0,0
2#2-48,10,8,15,2,192.168.200.222,0,0
2#2-49,10,8,15,2,192.168.200.222,0,0
2#2-50,10,8,15,2,192.168.200.222,0,0
2#2-51,10,8,15,2,192.168.200.222,0,0
2#2-52,10,8,15,2,192.168.200.222,0,0
2#2-53,10,8,15,2,192.168.200.222,0,0
2#2-54,10,8,15,2,192.168.200.222,0,0
2#2-55,10,8,15,2,192.168.200.222,0,0
2#2-56,10,8,15,2,192.168.200.222,0,0
2#2-57,10,8,15,2,192.168.200.222,0,0
2#2-58,10,8,15,2,192.168.200.222,0,0
2#2-59,10,8,15,2,192.168.200.222,0,0
2#2-60,10,8,15,2,192.168.200.222,0,0
2#2-61,10,8,15,2,192.168.200.222,0,0
2#2-62,10,8,15,2,192.168.200.222,0,0
2#2-63,10,8,15,2,192.168.200.222,0,0
2#2-64,10,8,15,2,192.168.200.222,0,0
2#2-65,10,8,15,2,192.168.200.222,0,0
2#2-66,10,8,15,2,192.168.200.222,0,0
2#2-67,10,8,15,2,192.168.200.222,0,0
2#2-68,10,8,15,2,192.168.200.222,0,0
2#2-69,10,8,15,2,192.168.200.222,0,0
2#2-70,10,8,15,2,192.168.200.222,0,0
位置,优先级,高度,宽度,料仓ID,设备IP,区域ID,灯索引
7#1-1,10,8,30,3,192.168.200.223,0,0
7#1-2,10,8,30,3,192.168.200.223,0,0
7#1-3,10,8,30,3,192.168.200.223,0,0
7#1-4,10,8,30,3,192.168.200.223,0,0
7#1-5,10,8,30,3,192.168.200.223,0,0
7#1-6,10,8,30,3,192.168.200.223,0,0
7#1-7,10,8,30,3,192.168.200.223,0,0
7#1-8,10,8,30,3,192.168.200.223,0,0
7#1-9,10,8,30,3,192.168.200.223,0,0
7#1-10,10,8,30,3,192.168.200.223,0,0
7#1-11,10,8,30,3,192.168.200.223,0,0
7#1-12,10,8,30,3,192.168.200.223,0,0
7#1-13,10,8,30,3,192.168.200.223,0,0
7#1-14,10,8,30,3,192.168.200.223,0,0
7#1-15,10,8,30,3,192.168.200.223,0,0
7#1-16,10,8,30,3,192.168.200.223,0,0
7#1-17,10,8,30,3,192.168.200.223,0,0
7#1-18,10,8,30,3,192.168.200.223,0,0
7#1-19,10,8,30,3,192.168.200.223,0,0
7#1-20,10,8,30,3,192.168.200.223,0,0
7#1-21,10,8,30,3,192.168.200.223,0,0
7#1-22,10,8,30,3,192.168.200.223,0,0
7#1-23,10,8,30,3,192.168.200.223,0,0
7#1-24,10,8,30,3,192.168.200.223,0,0
7#1-25,10,8,30,3,192.168.200.223,0,0
7#1-26,10,8,30,3,192.168.200.223,0,0
7#1-27,10,8,30,3,192.168.200.223,0,0
7#1-28,10,8,30,3,192.168.200.223,0,0
7#1-29,10,8,30,3,192.168.200.223,0,0
7#1-30,10,8,30,3,192.168.200.223,0,0
7#1-31,10,8,30,3,192.168.200.223,0,0
7#1-32,10,8,30,3,192.168.200.223,0,0
7#1-33,10,8,30,3,192.168.200.223,0,0
7#1-34,10,8,30,3,192.168.200.223,0,0
7#1-35,10,8,30,3,192.168.200.223,0,0
7#1-36,10,8,30,3,192.168.200.223,0,0
7#1-37,10,8,30,3,192.168.200.223,0,0
7#1-38,10,8,30,3,192.168.200.223,0,0
7#1-39,10,8,30,3,192.168.200.223,0,0
7#1-40,10,8,30,3,192.168.200.223,0,0
7#2-1,10,8,30,3,192.168.200.223,0,0
7#2-2,10,8,30,3,192.168.200.223,0,0
7#2-3,10,8,30,3,192.168.200.223,0,0
7#2-4,10,8,30,3,192.168.200.223,0,0
7#2-5,10,8,30,3,192.168.200.223,0,0
7#2-6,10,8,30,3,192.168.200.223,0,0
7#2-7,10,8,30,3,192.168.200.223,0,0
7#2-8,10,8,30,3,192.168.200.223,0,0
7#2-9,10,8,30,3,192.168.200.223,0,0
7#2-10,10,8,30,3,192.168.200.223,0,0
7#2-11,10,8,30,3,192.168.200.223,0,0
7#2-12,10,8,30,3,192.168.200.223,0,0
7#2-13,10,8,30,3,192.168.200.223,0,0
7#2-14,10,8,30,3,192.168.200.223,0,0
7#2-15,10,8,30,3,192.168.200.223,0,0
7#2-16,10,8,30,3,192.168.200.223,0,0
7#2-17,10,8,30,3,192.168.200.223,0,0
7#2-18,10,8,30,3,192.168.200.223,0,0
7#2-19,10,8,30,3,192.168.200.223,0,0
7#2-20,10,8,30,3,192.168.200.223,0,0
7#2-21,10,8,30,3,192.168.200.223,0,0
7#2-22,10,8,30,3,192.168.200.223,0,0
7#2-23,10,8,30,3,192.168.200.223,0,0
7#2-24,10,8,30,3,192.168.200.223,0,0
7#2-25,10,8,30,3,192.168.200.223,0,0
7#2-26,10,8,30,3,192.168.200.223,0,0
7#2-27,10,8,30,3,192.168.200.223,0,0
7#2-28,10,8,30,3,192.168.200.223,0,0
7#2-29,10,8,30,3,192.168.200.223,0,0
7#2-30,10,8,30,3,192.168.200.223,0,0
7#2-31,10,8,30,3,192.168.200.223,0,0
7#2-32,10,8,30,3,192.168.200.223,0,0
7#2-33,10,8,30,3,192.168.200.223,0,0
7#2-34,10,8,30,3,192.168.200.223,0,0
7#2-35,10,8,30,3,192.168.200.223,0,0
7#2-36,10,8,30,3,192.168.200.223,0,0
7#2-37,10,8,30,3,192.168.200.223,0,0
7#2-38,10,8,30,3,192.168.200.223,0,0
7#2-39,10,8,30,3,192.168.200.223,0,0
7#2-40,10,8,30,3,192.168.200.223,0,0
位置,优先级,高度,宽度,料仓ID,设备IP,区域ID,灯索引
4#1-1,10,8,15,4,192.168.200.224,0,0
4#1-2,10,8,15,4,192.168.200.224,0,0
4#1-3,10,8,15,4,192.168.200.224,0,0
4#1-4,10,8,15,4,192.168.200.224,0,0
4#1-5,10,8,15,4,192.168.200.224,0,0
4#1-6,10,8,15,4,192.168.200.224,0,0
4#1-7,10,8,15,4,192.168.200.224,0,0
4#1-8,10,8,15,4,192.168.200.224,0,0
4#1-9,10,8,15,4,192.168.200.224,0,0
4#1-10,10,8,15,4,192.168.200.224,0,0
4#1-11,10,8,15,4,192.168.200.224,0,0
4#1-12,10,8,15,4,192.168.200.224,0,0
4#1-13,10,8,15,4,192.168.200.224,0,0
4#1-14,10,8,15,4,192.168.200.224,0,0
4#1-15,10,8,15,4,192.168.200.224,0,0
4#1-16,10,8,15,4,192.168.200.224,0,0
4#1-17,10,8,15,4,192.168.200.224,0,0
4#1-18,10,8,15,4,192.168.200.224,0,0
4#1-19,10,8,15,4,192.168.200.224,0,0
4#1-20,10,8,15,4,192.168.200.224,0,0
4#1-21,10,8,15,4,192.168.200.224,0,0
4#1-22,10,8,15,4,192.168.200.224,0,0
4#1-23,10,8,15,4,192.168.200.224,0,0
4#1-24,10,8,15,4,192.168.200.224,0,0
4#1-25,10,8,15,4,192.168.200.224,0,0
4#1-26,10,8,15,4,192.168.200.224,0,0
4#1-27,10,8,15,4,192.168.200.224,0,0
4#1-28,10,8,15,4,192.168.200.224,0,0
4#1-29,10,8,15,4,192.168.200.224,0,0
4#1-30,10,8,15,4,192.168.200.224,0,0
4#1-31,10,8,15,4,192.168.200.224,0,0
4#1-32,10,8,15,4,192.168.200.224,0,0
4#1-33,10,8,15,4,192.168.200.224,0,0
4#1-34,10,8,15,4,192.168.200.224,0,0
4#1-35,10,8,15,4,192.168.200.224,0,0
4#1-36,10,8,15,4,192.168.200.224,0,0
4#1-37,10,8,15,4,192.168.200.224,0,0
4#1-38,10,8,15,4,192.168.200.224,0,0
4#1-39,10,8,15,4,192.168.200.224,0,0
4#1-40,10,8,15,4,192.168.200.224,0,0
4#1-41,10,8,15,4,192.168.200.224,0,0
4#1-42,10,8,15,4,192.168.200.224,0,0
4#1-43,10,8,15,4,192.168.200.224,0,0
4#1-44,10,8,15,4,192.168.200.224,0,0
4#1-45,10,8,15,4,192.168.200.224,0,0
4#1-46,10,8,15,4,192.168.200.224,0,0
4#1-47,10,8,15,4,192.168.200.224,0,0
4#1-48,10,8,15,4,192.168.200.224,0,0
4#1-49,10,8,15,4,192.168.200.224,0,0
4#1-50,10,8,15,4,192.168.200.224,0,0
4#1-51,10,8,15,4,192.168.200.224,0,0
4#1-52,10,8,15,4,192.168.200.224,0,0
4#1-53,10,8,15,4,192.168.200.224,0,0
4#1-54,10,8,15,4,192.168.200.224,0,0
4#1-55,10,8,15,4,192.168.200.224,0,0
4#1-56,10,8,15,4,192.168.200.224,0,0
4#1-57,10,8,15,4,192.168.200.224,0,0
4#1-58,10,8,15,4,192.168.200.224,0,0
4#1-59,10,8,15,4,192.168.200.224,0,0
4#1-60,10,8,15,4,192.168.200.224,0,0
4#1-61,10,8,15,4,192.168.200.224,0,0
4#1-62,10,8,15,4,192.168.200.224,0,0
4#1-63,10,8,15,4,192.168.200.224,0,0
4#1-64,10,8,15,4,192.168.200.224,0,0
4#1-65,10,8,15,4,192.168.200.224,0,0
4#1-66,10,8,15,4,192.168.200.224,0,0
4#1-67,10,8,15,4,192.168.200.224,0,0
4#1-68,10,8,15,4,192.168.200.224,0,0
4#1-69,10,8,15,4,192.168.200.224,0,0
4#1-70,10,8,15,4,192.168.200.224,0,0
4#2-1,10,8,15,4,192.168.200.224,0,0
4#2-2,10,8,15,4,192.168.200.224,0,0
4#2-3,10,8,15,4,192.168.200.224,0,0
4#2-4,10,8,15,4,192.168.200.224,0,0
4#2-5,10,8,15,4,192.168.200.224,0,0
4#2-6,10,8,15,4,192.168.200.224,0,0
4#2-7,10,8,15,4,192.168.200.224,0,0
4#2-8,10,8,15,4,192.168.200.224,0,0
4#2-9,10,8,15,4,192.168.200.224,0,0
4#2-10,10,8,15,4,192.168.200.224,0,0
4#2-11,10,8,15,4,192.168.200.224,0,0
4#2-12,10,8,15,4,192.168.200.224,0,0
4#2-13,10,8,15,4,192.168.200.224,0,0
4#2-14,10,8,15,4,192.168.200.224,0,0
4#2-15,10,8,15,4,192.168.200.224,0,0
4#2-16,10,8,15,4,192.168.200.224,0,0
4#2-17,10,8,15,4,192.168.200.224,0,0
4#2-18,10,8,15,4,192.168.200.224,0,0
4#2-19,10,8,15,4,192.168.200.224,0,0
4#2-20,10,8,15,4,192.168.200.224,0,0
4#2-21,10,8,15,4,192.168.200.224,0,0
4#2-22,10,8,15,4,192.168.200.224,0,0
4#2-23,10,8,15,4,192.168.200.224,0,0
4#2-24,10,8,15,4,192.168.200.224,0,0
4#2-25,10,8,15,4,192.168.200.224,0,0
4#2-26,10,8,15,4,192.168.200.224,0,0
4#2-27,10,8,15,4,192.168.200.224,0,0
4#2-28,10,8,15,4,192.168.200.224,0,0
4#2-29,10,8,15,4,192.168.200.224,0,0
4#2-30,10,8,15,4,192.168.200.224,0,0
4#2-31,10,8,15,4,192.168.200.224,0,0
4#2-32,10,8,15,4,192.168.200.224,0,0
4#2-33,10,8,15,4,192.168.200.224,0,0
4#2-34,10,8,15,4,192.168.200.224,0,0
4#2-35,10,8,15,4,192.168.200.224,0,0
4#2-36,10,8,15,4,192.168.200.224,0,0
4#2-37,10,8,15,4,192.168.200.224,0,0
4#2-38,10,8,15,4,192.168.200.224,0,0
4#2-39,10,8,15,4,192.168.200.224,0,0
4#2-40,10,8,15,4,192.168.200.224,0,0
4#2-41,10,8,15,4,192.168.200.224,0,0
4#2-42,10,8,15,4,192.168.200.224,0,0
4#2-43,10,8,15,4,192.168.200.224,0,0
4#2-44,10,8,15,4,192.168.200.224,0,0
4#2-45,10,8,15,4,192.168.200.224,0,0
4#2-46,10,8,15,4,192.168.200.224,0,0
4#2-47,10,8,15,4,192.168.200.224,0,0
4#2-48,10,8,15,4,192.168.200.224,0,0
4#2-49,10,8,15,4,192.168.200.224,0,0
4#2-50,10,8,15,4,192.168.200.224,0,0
4#2-51,10,8,15,4,192.168.200.224,0,0
4#2-52,10,8,15,4,192.168.200.224,0,0
4#2-53,10,8,15,4,192.168.200.224,0,0
4#2-54,10,8,15,4,192.168.200.224,0,0
4#2-55,10,8,15,4,192.168.200.224,0,0
4#2-56,10,8,15,4,192.168.200.224,0,0
4#2-57,10,8,15,4,192.168.200.224,0,0
4#2-58,10,8,15,4,192.168.200.224,0,0
4#2-59,10,8,15,4,192.168.200.224,0,0
4#2-60,10,8,15,4,192.168.200.224,0,0
4#2-61,10,8,15,4,192.168.200.224,0,0
4#2-62,10,8,15,4,192.168.200.224,0,0
4#2-63,10,8,15,4,192.168.200.224,0,0
4#2-64,10,8,15,4,192.168.200.224,0,0
4#2-65,10,8,15,4,192.168.200.224,0,0
4#2-66,10,8,15,4,192.168.200.224,0,0
4#2-67,10,8,15,4,192.168.200.224,0,0
4#2-68,10,8,15,4,192.168.200.224,0,0
4#2-69,10,8,15,4,192.168.200.224,0,0
4#2-70,10,8,15,4,192.168.200.224,0,0
位置,优先级,高度,宽度,料仓ID,设备IP,区域ID,灯索引
5#1-1,10,8,15,5,192.168.200.225,0,0
5#1-2,10,8,15,5,192.168.200.225,0,0
5#1-3,10,8,15,5,192.168.200.225,0,0
5#1-4,10,8,15,5,192.168.200.225,0,0
5#1-5,10,8,15,5,192.168.200.225,0,0
5#1-6,10,8,15,5,192.168.200.225,0,0
5#1-7,10,8,15,5,192.168.200.225,0,0
5#1-8,10,8,15,5,192.168.200.225,0,0
5#1-9,10,8,15,5,192.168.200.225,0,0
5#1-10,10,8,15,5,192.168.200.225,0,0
5#1-11,10,8,15,5,192.168.200.225,0,0
5#1-12,10,8,15,5,192.168.200.225,0,0
5#1-13,10,8,15,5,192.168.200.225,0,0
5#1-14,10,8,15,5,192.168.200.225,0,0
5#1-15,10,8,15,5,192.168.200.225,0,0
5#1-16,10,8,15,5,192.168.200.225,0,0
5#1-17,10,8,15,5,192.168.200.225,0,0
5#1-18,10,8,15,5,192.168.200.225,0,0
5#1-19,10,8,15,5,192.168.200.225,0,0
5#1-20,10,8,15,5,192.168.200.225,0,0
5#1-21,10,8,15,5,192.168.200.225,0,0
5#1-22,10,8,15,5,192.168.200.225,0,0
5#1-23,10,8,15,5,192.168.200.225,0,0
5#1-24,10,8,15,5,192.168.200.225,0,0
5#1-25,10,8,15,5,192.168.200.225,0,0
5#1-26,10,8,15,5,192.168.200.225,0,0
5#1-27,10,8,15,5,192.168.200.225,0,0
5#1-28,10,8,15,5,192.168.200.225,0,0
5#1-29,10,8,15,5,192.168.200.225,0,0
5#1-30,10,8,15,5,192.168.200.225,0,0
5#1-31,10,8,15,5,192.168.200.225,0,0
5#1-32,10,8,15,5,192.168.200.225,0,0
5#1-33,10,8,15,5,192.168.200.225,0,0
5#1-34,10,8,15,5,192.168.200.225,0,0
5#1-35,10,8,15,5,192.168.200.225,0,0
5#1-36,10,8,15,5,192.168.200.225,0,0
5#1-37,10,8,15,5,192.168.200.225,0,0
5#1-38,10,8,15,5,192.168.200.225,0,0
5#1-39,10,8,15,5,192.168.200.225,0,0
5#1-40,10,8,15,5,192.168.200.225,0,0
5#1-41,10,8,15,5,192.168.200.225,0,0
5#1-42,10,8,15,5,192.168.200.225,0,0
5#1-43,10,8,15,5,192.168.200.225,0,0
5#1-44,10,8,15,5,192.168.200.225,0,0
5#1-45,10,8,15,5,192.168.200.225,0,0
5#1-46,10,8,15,5,192.168.200.225,0,0
5#1-47,10,8,15,5,192.168.200.225,0,0
5#1-48,10,8,15,5,192.168.200.225,0,0
5#1-49,10,8,15,5,192.168.200.225,0,0
5#1-50,10,8,15,5,192.168.200.225,0,0
5#1-51,10,8,15,5,192.168.200.225,0,0
5#1-52,10,8,15,5,192.168.200.225,0,0
5#1-53,10,8,15,5,192.168.200.225,0,0
5#1-54,10,8,15,5,192.168.200.225,0,0
5#1-55,10,8,15,5,192.168.200.225,0,0
5#1-56,10,8,15,5,192.168.200.225,0,0
5#1-57,10,8,15,5,192.168.200.225,0,0
5#1-58,10,8,15,5,192.168.200.225,0,0
5#1-59,10,8,15,5,192.168.200.225,0,0
5#1-60,10,8,15,5,192.168.200.225,0,0
5#1-61,10,8,15,5,192.168.200.225,0,0
5#1-62,10,8,15,5,192.168.200.225,0,0
5#1-63,10,8,15,5,192.168.200.225,0,0
5#1-64,10,8,15,5,192.168.200.225,0,0
5#1-65,10,8,15,5,192.168.200.225,0,0
5#1-66,10,8,15,5,192.168.200.225,0,0
5#1-67,10,8,15,5,192.168.200.225,0,0
5#1-68,10,8,15,5,192.168.200.225,0,0
5#1-69,10,8,15,5,192.168.200.225,0,0
5#1-70,10,8,15,5,192.168.200.225,0,0
5#2-1,10,8,15,5,192.168.200.225,0,0
5#2-2,10,8,15,5,192.168.200.225,0,0
5#2-3,10,8,15,5,192.168.200.225,0,0
5#2-4,10,8,15,5,192.168.200.225,0,0
5#2-5,10,8,15,5,192.168.200.225,0,0
5#2-6,10,8,15,5,192.168.200.225,0,0
5#2-7,10,8,15,5,192.168.200.225,0,0
5#2-8,10,8,15,5,192.168.200.225,0,0
5#2-9,10,8,15,5,192.168.200.225,0,0
5#2-10,10,8,15,5,192.168.200.225,0,0
5#2-11,10,8,15,5,192.168.200.225,0,0
5#2-12,10,8,15,5,192.168.200.225,0,0
5#2-13,10,8,15,5,192.168.200.225,0,0
5#2-14,10,8,15,5,192.168.200.225,0,0
5#2-15,10,8,15,5,192.168.200.225,0,0
5#2-16,10,8,15,5,192.168.200.225,0,0
5#2-17,10,8,15,5,192.168.200.225,0,0
5#2-18,10,8,15,5,192.168.200.225,0,0
5#2-19,10,8,15,5,192.168.200.225,0,0
5#2-20,10,8,15,5,192.168.200.225,0,0
5#2-21,10,8,15,5,192.168.200.225,0,0
5#2-22,10,8,15,5,192.168.200.225,0,0
5#2-23,10,8,15,5,192.168.200.225,0,0
5#2-24,10,8,15,5,192.168.200.225,0,0
5#2-25,10,8,15,5,192.168.200.225,0,0
5#2-26,10,8,15,5,192.168.200.225,0,0
5#2-27,10,8,15,5,192.168.200.225,0,0
5#2-28,10,8,15,5,192.168.200.225,0,0
5#2-29,10,8,15,5,192.168.200.225,0,0
5#2-30,10,8,15,5,192.168.200.225,0,0
5#2-31,10,8,15,5,192.168.200.225,0,0
5#2-32,10,8,15,5,192.168.200.225,0,0
5#2-33,10,8,15,5,192.168.200.225,0,0
5#2-34,10,8,15,5,192.168.200.225,0,0
5#2-35,10,8,15,5,192.168.200.225,0,0
5#2-36,10,8,15,5,192.168.200.225,0,0
5#2-37,10,8,15,5,192.168.200.225,0,0
5#2-38,10,8,15,5,192.168.200.225,0,0
5#2-39,10,8,15,5,192.168.200.225,0,0
5#2-40,10,8,15,5,192.168.200.225,0,0
5#2-41,10,8,15,5,192.168.200.225,0,0
5#2-42,10,8,15,5,192.168.200.225,0,0
5#2-43,10,8,15,5,192.168.200.225,0,0
5#2-44,10,8,15,5,192.168.200.225,0,0
5#2-45,10,8,15,5,192.168.200.225,0,0
5#2-46,10,8,15,5,192.168.200.225,0,0
5#2-47,10,8,15,5,192.168.200.225,0,0
5#2-48,10,8,15,5,192.168.200.225,0,0
5#2-49,10,8,15,5,192.168.200.225,0,0
5#2-50,10,8,15,5,192.168.200.225,0,0
5#2-51,10,8,15,5,192.168.200.225,0,0
5#2-52,10,8,15,5,192.168.200.225,0,0
5#2-53,10,8,15,5,192.168.200.225,0,0
5#2-54,10,8,15,5,192.168.200.225,0,0
5#2-55,10,8,15,5,192.168.200.225,0,0
5#2-56,10,8,15,5,192.168.200.225,0,0
5#2-57,10,8,15,5,192.168.200.225,0,0
5#2-58,10,8,15,5,192.168.200.225,0,0
5#2-59,10,8,15,5,192.168.200.225,0,0
5#2-60,10,8,15,5,192.168.200.225,0,0
5#2-61,10,8,15,5,192.168.200.225,0,0
5#2-62,10,8,15,5,192.168.200.225,0,0
5#2-63,10,8,15,5,192.168.200.225,0,0
5#2-64,10,8,15,5,192.168.200.225,0,0
5#2-65,10,8,15,5,192.168.200.225,0,0
5#2-66,10,8,15,5,192.168.200.225,0,0
5#2-67,10,8,15,5,192.168.200.225,0,0
5#2-68,10,8,15,5,192.168.200.225,0,0
5#2-69,10,8,15,5,192.168.200.225,0,0
5#2-70,10,8,15,5,192.168.200.225,0,0
位置,优先级,高度,宽度,料仓ID,设备IP,区域ID,灯索引
6#1-1,10,8,15,6,192.168.200.226,0,0
6#1-2,10,8,15,6,192.168.200.226,0,0
6#1-3,10,8,15,6,192.168.200.226,0,0
6#1-4,10,8,15,6,192.168.200.226,0,0
6#1-5,10,8,15,6,192.168.200.226,0,0
6#1-6,10,8,15,6,192.168.200.226,0,0
6#1-7,10,8,15,6,192.168.200.226,0,0
6#1-8,10,8,15,6,192.168.200.226,0,0
6#1-9,10,8,15,6,192.168.200.226,0,0
6#1-10,10,8,15,6,192.168.200.226,0,0
6#1-11,10,8,15,6,192.168.200.226,0,0
6#1-12,10,8,15,6,192.168.200.226,0,0
6#1-13,10,8,15,6,192.168.200.226,0,0
6#1-14,10,8,15,6,192.168.200.226,0,0
6#1-15,10,8,15,6,192.168.200.226,0,0
6#1-16,10,8,15,6,192.168.200.226,0,0
6#1-17,10,8,15,6,192.168.200.226,0,0
6#1-18,10,8,15,6,192.168.200.226,0,0
6#1-19,10,8,15,6,192.168.200.226,0,0
6#1-20,10,8,15,6,192.168.200.226,0,0
6#1-21,10,8,15,6,192.168.200.226,0,0
6#1-22,10,8,15,6,192.168.200.226,0,0
6#1-23,10,8,15,6,192.168.200.226,0,0
6#1-24,10,8,15,6,192.168.200.226,0,0
6#1-25,10,8,15,6,192.168.200.226,0,0
6#1-26,10,8,15,6,192.168.200.226,0,0
6#1-27,10,8,15,6,192.168.200.226,0,0
6#1-28,10,8,15,6,192.168.200.226,0,0
6#1-29,10,8,15,6,192.168.200.226,0,0
6#1-30,10,8,15,6,192.168.200.226,0,0
6#1-31,10,8,15,6,192.168.200.226,0,0
6#1-32,10,8,15,6,192.168.200.226,0,0
6#1-33,10,8,15,6,192.168.200.226,0,0
6#1-34,10,8,15,6,192.168.200.226,0,0
6#1-35,10,8,15,6,192.168.200.226,0,0
6#1-36,10,8,15,6,192.168.200.226,0,0
6#1-37,10,8,15,6,192.168.200.226,0,0
6#1-38,10,8,15,6,192.168.200.226,0,0
6#1-39,10,8,15,6,192.168.200.226,0,0
6#1-40,10,8,15,6,192.168.200.226,0,0
6#1-41,10,8,15,6,192.168.200.226,0,0
6#1-42,10,8,15,6,192.168.200.226,0,0
6#1-43,10,8,15,6,192.168.200.226,0,0
6#1-44,10,8,15,6,192.168.200.226,0,0
6#1-45,10,8,15,6,192.168.200.226,0,0
6#1-46,10,8,15,6,192.168.200.226,0,0
6#1-47,10,8,15,6,192.168.200.226,0,0
6#1-48,10,8,15,6,192.168.200.226,0,0
6#1-49,10,8,15,6,192.168.200.226,0,0
6#1-50,10,8,15,6,192.168.200.226,0,0
6#1-51,10,8,15,6,192.168.200.226,0,0
6#1-52,10,8,15,6,192.168.200.226,0,0
6#1-53,10,8,15,6,192.168.200.226,0,0
6#1-54,10,8,15,6,192.168.200.226,0,0
6#1-55,10,8,15,6,192.168.200.226,0,0
6#1-56,10,8,15,6,192.168.200.226,0,0
6#1-57,10,8,15,6,192.168.200.226,0,0
6#1-58,10,8,15,6,192.168.200.226,0,0
6#1-59,10,8,15,6,192.168.200.226,0,0
6#1-60,10,8,15,6,192.168.200.226,0,0
6#1-61,10,8,15,6,192.168.200.226,0,0
6#1-62,10,8,15,6,192.168.200.226,0,0
6#1-63,10,8,15,6,192.168.200.226,0,0
6#1-64,10,8,15,6,192.168.200.226,0,0
6#1-65,10,8,15,6,192.168.200.226,0,0
6#1-66,10,8,15,6,192.168.200.226,0,0
6#1-67,10,8,15,6,192.168.200.226,0,0
6#1-68,10,8,15,6,192.168.200.226,0,0
6#1-69,10,8,15,6,192.168.200.226,0,0
6#1-70,10,8,15,6,192.168.200.226,0,0
6#2-1,10,8,15,6,192.168.200.226,0,0
6#2-2,10,8,15,6,192.168.200.226,0,0
6#2-3,10,8,15,6,192.168.200.226,0,0
6#2-4,10,8,15,6,192.168.200.226,0,0
6#2-5,10,8,15,6,192.168.200.226,0,0
6#2-6,10,8,15,6,192.168.200.226,0,0
6#2-7,10,8,15,6,192.168.200.226,0,0
6#2-8,10,8,15,6,192.168.200.226,0,0
6#2-9,10,8,15,6,192.168.200.226,0,0
6#2-10,10,8,15,6,192.168.200.226,0,0
6#2-11,10,8,15,6,192.168.200.226,0,0
6#2-12,10,8,15,6,192.168.200.226,0,0
6#2-13,10,8,15,6,192.168.200.226,0,0
6#2-14,10,8,15,6,192.168.200.226,0,0
6#2-15,10,8,15,6,192.168.200.226,0,0
6#2-16,10,8,15,6,192.168.200.226,0,0
6#2-17,10,8,15,6,192.168.200.226,0,0
6#2-18,10,8,15,6,192.168.200.226,0,0
6#2-19,10,8,15,6,192.168.200.226,0,0
6#2-20,10,8,15,6,192.168.200.226,0,0
6#2-21,10,8,15,6,192.168.200.226,0,0
6#2-22,10,8,15,6,192.168.200.226,0,0
6#2-23,10,8,15,6,192.168.200.226,0,0
6#2-24,10,8,15,6,192.168.200.226,0,0
6#2-25,10,8,15,6,192.168.200.226,0,0
6#2-26,10,8,15,6,192.168.200.226,0,0
6#2-27,10,8,15,6,192.168.200.226,0,0
6#2-28,10,8,15,6,192.168.200.226,0,0
6#2-29,10,8,15,6,192.168.200.226,0,0
6#2-30,10,8,15,6,192.168.200.226,0,0
6#2-31,10,8,15,6,192.168.200.226,0,0
6#2-32,10,8,15,6,192.168.200.226,0,0
6#2-33,10,8,15,6,192.168.200.226,0,0
6#2-34,10,8,15,6,192.168.200.226,0,0
6#2-35,10,8,15,6,192.168.200.226,0,0
6#2-36,10,8,15,6,192.168.200.226,0,0
6#2-37,10,8,15,6,192.168.200.226,0,0
6#2-38,10,8,15,6,192.168.200.226,0,0
6#2-39,10,8,15,6,192.168.200.226,0,0
6#2-40,10,8,15,6,192.168.200.226,0,0
6#2-41,10,8,15,6,192.168.200.226,0,0
6#2-42,10,8,15,6,192.168.200.226,0,0
6#2-43,10,8,15,6,192.168.200.226,0,0
6#2-44,10,8,15,6,192.168.200.226,0,0
6#2-45,10,8,15,6,192.168.200.226,0,0
6#2-46,10,8,15,6,192.168.200.226,0,0
6#2-47,10,8,15,6,192.168.200.226,0,0
6#2-48,10,8,15,6,192.168.200.226,0,0
6#2-49,10,8,15,6,192.168.200.226,0,0
6#2-50,10,8,15,6,192.168.200.226,0,0
6#2-51,10,8,15,6,192.168.200.226,0,0
6#2-52,10,8,15,6,192.168.200.226,0,0
6#2-53,10,8,15,6,192.168.200.226,0,0
6#2-54,10,8,15,6,192.168.200.226,0,0
6#2-55,10,8,15,6,192.168.200.226,0,0
6#2-56,10,8,15,6,192.168.200.226,0,0
6#2-57,10,8,15,6,192.168.200.226,0,0
6#2-58,10,8,15,6,192.168.200.226,0,0
6#2-59,10,8,15,6,192.168.200.226,0,0
6#2-60,10,8,15,6,192.168.200.226,0,0
6#2-61,10,8,15,6,192.168.200.226,0,0
6#2-62,10,8,15,6,192.168.200.226,0,0
6#2-63,10,8,15,6,192.168.200.226,0,0
6#2-64,10,8,15,6,192.168.200.226,0,0
6#2-65,10,8,15,6,192.168.200.226,0,0
6#2-66,10,8,15,6,192.168.200.226,0,0
6#2-67,10,8,15,6,192.168.200.226,0,0
6#2-68,10,8,15,6,192.168.200.226,0,0
6#2-69,10,8,15,6,192.168.200.226,0,0
6#2-70,10,8,15,6,192.168.200.226,0,0
位置,优先级,高度,宽度,料仓ID,设备IP,区域ID,灯索引
3#1-1,10,8,15,7,192.168.200.227,0,0
3#1-2,10,8,15,7,192.168.200.227,0,0
3#1-3,10,8,15,7,192.168.200.227,0,0
3#1-4,10,8,15,7,192.168.200.227,0,0
3#1-5,10,8,15,7,192.168.200.227,0,0
3#1-6,10,8,15,7,192.168.200.227,0,0
3#1-7,10,8,15,7,192.168.200.227,0,0
3#1-8,10,8,15,7,192.168.200.227,0,0
3#1-9,10,8,15,7,192.168.200.227,0,0
3#1-10,10,8,15,7,192.168.200.227,0,0
3#1-11,10,8,15,7,192.168.200.227,0,0
3#1-12,10,8,15,7,192.168.200.227,0,0
3#1-13,10,8,15,7,192.168.200.227,0,0
3#1-14,10,8,15,7,192.168.200.227,0,0
3#1-15,10,8,15,7,192.168.200.227,0,0
3#1-16,10,8,15,7,192.168.200.227,0,0
3#1-17,10,8,15,7,192.168.200.227,0,0
3#1-18,10,8,15,7,192.168.200.227,0,0
3#1-19,10,8,15,7,192.168.200.227,0,0
3#1-20,10,8,15,7,192.168.200.227,0,0
3#1-21,10,8,15,7,192.168.200.227,0,0
3#1-22,10,8,15,7,192.168.200.227,0,0
3#1-23,10,8,15,7,192.168.200.227,0,0
3#1-24,10,8,15,7,192.168.200.227,0,0
3#1-25,10,8,15,7,192.168.200.227,0,0
3#1-26,10,8,15,7,192.168.200.227,0,0
3#1-27,10,8,15,7,192.168.200.227,0,0
3#1-28,10,8,15,7,192.168.200.227,0,0
3#1-29,10,8,15,7,192.168.200.227,0,0
3#1-30,10,8,15,7,192.168.200.227,0,0
3#1-31,10,8,15,7,192.168.200.227,0,0
3#1-32,10,8,15,7,192.168.200.227,0,0
3#1-33,10,8,15,7,192.168.200.227,0,0
3#1-34,10,8,15,7,192.168.200.227,0,0
3#1-35,10,8,15,7,192.168.200.227,0,0
3#1-36,10,8,15,7,192.168.200.227,0,0
3#1-37,10,8,15,7,192.168.200.227,0,0
3#1-38,10,8,15,7,192.168.200.227,0,0
3#1-39,10,8,15,7,192.168.200.227,0,0
3#1-40,10,8,15,7,192.168.200.227,0,0
3#1-41,10,8,15,7,192.168.200.227,0,0
3#1-42,10,8,15,7,192.168.200.227,0,0
3#1-43,10,8,15,7,192.168.200.227,0,0
3#1-44,10,8,15,7,192.168.200.227,0,0
3#1-45,10,8,15,7,192.168.200.227,0,0
3#1-46,10,8,15,7,192.168.200.227,0,0
3#1-47,10,8,15,7,192.168.200.227,0,0
3#1-48,10,8,15,7,192.168.200.227,0,0
3#1-49,10,8,15,7,192.168.200.227,0,0
3#1-50,10,8,15,7,192.168.200.227,0,0
3#1-51,10,8,15,7,192.168.200.227,0,0
3#1-52,10,8,15,7,192.168.200.227,0,0
3#1-53,10,8,15,7,192.168.200.227,0,0
3#1-54,10,8,15,7,192.168.200.227,0,0
3#1-55,10,8,15,7,192.168.200.227,0,0
3#1-56,10,8,15,7,192.168.200.227,0,0
3#1-57,10,8,15,7,192.168.200.227,0,0
3#1-58,10,8,15,7,192.168.200.227,0,0
3#1-59,10,8,15,7,192.168.200.227,0,0
3#1-60,10,8,15,7,192.168.200.227,0,0
3#1-61,10,8,15,7,192.168.200.227,0,0
3#1-62,10,8,15,7,192.168.200.227,0,0
3#1-63,10,8,15,7,192.168.200.227,0,0
3#1-64,10,8,15,7,192.168.200.227,0,0
3#1-65,10,8,15,7,192.168.200.227,0,0
3#1-66,10,8,15,7,192.168.200.227,0,0
3#1-67,10,8,15,7,192.168.200.227,0,0
3#1-68,10,8,15,7,192.168.200.227,0,0
3#1-69,10,8,15,7,192.168.200.227,0,0
3#1-70,10,8,15,7,192.168.200.227,0,0
3#2-1,10,8,15,7,192.168.200.227,0,0
3#2-2,10,8,15,7,192.168.200.227,0,0
3#2-3,10,8,15,7,192.168.200.227,0,0
3#2-4,10,8,15,7,192.168.200.227,0,0
3#2-5,10,8,15,7,192.168.200.227,0,0
3#2-6,10,8,15,7,192.168.200.227,0,0
3#2-7,10,8,15,7,192.168.200.227,0,0
3#2-8,10,8,15,7,192.168.200.227,0,0
3#2-9,10,8,15,7,192.168.200.227,0,0
3#2-10,10,8,15,7,192.168.200.227,0,0
3#2-11,10,8,15,7,192.168.200.227,0,0
3#2-12,10,8,15,7,192.168.200.227,0,0
3#2-13,10,8,15,7,192.168.200.227,0,0
3#2-14,10,8,15,7,192.168.200.227,0,0
3#2-15,10,8,15,7,192.168.200.227,0,0
3#2-16,10,8,15,7,192.168.200.227,0,0
3#2-17,10,8,15,7,192.168.200.227,0,0
3#2-18,10,8,15,7,192.168.200.227,0,0
3#2-19,10,8,15,7,192.168.200.227,0,0
3#2-20,10,8,15,7,192.168.200.227,0,0
3#2-21,10,8,15,7,192.168.200.227,0,0
3#2-22,10,8,15,7,192.168.200.227,0,0
3#2-23,10,8,15,7,192.168.200.227,0,0
3#2-24,10,8,15,7,192.168.200.227,0,0
3#2-25,10,8,15,7,192.168.200.227,0,0
3#2-26,10,8,15,7,192.168.200.227,0,0
3#2-27,10,8,15,7,192.168.200.227,0,0
3#2-28,10,8,15,7,192.168.200.227,0,0
3#2-29,10,8,15,7,192.168.200.227,0,0
3#2-30,10,8,15,7,192.168.200.227,0,0
3#2-31,10,8,15,7,192.168.200.227,0,0
3#2-32,10,8,15,7,192.168.200.227,0,0
3#2-33,10,8,15,7,192.168.200.227,0,0
3#2-34,10,8,15,7,192.168.200.227,0,0
3#2-35,10,8,15,7,192.168.200.227,0,0
3#2-36,10,8,15,7,192.168.200.227,0,0
3#2-37,10,8,15,7,192.168.200.227,0,0
3#2-38,10,8,15,7,192.168.200.227,0,0
3#2-39,10,8,15,7,192.168.200.227,0,0
3#2-40,10,8,15,7,192.168.200.227,0,0
3#2-41,10,8,15,7,192.168.200.227,0,0
3#2-42,10,8,15,7,192.168.200.227,0,0
3#2-43,10,8,15,7,192.168.200.227,0,0
3#2-44,10,8,15,7,192.168.200.227,0,0
3#2-45,10,8,15,7,192.168.200.227,0,0
3#2-46,10,8,15,7,192.168.200.227,0,0
3#2-47,10,8,15,7,192.168.200.227,0,0
3#2-48,10,8,15,7,192.168.200.227,0,0
3#2-49,10,8,15,7,192.168.200.227,0,0
3#2-50,10,8,15,7,192.168.200.227,0,0
3#2-51,10,8,15,7,192.168.200.227,0,0
3#2-52,10,8,15,7,192.168.200.227,0,0
3#2-53,10,8,15,7,192.168.200.227,0,0
3#2-54,10,8,15,7,192.168.200.227,0,0
3#2-55,10,8,15,7,192.168.200.227,0,0
3#2-56,10,8,15,7,192.168.200.227,0,0
3#2-57,10,8,15,7,192.168.200.227,0,0
3#2-58,10,8,15,7,192.168.200.227,0,0
3#2-59,10,8,15,7,192.168.200.227,0,0
3#2-60,10,8,15,7,192.168.200.227,0,0
3#2-61,10,8,15,7,192.168.200.227,0,0
3#2-62,10,8,15,7,192.168.200.227,0,0
3#2-63,10,8,15,7,192.168.200.227,0,0
3#2-64,10,8,15,7,192.168.200.227,0,0
3#2-65,10,8,15,7,192.168.200.227,0,0
3#2-66,10,8,15,7,192.168.200.227,0,0
3#2-67,10,8,15,7,192.168.200.227,0,0
3#2-68,10,8,15,7,192.168.200.227,0,0
3#2-69,10,8,15,7,192.168.200.227,0,0
3#2-70,10,8,15,7,192.168.200.227,0,0
类型,说明,名称,属性值
PRO,端口号,Door_PortName,COM1
PRO,IOIP,AIO_IP,192.168.200.11
PRO,使用哪种IP模块,UseAIOBOX,1
λÖÃ,ÓÅÏȼ¶,¸ß¶È,¿í¶È,ÁϲÖID,É豸IP,ÇøÓòID,µÆË÷Òý
1#A1_1,10,8,7,1,192.168.200.221,0,0
1#A1_2,10,8,7,1,192.168.200.221,0,1
1#A1_3,10,8,7,1,192.168.200.221,0,2
1#A1_4,10,8,7,1,192.168.200.221,0,3
1#A1_5,10,8,7,1,192.168.200.221,0,4
1#A1_6,10,8,7,1,192.168.200.221,0,5
1#A1_7,10,8,7,1,192.168.200.221,0,6
1#A1_8,10,8,7,1,192.168.200.221,0,7
1#A1_9,10,8,7,1,192.168.200.221,0,8
1#A1_10,10,8,7,1,192.168.200.221,0,9
1#A1_11,10,8,7,1,192.168.200.221,0,10
1#A1_12,10,8,7,1,192.168.200.221,0,11
1#A1_13,10,8,7,1,192.168.200.221,0,12
1#A1_14,10,8,7,1,192.168.200.221,0,13
1#A1_15,10,8,7,1,192.168.200.221,0,14
1#A1_16,10,8,7,1,192.168.200.221,0,15
1#A1_17,10,8,7,1,192.168.200.221,0,16
1#A1_18,10,8,7,1,192.168.200.221,0,17
1#A1_19,10,8,7,1,192.168.200.221,0,18
1#A1_20,10,8,7,1,192.168.200.221,0,19
1#A1_21,10,8,7,1,192.168.200.221,0,20
1#A1_22,10,8,7,1,192.168.200.221,0,21
1#A1_23,10,8,7,1,192.168.200.221,0,22
1#A1_24,10,8,7,1,192.168.200.221,0,23
1#A1_25,10,8,7,1,192.168.200.221,0,24
1#A1_26,10,8,7,1,192.168.200.221,0,25
1#A1_27,10,8,7,1,192.168.200.221,0,26
1#A1_28,10,8,7,1,192.168.200.221,0,27
1#A1_29,10,8,7,1,192.168.200.221,0,28
1#A1_30,10,8,7,1,192.168.200.221,0,29
1#A1_31,10,8,7,1,192.168.200.221,0,30
1#A1_32,10,8,7,1,192.168.200.221,0,31
1#A1_33,10,8,7,1,192.168.200.221,0,32
1#A1_34,10,8,7,1,192.168.200.221,0,33
1#A1_35,10,8,7,1,192.168.200.221,0,34
1#A1_36,10,8,7,1,192.168.200.221,0,35
1#A1_37,10,8,7,1,192.168.200.221,0,36
1#A1_38,10,8,7,1,192.168.200.221,0,37
1#A1_39,10,8,7,1,192.168.200.221,0,38
1#A1_40,10,8,7,1,192.168.200.221,0,39
,,,,,,,
1#A2_1,10,8,13,1,192.168.200.221,0,79
1#A2_2,10,8,13,1,192.168.200.221,0,78
1#A2_3,10,8,13,1,192.168.200.221,0,77
1#A2_4,10,8,13,1,192.168.200.221,0,76
1#A2_5,10,8,13,1,192.168.200.221,0,75
1#A2_6,10,8,13,1,192.168.200.221,0,74
1#A2_7,10,8,13,1,192.168.200.221,0,73
1#A2_8,10,8,13,1,192.168.200.221,0,72
1#A2_9,10,8,13,1,192.168.200.221,0,71
1#A2_10,10,8,13,1,192.168.200.221,0,70
1#A2_11,10,8,13,1,192.168.200.221,0,69
1#A2_12,10,8,13,1,192.168.200.221,0,68
1#A2_13,10,8,13,1,192.168.200.221,0,67
1#A2_14,10,8,13,1,192.168.200.221,0,66
1#A2_15,10,8,13,1,192.168.200.221,0,65
1#A2_16,10,8,13,1,192.168.200.221,0,64
1#A2_17,10,8,13,1,192.168.200.221,0,63
1#A2_18,10,8,13,1,192.168.200.221,0,62
1#A2_19,10,8,13,1,192.168.200.221,0,61
1#A2_20,10,8,13,1,192.168.200.221,0,60
1#A2_21,10,8,13,1,192.168.200.221,0,59
1#A2_22,10,8,13,1,192.168.200.221,0,58
1#A2_23,10,8,13,1,192.168.200.221,0,57
1#A2_24,10,8,13,1,192.168.200.221,0,56
1#A2_25,10,8,13,1,192.168.200.221,0,55
1#A2_26,10,8,13,1,192.168.200.221,0,54
1#A2_27,10,8,13,1,192.168.200.221,0,53
1#A2_28,10,8,13,1,192.168.200.221,0,52
1#A2_29,10,8,13,1,192.168.200.221,0,51
1#A2_30,10,8,13,1,192.168.200.221,0,50
1#A2_31,10,8,13,1,192.168.200.221,0,49
1#A2_32,10,8,13,1,192.168.200.221,0,48
1#A2_33,10,8,13,1,192.168.200.221,0,47
1#A2_34,10,8,13,1,192.168.200.221,0,46
1#A2_35,10,8,13,1,192.168.200.221,0,45
1#A2_36,10,8,13,1,192.168.200.221,0,44
1#A2_37,10,8,13,1,192.168.200.221,0,43
1#A2_38,10,8,13,1,192.168.200.221,0,42
1#A2_39,10,8,13,1,192.168.200.221,0,41
1#A2_40,10,8,13,1,192.168.200.221,0,40
,,,,,,,
1#A3_1,10,8,15,1,192.168.200.221,0,80
1#A3_2,10,8,15,1,192.168.200.221,0,81
1#A3_3,10,8,15,1,192.168.200.221,0,82
1#A3_4,10,8,15,1,192.168.200.221,0,83
1#A3_5,10,8,15,1,192.168.200.221,0,84
1#A3_6,10,8,15,1,192.168.200.221,0,85
1#A3_7,10,8,15,1,192.168.200.221,0,86
1#A3_8,10,8,15,1,192.168.200.221,0,87
1#A3_9,10,8,15,1,192.168.200.221,0,88
1#A3_10,10,8,15,1,192.168.200.221,0,89
1#A3_11,10,8,15,1,192.168.200.221,0,90
1#A3_12,10,8,15,1,192.168.200.221,0,91
1#A3_13,10,8,15,1,192.168.200.221,0,92
1#A3_14,10,8,15,1,192.168.200.221,0,93
1#A3_15,10,8,15,1,192.168.200.221,0,94
1#A3_16,10,8,15,1,192.168.200.221,0,95
1#A3_17,10,8,15,1,192.168.200.221,0,96
1#A3_18,10,8,15,1,192.168.200.221,0,97
1#A3_19,10,8,15,1,192.168.200.221,0,98
1#A3_20,10,8,15,1,192.168.200.221,0,99
1#A3_21,10,8,15,1,192.168.200.221,0,100
1#A3_22,10,8,15,1,192.168.200.221,0,101
1#A3_23,10,8,15,1,192.168.200.221,0,102
1#A3_24,10,8,15,1,192.168.200.221,0,103
1#A3_25,10,8,15,1,192.168.200.221,0,104
1#A3_26,10,8,15,1,192.168.200.221,0,105
1#A3_27,10,8,15,1,192.168.200.221,0,106
1#A3_28,10,8,15,1,192.168.200.221,0,107
1#A3_29,10,8,15,1,192.168.200.221,0,108
1#A3_30,10,8,15,1,192.168.200.221,0,109
1#A3_31,10,8,15,1,192.168.200.221,0,110
1#A3_32,10,8,15,1,192.168.200.221,0,111
1#A3_33,10,8,15,1,192.168.200.221,0,112
1#A3_34,10,8,15,1,192.168.200.221,0,113
1#A3_35,10,8,15,1,192.168.200.221,0,114
1#A3_36,10,8,15,1,192.168.200.221,0,115
1#A3_37,10,8,15,1,192.168.200.221,0,116
1#A3_38,10,8,15,1,192.168.200.221,0,117
1#A3_39,10,8,15,1,192.168.200.221,0,118
1#A3_40,10,8,15,1,192.168.200.221,0,119
位置,优先级,高度,宽度,料仓ID,设备IP,区域ID,灯索引
1#B1_1,10,8,7,1,192.168.200.222,0,0
1#B1_2,10,8,7,1,192.168.200.222,0,1
1#B1_3,10,8,7,1,192.168.200.222,0,2
1#B1_4,10,8,7,1,192.168.200.222,0,3
1#B1_5,10,8,7,1,192.168.200.222,0,4
1#B1_6,10,8,7,1,192.168.200.222,0,5
1#B1_7,10,8,7,1,192.168.200.222,0,6
1#B1_8,10,8,7,1,192.168.200.222,0,7
1#B1_9,10,8,7,1,192.168.200.222,0,8
1#B1_10,10,8,7,1,192.168.200.222,0,9
1#B1_11,10,8,7,1,192.168.200.222,0,10
1#B1_12,10,8,7,1,192.168.200.222,0,11
1#B1_13,10,8,7,1,192.168.200.222,0,12
1#B1_14,10,8,7,1,192.168.200.222,0,13
1#B1_15,10,8,7,1,192.168.200.222,0,14
1#B1_16,10,8,7,1,192.168.200.222,0,15
1#B1_17,10,8,7,1,192.168.200.222,0,16
1#B1_18,10,8,7,1,192.168.200.222,0,17
1#B1_19,10,8,7,1,192.168.200.222,0,18
1#B1_20,10,8,7,1,192.168.200.222,0,19
1#B1_21,10,8,7,1,192.168.200.222,0,20
1#B1_22,10,8,7,1,192.168.200.222,0,21
1#B1_23,10,8,7,1,192.168.200.222,0,22
1#B1_24,10,8,7,1,192.168.200.222,0,23
1#B1_25,10,8,7,1,192.168.200.222,0,24
1#B1_26,10,8,7,1,192.168.200.222,0,25
1#B1_27,10,8,7,1,192.168.200.222,0,26
1#B1_28,10,8,7,1,192.168.200.222,0,27
1#B1_29,10,8,7,1,192.168.200.222,0,28
1#B1_30,10,8,7,1,192.168.200.222,0,29
1#B1_31,10,8,7,1,192.168.200.222,0,30
1#B1_32,10,8,7,1,192.168.200.222,0,31
1#B1_33,10,8,7,1,192.168.200.222,0,32
1#B1_34,10,8,7,1,192.168.200.222,0,33
1#B1_35,10,8,7,1,192.168.200.222,0,34
1#B1_36,10,8,7,1,192.168.200.222,0,35
1#B1_37,10,8,7,1,192.168.200.222,0,36
1#B1_38,10,8,7,1,192.168.200.222,0,37
1#B1_39,10,8,7,1,192.168.200.222,0,38
1#B1_40,10,8,7,1,192.168.200.222,0,39
,,,,,,,
1#B2_1,10,8,13,1,192.168.200.222,0,79
1#B2_2,10,8,13,1,192.168.200.222,0,78
1#B2_3,10,8,13,1,192.168.200.222,0,77
1#B2_4,10,8,13,1,192.168.200.222,0,76
1#B2_5,10,8,13,1,192.168.200.222,0,75
1#B2_6,10,8,13,1,192.168.200.222,0,74
1#B2_7,10,8,13,1,192.168.200.222,0,73
1#B2_8,10,8,13,1,192.168.200.222,0,72
1#B2_9,10,8,13,1,192.168.200.222,0,71
1#B2_10,10,8,13,1,192.168.200.222,0,70
1#B2_11,10,8,13,1,192.168.200.222,0,69
1#B2_12,10,8,13,1,192.168.200.222,0,68
1#B2_13,10,8,13,1,192.168.200.222,0,67
1#B2_14,10,8,13,1,192.168.200.222,0,66
1#B2_15,10,8,13,1,192.168.200.222,0,65
1#B2_16,10,8,13,1,192.168.200.222,0,64
1#B2_17,10,8,13,1,192.168.200.222,0,63
1#B2_18,10,8,13,1,192.168.200.222,0,62
1#B2_19,10,8,13,1,192.168.200.222,0,61
1#B2_20,10,8,13,1,192.168.200.222,0,60
1#B2_21,10,8,13,1,192.168.200.222,0,59
1#B2_22,10,8,13,1,192.168.200.222,0,58
1#B2_23,10,8,13,1,192.168.200.222,0,57
1#B2_24,10,8,13,1,192.168.200.222,0,56
1#B2_25,10,8,13,1,192.168.200.222,0,55
1#B2_26,10,8,13,1,192.168.200.222,0,54
1#B2_27,10,8,13,1,192.168.200.222,0,53
1#B2_28,10,8,13,1,192.168.200.222,0,52
1#B2_29,10,8,13,1,192.168.200.222,0,51
1#B2_30,10,8,13,1,192.168.200.222,0,50
1#B2_31,10,8,13,1,192.168.200.222,0,49
1#B2_32,10,8,13,1,192.168.200.222,0,48
1#B2_33,10,8,13,1,192.168.200.222,0,47
1#B2_34,10,8,13,1,192.168.200.222,0,46
1#B2_35,10,8,13,1,192.168.200.222,0,45
1#B2_36,10,8,13,1,192.168.200.222,0,44
1#B2_37,10,8,13,1,192.168.200.222,0,43
1#B2_38,10,8,13,1,192.168.200.222,0,42
1#B2_39,10,8,13,1,192.168.200.222,0,41
1#B2_40,10,8,13,1,192.168.200.222,0,40
,,,,,,,
1#B3_1,10,8,15,1,192.168.200.222,0,80
1#B3_2,10,8,15,1,192.168.200.222,0,81
1#B3_3,10,8,15,1,192.168.200.222,0,82
1#B3_4,10,8,15,1,192.168.200.222,0,83
1#B3_5,10,8,15,1,192.168.200.222,0,84
1#B3_6,10,8,15,1,192.168.200.222,0,85
1#B3_7,10,8,15,1,192.168.200.222,0,86
1#B3_8,10,8,15,1,192.168.200.222,0,87
1#B3_9,10,8,15,1,192.168.200.222,0,88
1#B3_10,10,8,15,1,192.168.200.222,0,89
1#B3_11,10,8,15,1,192.168.200.222,0,90
1#B3_12,10,8,15,1,192.168.200.222,0,91
1#B3_13,10,8,15,1,192.168.200.222,0,92
1#B3_14,10,8,15,1,192.168.200.222,0,93
1#B3_15,10,8,15,1,192.168.200.222,0,94
1#B3_16,10,8,15,1,192.168.200.222,0,95
1#B3_17,10,8,15,1,192.168.200.222,0,96
1#B3_18,10,8,15,1,192.168.200.222,0,97
1#B3_19,10,8,15,1,192.168.200.222,0,98
1#B3_20,10,8,15,1,192.168.200.222,0,99
1#B3_21,10,8,15,1,192.168.200.222,0,100
1#B3_22,10,8,15,1,192.168.200.222,0,101
1#B3_23,10,8,15,1,192.168.200.222,0,102
1#B3_24,10,8,15,1,192.168.200.222,0,103
1#B3_25,10,8,15,1,192.168.200.222,0,104
1#B3_26,10,8,15,1,192.168.200.222,0,105
1#B3_27,10,8,15,1,192.168.200.222,0,106
1#B3_28,10,8,15,1,192.168.200.222,0,107
1#B3_29,10,8,15,1,192.168.200.222,0,108
1#B3_30,10,8,15,1,192.168.200.222,0,109
1#B3_31,10,8,15,1,192.168.200.222,0,110
1#B3_32,10,8,15,1,192.168.200.222,0,111
1#B3_33,10,8,15,1,192.168.200.222,0,112
1#B3_34,10,8,15,1,192.168.200.222,0,113
1#B3_35,10,8,15,1,192.168.200.222,0,114
1#B3_36,10,8,15,1,192.168.200.222,0,115
1#B3_37,10,8,15,1,192.168.200.222,0,116
1#B3_38,10,8,15,1,192.168.200.222,0,117
1#B3_39,10,8,15,1,192.168.200.222,0,118
1#B3_40,10,8,15,1,192.168.200.222,0,119
λÖÃ,ÓÅÏȼ¶,¸ß¶È,¿í¶È,ÁϲÖID,É豸IP,ÇøÓòID,µÆË÷Òý
3#E1_1,10,16,13,3,192.168.201.223,0,0;1
3#E1_2,10,16,13,3,192.168.201.223,0,2;3
3#E1_3,10,16,13,3,192.168.201.223,0,4;5
3#E1_4,10,16,13,3,192.168.201.223,0,6;7
3#E1_5,10,16,13,3,192.168.201.223,0,8;9
3#E1_6,10,16,13,3,192.168.201.223,0,10;11
3#E1_7,10,16,13,3,192.168.201.223,0,12;13
3#E1_8,10,16,13,3,192.168.201.223,0,14;15
3#E1_9,10,16,13,3,192.168.201.223,0,16;17
3#E1_10,10,16,13,3,192.168.201.223,0,18;19
3#E1_11,10,16,13,3,192.168.201.223,0,20;21
3#E1_12,10,16,13,3,192.168.201.223,0,22;23
3#E1_13,10,16,13,3,192.168.201.223,0,24;25
3#E1_14,10,16,13,3,192.168.201.223,0,26;27
3#E1_15,10,16,13,3,192.168.201.223,0,28;29
3#E1_16,10,16,13,3,192.168.201.223,0,30;31
3#E1_17,10,16,13,3,192.168.201.223,0,32;33
3#E1_18,10,16,13,3,192.168.201.223,0,34;35
3#E1_19,10,16,13,3,192.168.201.223,0,36;37
3#E1_20,10,16,13,3,192.168.201.223,0,38;39
3#E1_21,10,16,13,3,192.168.201.223,0,40;41
3#E1_22,10,16,13,3,192.168.201.223,0,42;43
3#E1_23,10,16,13,3,192.168.201.223,0,44;45
3#E1_24,10,16,13,3,192.168.201.223,0,46;47
3#E1_25,10,16,13,3,192.168.201.223,0,48;49
3#E1_26,10,16,13,3,192.168.201.223,0,50;51
3#E1_27,10,16,13,3,192.168.201.223,0,52;53
3#E1_28,10,16,13,3,192.168.201.223,0,54;55
3#E1_29,10,16,13,3,192.168.201.223,0,56;57
3#E1_30,10,16,13,3,192.168.201.223,0,58;59
3#E1_31,10,16,13,3,192.168.201.223,0,60;61
3#E1_32,10,16,13,3,192.168.201.223,0,62;63
3#E1_33,10,16,13,3,192.168.201.223,0,64;65
3#E1_34,10,16,13,3,192.168.201.223,0,66;67
3#E1_35,10,16,13,3,192.168.201.223,0,68;69
3#E1_36,10,16,13,3,192.168.201.223,0,70;71
3#E1_37,10,16,13,3,192.168.201.223,0,72;73
3#E1_38,10,16,13,3,192.168.201.223,0,74;75
3#E1_39,10,16,13,3,192.168.201.223,0,76;77
3#E1_40,10,16,13,3,192.168.201.223,0,78;79
3#E1_41,10,16,13,3,192.168.201.223,0,80;81
3#E1_42,10,16,13,3,192.168.201.223,0,82;83
3#E1_43,10,16,13,3,192.168.201.223,0,84;85
3#E1_44,10,16,13,3,192.168.201.223,0,86;87
3#E1_45,10,16,13,3,192.168.201.223,0,88;89
3#E1_46,10,16,13,3,192.168.201.223,0,90;91
3#E1_47,10,16,13,3,192.168.201.223,0,92;93
3#E1_48,10,16,13,3,192.168.201.223,0,94;95
3#E1_49,10,16,13,3,192.168.201.223,0,96;97
3#E1_50,10,16,13,3,192.168.201.223,0,98;99
,,,,,,,
3#E2_1,10,16,13,3,192.168.201.223,0,199;198
3#E2_2,10,16,13,3,192.168.201.223,0,197;196
3#E2_3,10,16,13,3,192.168.201.223,0,195;194
3#E2_4,10,16,13,3,192.168.201.223,0,193;192
3#E2_5,10,16,13,3,192.168.201.223,0,191;190
3#E2_6,10,16,13,3,192.168.201.223,0,189;188
3#E2_7,10,16,13,3,192.168.201.223,0,187;186
3#E2_8,10,16,13,3,192.168.201.223,0,185;184
3#E2_9,10,16,13,3,192.168.201.223,0,183;182
3#E2_10,10,16,13,3,192.168.201.223,0,181;180
3#E2_11,10,16,13,3,192.168.201.223,0,179;178
3#E2_12,10,16,13,3,192.168.201.223,0,177;176
3#E2_13,10,16,13,3,192.168.201.223,0,175;174
3#E2_14,10,16,13,3,192.168.201.223,0,173;172
3#E2_15,10,16,13,3,192.168.201.223,0,171;170
3#E2_16,10,16,13,3,192.168.201.223,0,169;168
3#E2_17,10,16,13,3,192.168.201.223,0,167;166
3#E2_18,10,16,13,3,192.168.201.223,0,165;164
3#E2_19,10,16,13,3,192.168.201.223,0,163;162
3#E2_20,10,16,13,3,192.168.201.223,0,161;160
3#E2_21,10,16,13,3,192.168.201.223,0,159;158
3#E2_22,10,16,13,3,192.168.201.223,0,157;156
3#E2_23,10,16,13,3,192.168.201.223,0,155;154
3#E2_24,10,16,13,3,192.168.201.223,0,153;152
3#E2_25,10,16,13,3,192.168.201.223,0,151;150
3#E2_26,10,16,13,3,192.168.201.223,0,149;148
3#E2_27,10,16,13,3,192.168.201.223,0,147;146
3#E2_28,10,16,13,3,192.168.201.223,0,145;144
3#E2_29,10,16,13,3,192.168.201.223,0,143;142
3#E2_30,10,16,13,3,192.168.201.223,0,141;140
3#E2_31,10,16,13,3,192.168.201.223,0,139;138
3#E2_32,10,16,13,3,192.168.201.223,0,137;136
3#E2_33,10,16,13,3,192.168.201.223,0,135;134
3#E2_34,10,16,13,3,192.168.201.223,0,133;132
3#E2_35,10,16,13,3,192.168.201.223,0,131;130
3#E2_36,10,16,13,3,192.168.201.223,0,129;128
3#E2_37,10,16,13,3,192.168.201.223,0,127;126
3#E2_38,10,16,13,3,192.168.201.223,0,125;124
3#E2_39,10,16,13,3,192.168.201.223,0,123;122
3#E2_40,10,16,13,3,192.168.201.223,0,121;120
3#E2_41,10,16,13,3,192.168.201.223,0,119;118
3#E2_42,10,16,13,3,192.168.201.223,0,117;116
3#E2_43,10,16,13,3,192.168.201.223,0,115;114
3#E2_44,10,16,13,3,192.168.201.223,0,113;112
3#E2_45,10,16,13,3,192.168.201.223,0,111;110
3#E2_46,10,16,13,3,192.168.201.223,0,109;108
3#E2_47,10,16,13,3,192.168.201.223,0,107;106
3#E2_48,10,16,13,3,192.168.201.223,0,105;104
3#E2_49,10,16,13,3,192.168.201.223,0,103;102
3#E2_50,10,16,13,3,192.168.201.223,0,101;100
,,,,,,,
3#E3_1,10,16,13,3,192.168.201.223,0,200;201
3#E3_2,10,16,13,3,192.168.201.223,0,202;203
3#E3_3,10,16,13,3,192.168.201.223,0,204;205
3#E3_4,10,16,13,3,192.168.201.223,0,206;207
3#E3_5,10,16,13,3,192.168.201.223,0,208;209
3#E3_6,10,16,13,3,192.168.201.223,0,210;211
3#E3_7,10,16,13,3,192.168.201.223,0,212;213
3#E3_8,10,16,13,3,192.168.201.223,0,214;215
3#E3_9,10,16,13,3,192.168.201.223,0,216;217
3#E3_10,10,16,13,3,192.168.201.223,0,218;219
3#E3_11,10,16,13,3,192.168.201.223,0,220;221
3#E3_12,10,16,13,3,192.168.201.223,0,222;223
3#E3_13,10,16,13,3,192.168.201.223,0,224;225
3#E3_14,10,16,13,3,192.168.201.223,0,226;227
3#E3_15,10,16,13,3,192.168.201.223,0,228;229
3#E3_16,10,16,13,3,192.168.201.223,0,230;231
3#E3_17,10,16,13,3,192.168.201.223,0,232;233
3#E3_18,10,16,13,3,192.168.201.223,0,234;235
3#E3_19,10,16,13,3,192.168.201.223,0,236;237
3#E3_20,10,16,13,3,192.168.201.223,0,238;239
3#E3_21,10,16,13,3,192.168.201.223,0,240;241
3#E3_22,10,16,13,3,192.168.201.223,0,242;243
3#E3_23,10,16,13,3,192.168.201.223,0,244;245
3#E3_24,10,16,13,3,192.168.201.223,0,246;247
3#E3_25,10,16,13,3,192.168.201.223,0,248;249
3#E3_26,10,16,13,3,192.168.201.223,0,250;251
3#E3_27,10,16,13,3,192.168.201.223,0,252;253
3#E3_28,10,16,13,3,192.168.201.223,0,254;255
3#E3_29,10,16,13,3,192.168.201.223,0,256;257
3#E3_30,10,16,13,3,192.168.201.223,0,258;259
3#E3_31,10,16,13,3,192.168.201.223,0,260;261
3#E3_32,10,16,13,3,192.168.201.223,0,262;263
3#E3_33,10,16,13,3,192.168.201.223,0,264;265
3#E3_34,10,16,13,3,192.168.201.223,0,266;267
3#E3_35,10,16,13,3,192.168.201.223,0,268;269
3#E3_36,10,16,13,3,192.168.201.223,0,270;271
3#E3_37,10,16,13,3,192.168.201.223,0,272;273
3#E3_38,10,16,13,3,192.168.201.223,0,274;275
3#E3_39,10,16,13,3,192.168.201.223,0,276;277
3#E3_40,10,16,13,3,192.168.201.223,0,278;279
3#E3_41,10,16,13,3,192.168.201.223,0,280;281
3#E3_42,10,16,13,3,192.168.201.223,0,282;283
3#E3_43,10,16,13,3,192.168.201.223,0,284;285
3#E3_44,10,16,13,3,192.168.201.223,0,286;287
3#E3_45,10,16,13,3,192.168.201.223,0,288;289
3#E3_46,10,16,13,3,192.168.201.223,0,290;291
3#E3_47,10,16,13,3,192.168.201.223,0,292;293
3#E3_48,10,16,13,3,192.168.201.223,0,294;295
3#E3_49,10,16,13,3,192.168.201.223,0,296;297
3#E3_50,10,16,13,3,192.168.201.223,0,298;299
,,,,,,,
3#E4_1,10,24,13,3,192.168.201.223,0,399;398;397
3#E4_2,10,24,13,3,192.168.201.223,0,396;395;394
3#E4_3,10,24,13,3,192.168.201.223,0,393;392;391
3#E4_4,10,24,13,3,192.168.201.223,0,390;389;388
3#E4_5,10,24,13,3,192.168.201.223,0,387;386;385
3#E4_6,10,24,13,3,192.168.201.223,0,384;383;382
3#E4_7,10,24,13,3,192.168.201.223,0,381;380;379
3#E4_8,10,24,13,3,192.168.201.223,0,378;377;376
3#E4_9,10,24,13,3,192.168.201.223,0,375;374;373
3#E4_10,10,24,13,3,192.168.201.223,0,372;371;370
3#E4_11,10,24,13,3,192.168.201.223,0,369;368;367
3#E4_12,10,24,13,3,192.168.201.223,0,366;365;364
3#E4_13,10,24,13,3,192.168.201.223,0,363;362;361
3#E4_14,10,24,13,3,192.168.201.223,0,360;359;358
3#E4_15,10,24,13,3,192.168.201.223,0,357;356;355
3#E4_16,10,24,13,3,192.168.201.223,0,354;353;352
3#E4_17,10,24,13,3,192.168.201.223,0,351;350;349
3#E4_18,10,24,13,3,192.168.201.223,0,348;347;346
3#E4_19,10,24,13,3,192.168.201.223,0,345;344;343
3#E4_20,10,24,13,3,192.168.201.223,0,342;341;340
3#E4_21,10,24,13,3,192.168.201.223,0,339;338;337
3#E4_22,10,24,13,3,192.168.201.223,0,336;335;334
3#E4_23,10,24,13,3,192.168.201.223,0,333;332;331
3#E4_24,10,24,13,3,192.168.201.223,0,330;329;328
3#E4_25,10,24,13,3,192.168.201.223,0,327;326;325
3#E4_26,10,24,13,3,192.168.201.223,0,324;323;322
3#E4_27,10,24,13,3,192.168.201.223,0,321;320;319
3#E4_28,10,24,13,3,192.168.201.223,0,318;317;316
3#E4_29,10,24,13,3,192.168.201.223,0,315;314;313
3#E4_30,10,24,13,3,192.168.201.223,0,312;311;310
3#E4_31,10,24,13,3,192.168.201.223,0,309;308;307
3#E4_32,10,24,13,3,192.168.201.223,0,306;305;304
3#E4_33,10,24,13,3,192.168.201.223,0,303;302;301
,,,,,,,
3#E5_1,10,24,13,3,192.168.201.223,0,400;401;402
3#E5_2,10,24,13,3,192.168.201.223,0,403;404;405
3#E5_3,10,24,13,3,192.168.201.223,0,406;407;408
3#E5_4,10,24,13,3,192.168.201.223,0,409;410;411
3#E5_5,10,24,13,3,192.168.201.223,0,412;413;414
3#E5_6,10,24,13,3,192.168.201.223,0,415;416;417
3#E5_7,10,24,13,3,192.168.201.223,0,418;419;420
3#E5_8,10,24,13,3,192.168.201.223,0,421;422;423
3#E5_9,10,24,13,3,192.168.201.223,0,424;425;426
3#E5_10,10,24,13,3,192.168.201.223,0,427;428;429
3#E5_11,10,24,13,3,192.168.201.223,0,430;431;432
3#E5_12,10,24,13,3,192.168.201.223,0,433;434;435
3#E5_13,10,24,13,3,192.168.201.223,0,436;437;438
3#E5_14,10,24,13,3,192.168.201.223,0,439;440;441
3#E5_15,10,24,13,3,192.168.201.223,0,442;443;444
3#E5_16,10,24,13,3,192.168.201.223,0,445;446;447
3#E5_17,10,24,13,3,192.168.201.223,0,448;449;450
3#E5_18,10,24,13,3,192.168.201.223,0,451;452;453
3#E5_19,10,24,13,3,192.168.201.223,0,454;455;456
3#E5_20,10,24,13,3,192.168.201.223,0,457;458;459
3#E5_21,10,24,13,3,192.168.201.223,0,460;461;462
3#E5_22,10,24,13,3,192.168.201.223,0,463;464;465
3#E5_23,10,24,13,3,192.168.201.223,0,466;467;468
3#E5_24,10,24,13,3,192.168.201.223,0,469;470;471
3#E5_25,10,24,13,3,192.168.201.223,0,472;473;474
3#E5_26,10,24,13,3,192.168.201.223,0,475;476;477
3#E5_27,10,24,13,3,192.168.201.223,0,478;479;480
3#E5_28,10,24,13,3,192.168.201.223,0,481;482;483
3#E5_29,10,24,13,3,192.168.201.223,0,484;485;486
3#E5_30,10,24,13,3,192.168.201.223,0,487;488;489
3#E5_31,10,24,13,3,192.168.201.223,0,490;491;492
3#E5_32,10,24,13,3,192.168.201.223,0,493;494;495
3#E5_33,10,24,13,3,192.168.201.223,0,496;497;498
λÖÃ,ÓÅÏȼ¶,¸ß¶È,¿í¶È,ÁϲÖID,É豸IP,ÇøÓòID,µÆË÷Òý
1#A1_1,10,8,7,1,192.168.200.222,0,0
1#A1_2,10,8,7,1,192.168.200.222,0,1
1#A1_3,10,8,7,1,192.168.200.222,0,2
1#A1_4,10,8,7,1,192.168.200.222,0,3
1#A1_5,10,8,7,1,192.168.200.222,0,4
1#A1_6,10,8,7,1,192.168.200.222,0,5
1#A1_7,10,8,7,1,192.168.200.222,0,6
1#A1_8,10,8,7,1,192.168.200.222,0,7
1#A1_9,10,8,7,1,192.168.200.222,0,8
1#A1_10,10,8,7,1,192.168.200.222,0,9
1#A1_11,10,8,7,1,192.168.200.222,0,10
1#A1_12,10,8,7,1,192.168.200.222,0,11
1#A1_13,10,8,7,1,192.168.200.222,0,12
1#A1_14,10,8,7,1,192.168.200.222,0,13
1#A1_15,10,8,7,1,192.168.200.222,0,14
1#A1_16,10,8,7,1,192.168.200.222,0,15
1#A1_17,10,8,7,1,192.168.200.222,0,16
1#A1_18,10,8,7,1,192.168.200.222,0,17
1#A1_19,10,8,7,1,192.168.200.222,0,18
1#A1_20,10,8,7,1,192.168.200.222,0,19
1#A1_21,10,8,7,1,192.168.200.222,0,20
1#A1_22,10,8,7,1,192.168.200.222,0,21
1#A1_23,10,8,7,1,192.168.200.222,0,22
1#A1_24,10,8,7,1,192.168.200.222,0,23
1#A1_25,10,8,7,1,192.168.200.222,0,24
1#A1_26,10,8,7,1,192.168.200.222,0,25
1#A1_27,10,8,7,1,192.168.200.222,0,26
1#A1_28,10,8,7,1,192.168.200.222,0,27
1#A1_29,10,8,7,1,192.168.200.222,0,28
1#A1_30,10,8,7,1,192.168.200.222,0,29
1#A1_31,10,8,7,1,192.168.200.222,0,30
1#A1_32,10,8,7,1,192.168.200.222,0,31
1#A1_33,10,8,7,1,192.168.200.222,0,32
1#A1_34,10,8,7,1,192.168.200.222,0,33
1#A1_35,10,8,7,1,192.168.200.222,0,34
1#A1_36,10,8,7,1,192.168.200.222,0,35
1#A1_37,10,8,7,1,192.168.200.222,0,36
1#A1_38,10,8,7,1,192.168.200.222,0,37
1#A1_39,10,8,7,1,192.168.200.222,0,38
1#A1_40,10,8,7,1,192.168.200.222,0,39
,,,,,,,
1#A2_1,10,8,13,1,192.168.200.222,0,79
1#A2_2,10,8,13,1,192.168.200.222,0,78
1#A2_3,10,8,13,1,192.168.200.222,0,77
1#A2_4,10,8,13,1,192.168.200.222,0,76
1#A2_5,10,8,13,1,192.168.200.222,0,75
1#A2_6,10,8,13,1,192.168.200.222,0,74
1#A2_7,10,8,13,1,192.168.200.222,0,73
1#A2_8,10,8,13,1,192.168.200.222,0,72
1#A2_9,10,8,13,1,192.168.200.222,0,71
1#A2_10,10,8,13,1,192.168.200.222,0,70
1#A2_11,10,8,13,1,192.168.200.222,0,69
1#A2_12,10,8,13,1,192.168.200.222,0,68
1#A2_13,10,8,13,1,192.168.200.222,0,67
1#A2_14,10,8,13,1,192.168.200.222,0,66
1#A2_15,10,8,13,1,192.168.200.222,0,65
1#A2_16,10,8,13,1,192.168.200.222,0,64
1#A2_17,10,8,13,1,192.168.200.222,0,63
1#A2_18,10,8,13,1,192.168.200.222,0,62
1#A2_19,10,8,13,1,192.168.200.222,0,61
1#A2_20,10,8,13,1,192.168.200.222,0,60
1#A2_21,10,8,13,1,192.168.200.222,0,59
1#A2_22,10,8,13,1,192.168.200.222,0,58
1#A2_23,10,8,13,1,192.168.200.222,0,57
1#A2_24,10,8,13,1,192.168.200.222,0,56
1#A2_25,10,8,13,1,192.168.200.222,0,55
1#A2_26,10,8,13,1,192.168.200.222,0,54
1#A2_27,10,8,13,1,192.168.200.222,0,53
1#A2_28,10,8,13,1,192.168.200.222,0,52
1#A2_29,10,8,13,1,192.168.200.222,0,51
1#A2_30,10,8,13,1,192.168.200.222,0,50
1#A2_31,10,8,13,1,192.168.200.222,0,49
1#A2_32,10,8,13,1,192.168.200.222,0,48
1#A2_33,10,8,13,1,192.168.200.222,0,47
1#A2_34,10,8,13,1,192.168.200.222,0,46
1#A2_35,10,8,13,1,192.168.200.222,0,45
1#A2_36,10,8,13,1,192.168.200.222,0,44
1#A2_37,10,8,13,1,192.168.200.222,0,43
1#A2_38,10,8,13,1,192.168.200.222,0,42
1#A2_39,10,8,13,1,192.168.200.222,0,41
1#A2_40,10,8,13,1,192.168.200.222,0,40
,,,,,,,
1#A3_1,10,8,15,1,192.168.200.222,0,80
1#A3_2,10,8,15,1,192.168.200.222,0,81
1#A3_3,10,8,15,1,192.168.200.222,0,82
1#A3_4,10,8,15,1,192.168.200.222,0,83
1#A3_5,10,8,15,1,192.168.200.222,0,84
1#A3_6,10,8,15,1,192.168.200.222,0,85
1#A3_7,10,8,15,1,192.168.200.222,0,86
1#A3_8,10,8,15,1,192.168.200.222,0,87
1#A3_9,10,8,15,1,192.168.200.222,0,88
1#A3_10,10,8,15,1,192.168.200.222,0,89
1#A3_11,10,8,15,1,192.168.200.222,0,90
1#A3_12,10,8,15,1,192.168.200.222,0,91
1#A3_13,10,8,15,1,192.168.200.222,0,92
1#A3_14,10,8,15,1,192.168.200.222,0,93
1#A3_15,10,8,15,1,192.168.200.222,0,94
1#A3_16,10,8,15,1,192.168.200.222,0,95
1#A3_17,10,8,15,1,192.168.200.222,0,96
1#A3_18,10,8,15,1,192.168.200.222,0,97
1#A3_19,10,8,15,1,192.168.200.222,0,98
1#A3_20,10,8,15,1,192.168.200.222,0,99
1#A3_21,10,8,15,1,192.168.200.222,0,100
1#A3_22,10,8,15,1,192.168.200.222,0,101
1#A3_23,10,8,15,1,192.168.200.222,0,102
1#A3_24,10,8,15,1,192.168.200.222,0,103
1#A3_25,10,8,15,1,192.168.200.222,0,104
1#A3_26,10,8,15,1,192.168.200.222,0,105
1#A3_27,10,8,15,1,192.168.200.222,0,106
1#A3_28,10,8,15,1,192.168.200.222,0,107
1#A3_29,10,8,15,1,192.168.200.222,0,108
1#A3_30,10,8,15,1,192.168.200.222,0,109
1#A3_31,10,8,15,1,192.168.200.222,0,110
1#A3_32,10,8,15,1,192.168.200.222,0,111
1#A3_33,10,8,15,1,192.168.200.222,0,112
1#A3_34,10,8,15,1,192.168.200.222,0,113
1#A3_35,10,8,15,1,192.168.200.222,0,114
1#A3_36,10,8,15,1,192.168.200.222,0,115
1#A3_37,10,8,15,1,192.168.200.222,0,116
1#A3_38,10,8,15,1,192.168.200.222,0,117
1#A3_39,10,8,15,1,192.168.200.222,0,118
1#A3_40,10,8,15,1,192.168.200.222,0,119
位置,优先级,高度,宽度,料仓ID,设备IP,区域ID,灯索引
1#B1_1,10,8,7,1,192.168.200.222,0,0
1#B1_2,10,8,7,1,192.168.200.222,0,1
1#B1_3,10,8,7,1,192.168.200.222,0,2
1#B1_4,10,8,7,1,192.168.200.222,0,3
1#B1_5,10,8,7,1,192.168.200.222,0,4
1#B1_6,10,8,7,1,192.168.200.222,0,5
1#B1_7,10,8,7,1,192.168.200.222,0,6
1#B1_8,10,8,7,1,192.168.200.222,0,7
1#B1_9,10,8,7,1,192.168.200.222,0,8
1#B1_10,10,8,7,1,192.168.200.222,0,9
1#B1_11,10,8,7,1,192.168.200.222,0,10
1#B1_12,10,8,7,1,192.168.200.222,0,11
1#B1_13,10,8,7,1,192.168.200.222,0,12
1#B1_14,10,8,7,1,192.168.200.222,0,13
1#B1_15,10,8,7,1,192.168.200.222,0,14
1#B1_16,10,8,7,1,192.168.200.222,0,15
1#B1_17,10,8,7,1,192.168.200.222,0,16
1#B1_18,10,8,7,1,192.168.200.222,0,17
1#B1_19,10,8,7,1,192.168.200.222,0,18
1#B1_20,10,8,7,1,192.168.200.222,0,19
1#B1_21,10,8,7,1,192.168.200.222,0,20
1#B1_22,10,8,7,1,192.168.200.222,0,21
1#B1_23,10,8,7,1,192.168.200.222,0,22
1#B1_24,10,8,7,1,192.168.200.222,0,23
1#B1_25,10,8,7,1,192.168.200.222,0,24
1#B1_26,10,8,7,1,192.168.200.222,0,25
1#B1_27,10,8,7,1,192.168.200.222,0,26
1#B1_28,10,8,7,1,192.168.200.222,0,27
1#B1_29,10,8,7,1,192.168.200.222,0,28
1#B1_30,10,8,7,1,192.168.200.222,0,29
1#B1_31,10,8,7,1,192.168.200.222,0,30
1#B1_32,10,8,7,1,192.168.200.222,0,31
1#B1_33,10,8,7,1,192.168.200.222,0,32
1#B1_34,10,8,7,1,192.168.200.222,0,33
1#B1_35,10,8,7,1,192.168.200.222,0,34
1#B1_36,10,8,7,1,192.168.200.222,0,35
1#B1_37,10,8,7,1,192.168.200.222,0,36
1#B1_38,10,8,7,1,192.168.200.222,0,37
1#B1_39,10,8,7,1,192.168.200.222,0,38
1#B1_40,10,8,7,1,192.168.200.222,0,39
,,,,,,,
1#B2_1,10,8,13,1,192.168.200.222,0,79
1#B2_2,10,8,13,1,192.168.200.222,0,78
1#B2_3,10,8,13,1,192.168.200.222,0,77
1#B2_4,10,8,13,1,192.168.200.222,0,76
1#B2_5,10,8,13,1,192.168.200.222,0,75
1#B2_6,10,8,13,1,192.168.200.222,0,74
1#B2_7,10,8,13,1,192.168.200.222,0,73
1#B2_8,10,8,13,1,192.168.200.222,0,72
1#B2_9,10,8,13,1,192.168.200.222,0,71
1#B2_10,10,8,13,1,192.168.200.222,0,70
1#B2_11,10,8,13,1,192.168.200.222,0,69
1#B2_12,10,8,13,1,192.168.200.222,0,68
1#B2_13,10,8,13,1,192.168.200.222,0,67
1#B2_14,10,8,13,1,192.168.200.222,0,66
1#B2_15,10,8,13,1,192.168.200.222,0,65
1#B2_16,10,8,13,1,192.168.200.222,0,64
1#B2_17,10,8,13,1,192.168.200.222,0,63
1#B2_18,10,8,13,1,192.168.200.222,0,62
1#B2_19,10,8,13,1,192.168.200.222,0,61
1#B2_20,10,8,13,1,192.168.200.222,0,60
1#B2_21,10,8,13,1,192.168.200.222,0,59
1#B2_22,10,8,13,1,192.168.200.222,0,58
1#B2_23,10,8,13,1,192.168.200.222,0,57
1#B2_24,10,8,13,1,192.168.200.222,0,56
1#B2_25,10,8,13,1,192.168.200.222,0,55
1#B2_26,10,8,13,1,192.168.200.222,0,54
1#B2_27,10,8,13,1,192.168.200.222,0,53
1#B2_28,10,8,13,1,192.168.200.222,0,52
1#B2_29,10,8,13,1,192.168.200.222,0,51
1#B2_30,10,8,13,1,192.168.200.222,0,50
1#B2_31,10,8,13,1,192.168.200.222,0,49
1#B2_32,10,8,13,1,192.168.200.222,0,48
1#B2_33,10,8,13,1,192.168.200.222,0,47
1#B2_34,10,8,13,1,192.168.200.222,0,46
1#B2_35,10,8,13,1,192.168.200.222,0,45
1#B2_36,10,8,13,1,192.168.200.222,0,44
1#B2_37,10,8,13,1,192.168.200.222,0,43
1#B2_38,10,8,13,1,192.168.200.222,0,42
1#B2_39,10,8,13,1,192.168.200.222,0,41
1#B2_40,10,8,13,1,192.168.200.222,0,40
,,,,,,,
1#B3_1,10,8,15,1,192.168.200.222,0,80
1#B3_2,10,8,15,1,192.168.200.222,0,81
1#B3_3,10,8,15,1,192.168.200.222,0,82
1#B3_4,10,8,15,1,192.168.200.222,0,83
1#B3_5,10,8,15,1,192.168.200.222,0,84
1#B3_6,10,8,15,1,192.168.200.222,0,85
1#B3_7,10,8,15,1,192.168.200.222,0,86
1#B3_8,10,8,15,1,192.168.200.222,0,87
1#B3_9,10,8,15,1,192.168.200.222,0,88
1#B3_10,10,8,15,1,192.168.200.222,0,89
1#B3_11,10,8,15,1,192.168.200.222,0,90
1#B3_12,10,8,15,1,192.168.200.222,0,91
1#B3_13,10,8,15,1,192.168.200.222,0,92
1#B3_14,10,8,15,1,192.168.200.222,0,93
1#B3_15,10,8,15,1,192.168.200.222,0,94
1#B3_16,10,8,15,1,192.168.200.222,0,95
1#B3_17,10,8,15,1,192.168.200.222,0,96
1#B3_18,10,8,15,1,192.168.200.222,0,97
1#B3_19,10,8,15,1,192.168.200.222,0,98
1#B3_20,10,8,15,1,192.168.200.222,0,99
1#B3_21,10,8,15,1,192.168.200.222,0,100
1#B3_22,10,8,15,1,192.168.200.222,0,101
1#B3_23,10,8,15,1,192.168.200.222,0,102
1#B3_24,10,8,15,1,192.168.200.222,0,103
1#B3_25,10,8,15,1,192.168.200.222,0,104
1#B3_26,10,8,15,1,192.168.200.222,0,105
1#B3_27,10,8,15,1,192.168.200.222,0,106
1#B3_28,10,8,15,1,192.168.200.222,0,107
1#B3_29,10,8,15,1,192.168.200.222,0,108
1#B3_30,10,8,15,1,192.168.200.222,0,109
1#B3_31,10,8,15,1,192.168.200.222,0,110
1#B3_32,10,8,15,1,192.168.200.222,0,111
1#B3_33,10,8,15,1,192.168.200.222,0,112
1#B3_34,10,8,15,1,192.168.200.222,0,113
1#B3_35,10,8,15,1,192.168.200.222,0,114
1#B3_36,10,8,15,1,192.168.200.222,0,115
1#B3_37,10,8,15,1,192.168.200.222,0,116
1#B3_38,10,8,15,1,192.168.200.222,0,117
1#B3_39,10,8,15,1,192.168.200.222,0,118
1#B3_40,10,8,15,1,192.168.200.222,0,119
...@@ -48,15 +48,12 @@ ...@@ -48,15 +48,12 @@
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Box\BOXManager.cs" />
<Compile Include="DeviceLibrary\led\BaseLedManager.cs" />
<Compile Include="DeviceLibrary\led\LEDColorArtNet.cs" />
<Compile Include="DeviceLibrary\led\LEDColorModule.cs" /> <Compile Include="DeviceLibrary\led\LEDColorModule.cs" />
<Compile Include="DeviceLibrary\led\LEDSingleModule.cs" /> <Compile Include="DeviceLibrary\led\LEDSingleModule.cs" />
<Compile Include="manager\BOXManager.cs" />
<Compile Include="DeviceLibrary\led\BaseLedManager.cs" />
<Compile Include="DeviceLibrary\led\LEDColorArtNet.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Box\ServerManager.cs">
<SubType>Code</SubType>
</Compile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Common\Common.csproj"> <ProjectReference Include="..\Common\Common.csproj">
...@@ -69,65 +66,12 @@ ...@@ -69,65 +66,12 @@
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="function.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<None Include="Config\GW\linePositions_1.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Config\GW\linePositions_2.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Config\GW\linePositions_3.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Config\GW\linePositions_4.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Config\GW\linePositions_5.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Config\GW\linePositions_6.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Config\GW\linePositions_7.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Config\linePositions_A.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Config\linePositions_B.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Config\linePositions-A.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Config\linePositions.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Config\linePositions_4.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Config\linePositions_3.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Config\linePositions_2.csv"> <None Include="Config\linePositions_2.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
<None Include="Config\linePositions_1.csv"> <None Include="Config\linePositions_1.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
<None Include="Config\StoreConfig.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Config\XBYConfig\linePositions_1.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Config\XBYConfig\linePositions_2.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup> </ItemGroup>
<ItemGroup /> <ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
......
...@@ -8,7 +8,7 @@ using System.Threading.Tasks; ...@@ -8,7 +8,7 @@ using System.Threading.Tasks;
namespace SmartShelf.DeviceLibrary namespace SmartShelf.DeviceLibrary
{ {
public class LEDManager public class LEDManager
{ {
public static Dictionary<string, LEDBaseModule> deviceMap = new Dictionary<string, LEDBaseModule>(); public static Dictionary<string, LEDBaseModule> deviceMap = new Dictionary<string, LEDBaseModule>();
public static byte DefaultLight = 100; public static byte DefaultLight = 100;
...@@ -35,172 +35,80 @@ namespace SmartShelf.DeviceLibrary ...@@ -35,172 +35,80 @@ namespace SmartShelf.DeviceLibrary
/// </summary> /// </summary>
public static int CurrLedStatus = -1; public static int CurrLedStatus = -1;
private static int StatusLedDmx = 3; private static int StatusLedDmx = 0;
/// <summary> /// <summary>
/// 打开状态灯 /// 打开状态灯
/// </summary> /// </summary>
public static void OpenStatusLights(string color="green") public static void OpenStatusLights(string color = "green")
{ {
if ("green" == color) CloseStatusLights("");
{ foreach (LEDBaseModule module in deviceMap.Values)
CurrLedStatus = 1;
}
else if ("yellow" == color)
{
CurrLedStatus = 2;
}
if (DeviceLedType.Equals(1))
{ {
if (string.IsNullOrEmpty(color))
{
return;
}
var lights = GetStatusLights(color, out string ip);
if (!string.IsNullOrEmpty(ip))
{
GetLedModule(ip).LightOn(lights.ToArray());
}
}
else
{
CloseStatusLights("");
foreach (LEDBaseModule module in deviceMap.Values) List<Light> sLed = new List<Light>();
for (int index = 0; index <= module.Max_Light; index++)
{ {
if (module is LEDSingleModule) if ("green" == color)
{ {
List<int> list = new List<int>(); CurrLedStatus = 1;
if ("green" == color) sLed.Add(Light.GreenLight(StatusLedDmx, index));
{
for (int i = 2; i < LEDSingleModule.LIGHT_COUNT_PER_DMX; i += 3)
{
list.Add(i);
}
}
else if ("yellow" == color)
{
for (int i = 2; i < LEDSingleModule.LIGHT_COUNT_PER_DMX; i += 3)
{
list.Add(i - 2);
list.Add(i);
}
}
module.OnlyLightOn(Light.GetLights(StatusLedDmx, list, 200));
} }
} else if ("yellow" == color)
}
}
/// <summary>
/// 关闭状态灯
/// </summary>
/// <param name="color"></param>
public static void CloseStatusLights(string color="")
{
if (DeviceLedType.Equals(1))
{
if (string.IsNullOrEmpty(color))
{
return;
}
var lights = GetStatusLights(color, out string ip);
var indexArr = from o in lights select o.index;
if (!string.IsNullOrEmpty(ip))
{
LEDManager.GetLedModule(ip).LightOff(-1, indexArr.ToArray());
}
}
else
{
CurrLedStatus = 0;
foreach (LEDBaseModule module in deviceMap.Values)
{
if (module is LEDSingleModule)
{ {
module.AllLightOff(StatusLedDmx); CurrLedStatus = 2;
sLed.Add(Light.YellowLight(StatusLedDmx, index));
} }
} }
module.LightOn(sLed.ToArray());
} }
} }
/// <summary> /// <summary>
/// 获取状态灯配置(192.168.100.100:1,3,23) /// 关闭状态灯
/// </summary> /// </summary>
/// <param name="color"></param> /// <param name="color"></param>
/// <param name="ip"></param> public static void CloseStatusLights(string color = "")
/// <returns></returns>
private static List<Light> GetStatusLights(string color, out string ip)
{ {
List<Light> lights = new List<Light>(); CurrLedStatus = 0;
string lightStrs = ""; foreach (LEDBaseModule module in deviceMap.Values)
color = color.ToLower();
if ("green" == color)
{ {
lightStrs = ConfigAppSettings.GetValue(Setting_Init.Status_Green_Lights); module.AllLightOff(StatusLedDmx);
} }
else if ("yellow" == color)
{
lightStrs = ConfigAppSettings.GetValue(Setting_Init.Status_Yellow_Lights);
}
else if ("red" == color)
{
lightStrs = ConfigAppSettings.GetValue(Setting_Init.Status_Red_Lights);
}else if (String.IsNullOrEmpty(color))
{
lightStrs = ConfigAppSettings.GetValue(Setting_Init.Status_Green_Lights)+"," +
ConfigAppSettings.GetValue(Setting_Init.Status_Yellow_Lights) + "," +
ConfigAppSettings.GetValue(Setting_Init.Status_Red_Lights) ;
}
ip = "";
if (!String.IsNullOrEmpty(lightStrs))
{
string[] infos = lightStrs.Split(':');
ip = infos[0];
string[] lightArr = infos[1].Split(',');
foreach (var indexStr in lightArr)
{
int.TryParse(indexStr, out int index);
Light light = Light.GetLight(-1, index, color, 255);
lights.Add(light);
}
}
return lights;
} }
} }
public abstract class LEDBaseModule public abstract class LEDBaseModule
{ {
protected IPEndPoint iep = null;
protected ushort Max_DMX = 16;
public int Max_Light = 170;
protected IPEndPoint iep = null;
public string ModuleIP = ""; public string ModuleIP = "";
public static LEDBaseModule GetModule(string ip) public static LEDBaseModule GetModule(string ip)
{ {
if (LEDManager.DeviceLedType.Equals(1)) //if (LEDManager.DeviceLedType.Equals(1))
{ //{
LEDColorModule module = new LEDColorModule(ip); // LEDColorModule module = new LEDColorModule(ip);
return module; // return module;
} //}
else if (LEDManager.DeviceLedType.Equals(2)) //else if (LEDManager.DeviceLedType.Equals(2))
{ //{
LEDColorArtNet module = new LEDColorArtNet(ip); LEDColorArtNet module = new LEDColorArtNet(ip);
return module; return module;
} //}
else //else
{ //{
LEDSingleModule module = new LEDSingleModule(ip); // LEDSingleModule module = new LEDSingleModule(ip);
return module; // return module;
} //}
} }
internal LEDBaseModule(string ip) internal LEDBaseModule(string ip)
{ {
ModuleIP = ip; ModuleIP = ip;
// iep = new IPEndPoint(IPAddress.Parse(ip), 6858);
// AllLightOff();
} }
...@@ -251,13 +159,13 @@ namespace SmartShelf.DeviceLibrary ...@@ -251,13 +159,13 @@ namespace SmartShelf.DeviceLibrary
public static byte defaultB = 0; public static byte defaultB = 0;
public static Light DefaultLight(int dmxId, int index) public static Light DefaultLight(int dmxId, int index)
{ {
return new Light(dmxId, index, defaultR, defaultG, defaultB,200); return new Light(dmxId, index, defaultR, defaultG, defaultB, 200);
} }
public static Light GetLight(int dmxId,int index, string color="green") public static Light GetLight(int dmxId, int index, string color = "green")
{ {
return GetLight(dmxId, index, color, 50); return GetLight(dmxId, index, color, 50);
} }
public static Light[] GetLights(int dmxId,string color, params int[] indexes) public static Light[] GetLights(int dmxId, string color, params int[] indexes)
{ {
List<Light> lights = new List<Light>(); List<Light> lights = new List<Light>();
foreach (int index in indexes) foreach (int index in indexes)
...@@ -283,21 +191,21 @@ namespace SmartShelf.DeviceLibrary ...@@ -283,21 +191,21 @@ namespace SmartShelf.DeviceLibrary
return DefaultLight(dmxId, index); return DefaultLight(dmxId, index);
} }
public static Light RedLight(int dmxId, int index, byte bright=50) public static Light RedLight(int dmxId, int index, byte bright = 50)
{ {
return new Light(dmxId, index, bright, 0, 0); return new Light(dmxId, index, bright, 0, 0);
} }
public static Light YellowLight(int dmxId, int index, byte bright=50) public static Light YellowLight(int dmxId, int index, byte bright = 50)
{ {
return new Light(dmxId, index, bright, bright, 0); return new Light(dmxId, index, bright, bright, 0);
} }
public static Light BlueLight(int dmxId, int index, byte bright=50) public static Light BlueLight(int dmxId, int index, byte bright = 50)
{ {
return new Light(dmxId, index, 0, 0, bright); return new Light(dmxId, index, 0, 0, bright);
} }
public static Light GreenLight(int dmxId, int index, byte bright=50) public static Light GreenLight(int dmxId, int index, byte bright = 50)
{ {
return new Light(dmxId, index, 0, bright, 0); return new Light(dmxId, index, 0, bright, 0);
} }
...@@ -313,7 +221,7 @@ namespace SmartShelf.DeviceLibrary ...@@ -313,7 +221,7 @@ namespace SmartShelf.DeviceLibrary
} }
public Light(int dmxId, int index, byte Red, byte Green, byte Blue,byte lightValue=200) public Light(int dmxId, int index, byte Red, byte Green, byte Blue, byte lightValue = 200)
{ {
this.dmx = dmxId; this.dmx = dmxId;
this.index = index; this.index = index;
...@@ -326,7 +234,7 @@ namespace SmartShelf.DeviceLibrary ...@@ -326,7 +234,7 @@ namespace SmartShelf.DeviceLibrary
public byte Red { get; set; } public byte Red { get; set; }
public byte Green { get; set; } public byte Green { get; set; }
public byte Blue { get; set; } public byte Blue { get; set; }
/// <summary> /// <summary>
/// 单色灯 /// 单色灯
/// </summary> /// </summary>
......
...@@ -17,31 +17,33 @@ namespace SmartShelf.DeviceLibrary ...@@ -17,31 +17,33 @@ namespace SmartShelf.DeviceLibrary
public class LEDColorArtNet : LEDBaseModule public class LEDColorArtNet : LEDBaseModule
{ {
private const ushort Max_DMX = 64; //private const ushort Max_DMX = 16;
//private int Max_Light = 170;
private int Max_Light = 170; private int datalength = 512;
private int datalength = 512;
private List<byte[]> dmxDatas = new List<byte[]>(Max_DMX); private List<byte[]> dmxDatas = null;
internal LEDColorArtNet(string ip) : base(ip) internal LEDColorArtNet(string ip) : base(ip)
{ {
Max_Light = 170;
Max_DMX = 16;
datalength = 512; datalength = 512;
Max_Light = datalength / 3; Max_Light = datalength / 3;
dmxDatas = new List<byte[]>(Max_DMX);
iep = new IPEndPoint(IPAddress.Parse(ip), 6454); iep = new IPEndPoint(IPAddress.Parse(ip), 6454);
AllLightOff(); AllLightOff();
} }
private void InitDatas() private void InitDatas()
{ {
dmxDatas = new List<byte[]>(Max_DMX); dmxDatas = new List<byte[]>(Max_DMX);
for (int i = 0; i < Max_DMX; i++) for (int i = 0; i < Max_DMX; i++)
{ {
dmxDatas.Add(new byte[datalength]); dmxDatas.Add(new byte[datalength]);
} }
} }
private void UpdateLightData(int dmx,int index,byte red=0, byte green =0, byte blue =0) private void UpdateLightData(int dmx, int index, byte red = 0, byte green = 0, byte blue = 0)
{ {
int ldmx = dmx; int ldmx = dmx;
int lIndex = index; int lIndex = index;
...@@ -53,14 +55,14 @@ namespace SmartShelf.DeviceLibrary ...@@ -53,14 +55,14 @@ namespace SmartShelf.DeviceLibrary
if (ldmx >= dmxDatas.Count) if (ldmx >= dmxDatas.Count)
{ {
LogUtil.error(" UpdateLightData error: dmx [" + ldmx + "] MAX_UNI[" + Max_DMX + "]"); LogUtil.error(" UpdateLightData error: dmx [" + ldmx + "] MAX_UNI[" + Max_DMX + "]");
return ; return;
} }
byte[] data = dmxDatas[ldmx]; byte[] data = dmxDatas[ldmx];
//SPI第二通道为蓝色,DMX第二通道为绿色 //SPI第二通道为蓝色,DMX第二通道为绿色
data[lIndex * 3] = red ; data[lIndex * 3] = red;
data[lIndex * 3 + 1] = green ; data[lIndex * 3 + 1] = green;
data[lIndex * 3 + 2] = blue ; data[lIndex * 3 + 2] = blue;
} }
public override void AllLightOff(int dmx = -1) public override void AllLightOff(int dmx = -1)
{ {
...@@ -80,7 +82,7 @@ namespace SmartShelf.DeviceLibrary ...@@ -80,7 +82,7 @@ namespace SmartShelf.DeviceLibrary
byte[] data = dmxDatas[i]; byte[] data = dmxDatas[i];
for (int index = 0; index < Max_Light; index++) for (int index = 0; index < Max_Light; index++)
{ {
UpdateLightData(i, index, light.Red, light.Green, light.Blue); UpdateLightData(i, index, light.Red, light.Green, light.Blue);
} }
} }
PushToDevice(); PushToDevice();
...@@ -105,7 +107,7 @@ namespace SmartShelf.DeviceLibrary ...@@ -105,7 +107,7 @@ namespace SmartShelf.DeviceLibrary
foreach (Light light in lights) foreach (Light light in lights)
{ {
UpdateLightData(light.dmx, light.index, light.Red, light.Green, light.Blue); UpdateLightData(light.dmx, light.index, light.Red, light.Green, light.Blue);
} }
PushToDevice(); PushToDevice();
} }
...@@ -115,7 +117,7 @@ namespace SmartShelf.DeviceLibrary ...@@ -115,7 +117,7 @@ namespace SmartShelf.DeviceLibrary
foreach (int lightId in lightIndexs) foreach (int lightId in lightIndexs)
{ {
UpdateLightData(dmx, lightId, 0, 0, 0); UpdateLightData(dmx, lightId, 0, 0, 0);
} }
PushToDevice(); PushToDevice();
...@@ -125,7 +127,7 @@ namespace SmartShelf.DeviceLibrary ...@@ -125,7 +127,7 @@ namespace SmartShelf.DeviceLibrary
foreach (Light light in lights) foreach (Light light in lights)
{ {
UpdateLightData(light.dmx, light.index, 0, 0, 0); UpdateLightData(light.dmx, light.index, 0, 0, 0);
} }
PushToDevice(); PushToDevice();
...@@ -143,7 +145,7 @@ namespace SmartShelf.DeviceLibrary ...@@ -143,7 +145,7 @@ namespace SmartShelf.DeviceLibrary
for (int i = 0; i < dmxDatas.Count; i++) for (int i = 0; i < dmxDatas.Count; i++)
{ {
byte[] toSend = ToSPIData(i, dmxDatas[i]); byte[] toSend = ToSPIData(i, dmxDatas[i]);
myUdpClient.Send(toSend, toSend.Length, iep); myUdpClient.Send(toSend, toSend.Length, iep);
} }
} }
catch (Exception err) catch (Exception err)
...@@ -157,7 +159,7 @@ namespace SmartShelf.DeviceLibrary ...@@ -157,7 +159,7 @@ namespace SmartShelf.DeviceLibrary
} }
} }
/// <summary> /// <summary>
...@@ -185,11 +187,11 @@ namespace SmartShelf.DeviceLibrary ...@@ -185,11 +187,11 @@ namespace SmartShelf.DeviceLibrary
string seq = "00"; string seq = "00";
string phy = "00"; string phy = "00";
string SubUni = "00"; string SubUni = "00";
SubUni= String.Format("{0:X}", dmxIndex).PadLeft(2, '0'); SubUni = String.Format("{0:X}", dmxIndex).PadLeft(2, '0');
string Net = "00"; string Net = "00";
int len = dmxData.Length; int len = dmxData.Length;
string str = String.Format("{0:X}", dmxData.Length).PadLeft(4,'0'); string str = String.Format("{0:X}", dmxData.Length).PadLeft(4, '0');
string length = "0200"; string length = "0200";
length = str; length = str;
//string Broadcast = "0";//0=没有广播,只控制指定域;1=对设备的所有端口广播;2=对某个子网内的所有域广播;3,对网络下的所有子网广播;0xff=对所有网络设备的所有口广播 //string Broadcast = "0";//0=没有广播,只控制指定域;1=对设备的所有端口广播;2=对某个子网内的所有域广播;3,对网络下的所有子网广播;0xff=对所有网络设备的所有口广播
......
此文件类型无法预览
...@@ -9,21 +9,16 @@ ...@@ -9,21 +9,16 @@
<add key="App_AutoRun" value="0"/> <add key="App_AutoRun" value="0"/>
<add key="App_Title" value="料架"/> <add key="App_Title" value="料架"/>
<!--服务器地址--> <!--服务器端口号-->
<add key="http.server" value="http://192.168.200.22:8080/" /> <add key="ServerPort" value="80" />
<!--料架灯类型,0=单色灯料架,1=三色灯料架,2=art-net--> <!--料架灯类型,0=单色灯料架,1=三色灯料架,2=art-net-->
<add key="DeviceLedType" value="2" /> <add key="DeviceLedType" value="2" />
<!--一下为一个料仓的默认配置 开始--> <!--一下为一个料仓的默认配置 开始-->
<add key="Store_Position_Config" value="\Config\GW\linePositions.csv"/> <add key="Store_Position_Config" value="\Config\linePositions.csv"/>
<add key="Store_ConfigPath" value="\Config\StoreConfig.csv" /> <!--<add key="Store_ConfigPath" value="\Config\StoreConfig.csv" />-->
<add key="Store_CID" value="SmartShelf3" /> <add key="Store_CID" value="rc1272_1" />
<add key ="DIMS" value="300"/> <add key ="BoxCount" value ="2"/>
<add key ="DOMS" value ="300"/>
<add key ="BoxCount" value ="7"/>
<add key ="Status_Green_Lights" value ="192.168.1.151:129,130,131,132,133,134,135,136,137,138"/>
<add key ="Status_Yellow_Lights" value ="192.168.1.151:140,141,142,143,144,145,146,147,148,149"/>
<add key ="Status_Red_Lights" value ="192.168.1.151:150,151,152,153,154,155,156,157,158,159,160"/>
</appSettings> </appSettings>
<log4net> <log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
...@@ -34,10 +29,7 @@ ...@@ -34,10 +29,7 @@
<layout type="log4net.Layout.PatternLayout"> <layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date][%t]%-5p %m%n" /> <conversionPattern value="[%date][%t]%-5p %m%n" />
</layout> </layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<levelMax value="ERROR" />
</filter>
</appender> </appender>
<appender name="AIOBOXLog" type="log4net.Appender.RollingFileAppender"> <appender name="AIOBOXLog" type="log4net.Appender.RollingFileAppender">
<file value="logs/aio/AIOBOX1.log" /> <file value="logs/aio/AIOBOX1.log" />
......
namespace SmartShelf namespace SmartShelf
{ {
partial class FrmSmartShelf partial class FrmShelf
{ {
/// <summary> /// <summary>
/// Required designer variable. /// Required designer variable.
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
private void InitializeComponent() private void InitializeComponent()
{ {
this.components = new System.ComponentModel.Container(); this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmSmartShelf)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmShelf));
this.tabControl1 = new System.Windows.Forms.TabControl(); this.tabControl1 = new System.Windows.Forms.TabControl();
this.menuStrip1 = new System.Windows.Forms.MenuStrip(); this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.启动手动料仓ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.启动手动料仓ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
...@@ -48,17 +48,17 @@ ...@@ -48,17 +48,17 @@
| System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.tabControl1.DrawMode = System.Windows.Forms.TabDrawMode.OwnerDrawFixed; this.tabControl1.DrawMode = System.Windows.Forms.TabDrawMode.OwnerDrawFixed;
this.tabControl1.Location = new System.Drawing.Point(11, 31); this.tabControl1.Location = new System.Drawing.Point(3, 31);
this.tabControl1.Multiline = true; this.tabControl1.Multiline = true;
this.tabControl1.Name = "tabControl1"; this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0; this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(779, 532); this.tabControl1.Size = new System.Drawing.Size(788, 540);
this.tabControl1.TabIndex = 1; this.tabControl1.TabIndex = 1;
this.tabControl1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.tabControl1_DrawItem); this.tabControl1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.tabControl1_DrawItem);
// //
// menuStrip1 // menuStrip1
// //
this.menuStrip1.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.menuStrip1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.启动手动料仓ToolStripMenuItem, this.启动手动料仓ToolStripMenuItem,
this.关闭手动料仓ToolStripMenuItem, this.关闭手动料仓ToolStripMenuItem,
...@@ -66,35 +66,35 @@ ...@@ -66,35 +66,35 @@
this.清理日志ToolStripMenuItem}); this.清理日志ToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1"; this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(1216, 28); this.menuStrip1.Size = new System.Drawing.Size(1216, 29);
this.menuStrip1.TabIndex = 2; this.menuStrip1.TabIndex = 2;
this.menuStrip1.Text = "menuStrip1"; this.menuStrip1.Text = "menuStrip1";
// //
// 启动手动料仓ToolStripMenuItem // 启动手动料仓ToolStripMenuItem
// //
this.启动手动料仓ToolStripMenuItem.Name = "启动手动料仓ToolStripMenuItem"; this.启动手动料仓ToolStripMenuItem.Name = "启动手动料仓ToolStripMenuItem";
this.启动手动料仓ToolStripMenuItem.Size = new System.Drawing.Size(77, 24); this.启动手动料仓ToolStripMenuItem.Size = new System.Drawing.Size(86, 25);
this.启动手动料仓ToolStripMenuItem.Text = "启动料架"; this.启动手动料仓ToolStripMenuItem.Text = "启动料架";
this.启动手动料仓ToolStripMenuItem.Click += new System.EventHandler(this.启动手动料仓ToolStripMenuItem_Click); this.启动手动料仓ToolStripMenuItem.Click += new System.EventHandler(this.启动手动料仓ToolStripMenuItem_Click);
// //
// 关闭手动料仓ToolStripMenuItem // 关闭手动料仓ToolStripMenuItem
// //
this.关闭手动料仓ToolStripMenuItem.Name = "关闭手动料仓ToolStripMenuItem"; this.关闭手动料仓ToolStripMenuItem.Name = "关闭手动料仓ToolStripMenuItem";
this.关闭手动料仓ToolStripMenuItem.Size = new System.Drawing.Size(77, 24); this.关闭手动料仓ToolStripMenuItem.Size = new System.Drawing.Size(86, 25);
this.关闭手动料仓ToolStripMenuItem.Text = "关闭料架"; this.关闭手动料仓ToolStripMenuItem.Text = "关闭料架";
this.关闭手动料仓ToolStripMenuItem.Click += new System.EventHandler(this.关闭手动料仓ToolStripMenuItem_Click); this.关闭手动料仓ToolStripMenuItem.Click += new System.EventHandler(this.关闭手动料仓ToolStripMenuItem_Click);
// //
// 退出程序ToolStripMenuItem // 退出程序ToolStripMenuItem
// //
this.退出程序ToolStripMenuItem.Name = "退出程序ToolStripMenuItem"; this.退出程序ToolStripMenuItem.Name = "退出程序ToolStripMenuItem";
this.退出程序ToolStripMenuItem.Size = new System.Drawing.Size(77, 24); this.退出程序ToolStripMenuItem.Size = new System.Drawing.Size(86, 25);
this.退出程序ToolStripMenuItem.Text = "退出程序"; this.退出程序ToolStripMenuItem.Text = "退出程序";
this.退出程序ToolStripMenuItem.Click += new System.EventHandler(this.退出程序ToolStripMenuItem_Click); this.退出程序ToolStripMenuItem.Click += new System.EventHandler(this.退出程序ToolStripMenuItem_Click);
// //
// 清理日志ToolStripMenuItem // 清理日志ToolStripMenuItem
// //
this.清理日志ToolStripMenuItem.Name = "清理日志ToolStripMenuItem"; this.清理日志ToolStripMenuItem.Name = "清理日志ToolStripMenuItem";
this.清理日志ToolStripMenuItem.Size = new System.Drawing.Size(77, 24); this.清理日志ToolStripMenuItem.Size = new System.Drawing.Size(86, 25);
this.清理日志ToolStripMenuItem.Text = "清理日志"; this.清理日志ToolStripMenuItem.Text = "清理日志";
this.清理日志ToolStripMenuItem.Click += new System.EventHandler(this.清理日志ToolStripMenuItem_Click); this.清理日志ToolStripMenuItem.Click += new System.EventHandler(this.清理日志ToolStripMenuItem_Click);
// //
...@@ -107,9 +107,9 @@ ...@@ -107,9 +107,9 @@
// //
this.richTextBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) this.richTextBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.richTextBox1.Location = new System.Drawing.Point(802, 62); this.richTextBox1.Location = new System.Drawing.Point(796, 66);
this.richTextBox1.Name = "richTextBox1"; this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.Size = new System.Drawing.Size(402, 500); this.richTextBox1.Size = new System.Drawing.Size(414, 500);
this.richTextBox1.TabIndex = 4; this.richTextBox1.TabIndex = 4;
this.richTextBox1.Text = ""; this.richTextBox1.Text = "";
// //
...@@ -118,16 +118,15 @@ ...@@ -118,16 +118,15 @@
this.chbAuto.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.chbAuto.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.chbAuto.AutoSize = true; this.chbAuto.AutoSize = true;
this.chbAuto.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.chbAuto.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.chbAuto.Location = new System.Drawing.Point(802, 31); this.chbAuto.Location = new System.Drawing.Point(1079, 35);
this.chbAuto.Name = "chbAuto"; this.chbAuto.Name = "chbAuto";
this.chbAuto.Size = new System.Drawing.Size(125, 25); this.chbAuto.Size = new System.Drawing.Size(125, 25);
this.chbAuto.TabIndex = 271; this.chbAuto.TabIndex = 271;
this.chbAuto.Text = "开机自动启动"; this.chbAuto.Text = "开机自动启动";
this.chbAuto.UseVisualStyleBackColor = true; this.chbAuto.UseVisualStyleBackColor = true;
this.chbAuto.Visible = false;
this.chbAuto.CheckedChanged += new System.EventHandler(this.chbAuto_CheckedChanged); this.chbAuto.CheckedChanged += new System.EventHandler(this.chbAuto_CheckedChanged);
// //
// FrmSmartShelf // FrmShelf
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
...@@ -139,7 +138,7 @@ ...@@ -139,7 +138,7 @@
this.Controls.Add(this.menuStrip1); this.Controls.Add(this.menuStrip1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MainMenuStrip = this.menuStrip1; this.MainMenuStrip = this.menuStrip1;
this.Name = "FrmSmartShelf"; this.Name = "FrmShelf";
this.Text = "料架"; this.Text = "料架";
this.WindowState = System.Windows.Forms.FormWindowState.Maximized; this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmSmartShelf_FormClosing); this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmSmartShelf_FormClosing);
......
...@@ -12,9 +12,9 @@ using System.Windows.Forms; ...@@ -12,9 +12,9 @@ using System.Windows.Forms;
namespace SmartShelf namespace SmartShelf
{ {
public partial class FrmSmartShelf : Form public partial class FrmShelf : Form
{ {
public FrmSmartShelf() public FrmShelf()
{ {
InitializeComponent(); InitializeComponent();
Control.CheckForIllegalCrossThreadCalls = false; Control.CheckForIllegalCrossThreadCalls = false;
......
...@@ -12,8 +12,7 @@ using System.IO.Ports; ...@@ -12,8 +12,7 @@ using System.IO.Ports;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using UserFromControl;
namespace SmartShelf namespace SmartShelf
{ {
...@@ -31,13 +30,7 @@ namespace SmartShelf ...@@ -31,13 +30,7 @@ namespace SmartShelf
//LogUtil.logBox = this.rtxReviceList; //LogUtil.logBox = this.rtxReviceList;
Control.CheckForIllegalCrossThreadCalls = false; Control.CheckForIllegalCrossThreadCalls = false;
} }
private void Control_OpenEvent(IOTextControl control, string num)
{
BOXManager.ProcessOpenDoor(num, "Click");
control.IOName = num + "_打开";
control.IOValue = 1;
control.ShowData();
}
private void FrmSMStore_Load(object sender, EventArgs e) private void FrmSMStore_Load(object sender, EventArgs e)
{ {
...@@ -69,6 +62,8 @@ namespace SmartShelf ...@@ -69,6 +62,8 @@ namespace SmartShelf
txtIp2.Text = posi.DeviceIp.ToString(); txtIp2.Text = posi.DeviceIp.ToString();
txtNum.Text = posi.LedIndex.ToString(); txtNum.Text = posi.LedIndex.ToString();
txtDmxId.Text = posi.DmxId.ToString(); txtDmxId.Text = posi.DmxId.ToString();
lblAddr.Text = posi.DmxId + "_" + posi.LedIndex;
} }
private void timer1_Tick(object sender, EventArgs e) private void timer1_Tick(object sender, EventArgs e)
...@@ -157,7 +152,7 @@ namespace SmartShelf ...@@ -157,7 +152,7 @@ namespace SmartShelf
return; return;
} }
BoxPosition posi = PMap[text]; BoxPosition posi = PMap[text];
BOXManager.ProcessOpenDoor(posi.PositionNum, "Click"); BOXManager.ProcessOpenLed(posi.PositionNum, "Click");
} }
private void button2_Click_1(object sender, EventArgs e) private void button2_Click_1(object sender, EventArgs e)
...@@ -168,7 +163,7 @@ namespace SmartShelf ...@@ -168,7 +163,7 @@ namespace SmartShelf
return; return;
} }
BoxPosition posi = PMap[text]; BoxPosition posi = PMap[text];
BOXManager.ProcessCloseDoor(posi.PositionNum, "Click"); BOXManager.ProcessCloseLed(posi.PositionNum, "Click");
} }
private void button3_Click(object sender, EventArgs e) private void button3_Click(object sender, EventArgs e)
......
...@@ -18,7 +18,7 @@ namespace SmartShelf ...@@ -18,7 +18,7 @@ namespace SmartShelf
XmlConfigurator.Configure(); XmlConfigurator.Configure();
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FrmSmartShelf()); Application.Run(new FrmShelf());
} }
} }
} }
...@@ -50,11 +50,11 @@ ...@@ -50,11 +50,11 @@
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="FrmSingleLedShelf.cs"> <Compile Include="FrmShelf.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Include="FrmSingleLedShelf.Designer.cs"> <Compile Include="FrmShelf.Designer.cs">
<DependentUpon>FrmSingleLedShelf.cs</DependentUpon> <DependentUpon>FrmShelf.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="FrmStore.cs"> <Compile Include="FrmStore.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
...@@ -65,8 +65,8 @@ ...@@ -65,8 +65,8 @@
<Compile Include="ManagerUtil.cs" /> <Compile Include="ManagerUtil.cs" />
<Compile Include="Program.cs" /> <Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="FrmSingleLedShelf.resx"> <EmbeddedResource Include="FrmShelf.resx">
<DependentUpon>FrmSingleLedShelf.cs</DependentUpon> <DependentUpon>FrmShelf.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="FrmStore.resx"> <EmbeddedResource Include="FrmStore.resx">
<DependentUpon>FrmStore.cs</DependentUpon> <DependentUpon>FrmStore.cs</DependentUpon>
...@@ -110,10 +110,6 @@ ...@@ -110,10 +110,6 @@
<Project>{064bebf5-8faa-4ea2-a5f3-a06e6e7d9251}</Project> <Project>{064bebf5-8faa-4ea2-a5f3-a06e6e7d9251}</Project>
<Name>LoadCSVLibrary</Name> <Name>LoadCSVLibrary</Name>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\UserFromControl\UserFromControl.csproj">
<Project>{f018462a-d9bc-4365-97f2-f6d71751641e}</Project>
<Name>UserFromControl</Name>
</ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="AuToRunManager.exe"> <Content Include="AuToRunManager.exe">
......
...@@ -9,8 +9,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeviceLibrary", "DeviceLibr ...@@ -9,8 +9,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeviceLibrary", "DeviceLibr
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoadCSVLibrary", "LoadCVSLibrary\LoadCSVLibrary.csproj", "{064BEBF5-8FAA-4EA2-A5F3-A06E6E7D9251}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoadCSVLibrary", "LoadCVSLibrary\LoadCSVLibrary.csproj", "{064BEBF5-8FAA-4EA2-A5F3-A06E6E7D9251}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UserFromControl", "UserFromControl\UserFromControl.csproj", "{F018462A-D9BC-4365-97F2-F6D71751641E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartShelf", "SmartShelf\SmartShelf.csproj", "{287A1E7D-F5A9-4D78-A407-0E4AE5DC29AF}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartShelf", "SmartShelf\SmartShelf.csproj", "{287A1E7D-F5A9-4D78-A407-0E4AE5DC29AF}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartShelfClient", "SmartShelfClient\SmartShelfClient.csproj", "{B76CF298-C22C-415F-96EA-CD8C72AF47A1}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartShelfClient", "SmartShelfClient\SmartShelfClient.csproj", "{B76CF298-C22C-415F-96EA-CD8C72AF47A1}"
...@@ -33,10 +31,6 @@ Global ...@@ -33,10 +31,6 @@ Global
{064BEBF5-8FAA-4EA2-A5F3-A06E6E7D9251}.Debug|Any CPU.Build.0 = Debug|Any CPU {064BEBF5-8FAA-4EA2-A5F3-A06E6E7D9251}.Debug|Any CPU.Build.0 = Debug|Any CPU
{064BEBF5-8FAA-4EA2-A5F3-A06E6E7D9251}.Release|Any CPU.ActiveCfg = Release|Any CPU {064BEBF5-8FAA-4EA2-A5F3-A06E6E7D9251}.Release|Any CPU.ActiveCfg = Release|Any CPU
{064BEBF5-8FAA-4EA2-A5F3-A06E6E7D9251}.Release|Any CPU.Build.0 = Release|Any CPU {064BEBF5-8FAA-4EA2-A5F3-A06E6E7D9251}.Release|Any CPU.Build.0 = Release|Any CPU
{F018462A-D9BC-4365-97F2-F6D71751641E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F018462A-D9BC-4365-97F2-F6D71751641E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F018462A-D9BC-4365-97F2-F6D71751641E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F018462A-D9BC-4365-97F2-F6D71751641E}.Release|Any CPU.Build.0 = Release|Any CPU
{287A1E7D-F5A9-4D78-A407-0E4AE5DC29AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {287A1E7D-F5A9-4D78-A407-0E4AE5DC29AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{287A1E7D-F5A9-4D78-A407-0E4AE5DC29AF}.Debug|Any CPU.Build.0 = Debug|Any CPU {287A1E7D-F5A9-4D78-A407-0E4AE5DC29AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{287A1E7D-F5A9-4D78-A407-0E4AE5DC29AF}.Release|Any CPU.ActiveCfg = Release|Any CPU {287A1E7D-F5A9-4D78-A407-0E4AE5DC29AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
......
namespace UserFromControl
{
partial class IOTextControl
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.pictureBox2 = new System.Windows.Forms.PictureBox();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
this.SuspendLayout();
//
// label1
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(30, 4);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(53, 12);
this.label1.TabIndex = 0;
this.label1.Text = "测试一下";
//
// pictureBox1
//
this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
this.pictureBox1.Location = new System.Drawing.Point(0, 0);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(25, 27);
this.pictureBox1.TabIndex = 1;
this.pictureBox1.TabStop = false;
this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
//
// pictureBox2
//
this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
this.pictureBox2.Location = new System.Drawing.Point(0, 0);
this.pictureBox2.Name = "pictureBox2";
this.pictureBox2.Size = new System.Drawing.Size(25, 27);
this.pictureBox2.TabIndex = 2;
this.pictureBox2.TabStop = false;
this.pictureBox2.Click += new System.EventHandler(this.pictureBox2_Click);
//
// IOTextControl
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.Controls.Add(this.pictureBox2);
this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.label1);
this.Name = "IOTextControl";
this.Size = new System.Drawing.Size(202, 27);
this.Load += new System.EventHandler(this.IOStatusControl_Load);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.PictureBox pictureBox2;
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace UserFromControl
{
public partial class IOTextControl : UserControl
{
public string Num { get; set; }
public string IOName { get; set; }
public int IOValue { get; set; }
public Boolean isCanClick { get; set; }
public delegate void OpenClick(IOTextControl con,string num);
public event OpenClick OpenEvent;
public delegate void CloseClick(IOTextControl con, string num);
public event CloseClick CloseEvent;
public IOTextControl()
{
InitializeComponent();
if (ImageManager.IsInit==false)
{
ImageManager.Init();
}
this.pictureBox1.BackgroundImage = ImageManager.imgGrey;
this.pictureBox2.BackgroundImage = ImageManager.imgGreen;
pictureBox1.Visible = true;
pictureBox2.Visible = false;
isCanClick = false;
}
public void ShowData()
{
label1.Text = IOName;
if (IOValue == 0)
{
pictureBox1.Visible = true;
pictureBox2.Visible = false;
}
else
{
pictureBox1.Visible = false;
pictureBox2.Visible = true;
}
}
private void IOStatusControl_Load(object sender, EventArgs e)
{
ShowData();
}
private void pictureBox2_Click(object sender, EventArgs e)
{
if (isCanClick)
{
CloseEvent?.Invoke(this,Num);
}
}
private void pictureBox1_Click(object sender, EventArgs e)
{
if (isCanClick)
{
OpenEvent?.Invoke(this,Num);
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file \ No newline at end of file
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace UserFromControl
{
public class ImageManager
{
public static Image imgGrey;
public static Image imgGreen;
/// <summary>
/// 是否已经初始化过了
/// </summary>
public static bool IsInit = false;
public static void Init()
{
try
{
IsInit = true;
imgGrey = Image.FromFile(Application.StartupPath + "\\image\\gray2.png");
imgGreen = Image.FromFile(Application.StartupPath+"\\image\\green.png");
}
catch (Exception ex)
{
Console.Write(ex.ToString());
}
}
}
}
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的常规信息通过以下
// 特性集控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("UserFromControl")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("UserFromControl")]
[assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 使此程序集中的类型
// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
// 则将该类型上的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("a6a898b1-9dd0-4815-91c5-11c79ea72550")]
// 程序集的版本信息由下面四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace UserFromControl.Properties {
using System;
/// <summary>
/// 一个强类型的资源类,用于查找本地化的字符串等。
/// </summary>
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// 返回此类使用的缓存的 ResourceManager 实例。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("UserFromControl.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// 使用此强类型资源类,为所有资源查找
/// 重写当前线程的 CurrentUICulture 属性。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file \ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{F018462A-D9BC-4365-97F2-F6D71751641E}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>UserFromControl</RootNamespace>
<AssemblyName>UserFromControl</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="ImageManager.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="IOTextControl.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="IOTextControl.Designer.cs">
<DependentUpon>IOTextControl.cs</DependentUpon>
</Compile>
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="IOTextControl.resx">
<DependentUpon>IOTextControl.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Content Include="image\gray.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="image\gray1.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="image\gray2.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="image\green.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="image\green1.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
\ No newline at end of file \ No newline at end of file
[COM]
SICOM=1;9600
SICOM1=2;9600
[Modbus]
SICOM=1;38400
[Delay]
1=1;1000
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!