add - 处理下发请求

dep_nodyang
wangsr 1 year ago
parent bcd9ccae26
commit 41fde0575d

@ -5,6 +5,7 @@
</configSections>
<log4net>
<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="ERROR" />
@ -20,9 +21,32 @@
</layout>
</appender>
<root>
<appender-ref ref="ColoredConsoleAppender" />
</root>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--日志路径-->
<param name= "File" value= "D:\App_Log\"/>
<!--是否是向文件中追加日志-->
<param name= "AppendToFile" value= "true"/>
<!--log保留天数-->
<param name= "MaxSizeRollBackups" value= "30"/>
<!--日志文件名是否是固定不变的-->
<param name= "StaticLogFileName" value= "false"/>
<!--日志文件名格式为:2008-08-31.log-->
<param name= "DatePattern" value= "yyyy-MM-dd&quot;.log&quot;"/>
<!--日志根据日期滚动-->
<param name= "RollingStyle" value= "Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n %loggername" />
</layout>
</appender>
<root>
<!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低)-->
<level value="all" />
<appender-ref ref="ColoredConsoleAppender"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Mesnac.Action.ChemicalWeighing.InterfaceDocking.DockingEntity
{
public class JsonReturnEntity
{
/// <summary>
/// 请求ID
/// </summary>
public string reqCode { get; set; }
/// <summary>
/// 返回代码
/// </summary>
public int code { get; set; }
/// <summary>
/// 返回信息
/// </summary>
public string message { get; set; }
}
}

@ -0,0 +1,55 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Mesnac.Action.ChemicalWeighing.InterfaceDocking.DockingEntity
{
public class MaterialPlanSyncEntity
{
/// <summary>
///
/// </summary>
public string reqCode { get; set; }
/// <summary>
///
/// </summary>
public DateTime reqTime { get; set; }
/// <summary>
///
/// </summary>
public string planNo { get; set; }
/// <summary>
///
/// </summary>
public List<Data> data { get; set; }
}
public class UnLoadItems
{
/// <summary>
/// 料罐
/// </summary>
public string unloadNo { get; set; }
}
public class Data
{
/// <summary>
/// 物料
/// </summary>
public string sku { get; set; }
/// <summary>
/// 成型机
/// </summary>
public string loadNo { get; set; }
/// <summary>
///
/// </summary>
public List<UnLoadItems> unLoadItems { get; set; }
}
}

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Mesnac.Action.ChemicalWeighing.InterfaceDocking.DockingEntity
{
public class TankDeviceStateSyncEntity
{
/// <summary>
/// 请求ID
/// </summary>
public string reqCode { get; set; }
/// <summary>
/// 请求时间
/// </summary>
public DateTime reqTime { get; set; }
/// <summary>
/// 设备编码
/// </summary>
public string deviceNo { get; set; }
/// <summary>
/// 物料编码
/// </summary>
public string sku { get; set; }
/// <summary>
/// 0异常1正常 2进料 3出料
/// </summary>
public string state { get; set; }
/// <summary>
///
/// </summary>
public string planID { get; set; }
}
}

@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Mesnac.Action.ChemicalWeighing.InterfaceDocking.DockingEntity
{
public class TankIsDischargedSyncEntity
{
/// <summary>
/// 请求ID
/// </summary>
public string reqCode { get; set; }
/// <summary>
/// 请求时间
/// </summary>
public DateTime reqTime { get; set; }
/// <summary>
/// 设备编码1-8
/// </summary>
public string deviceNo { get; set; }
/// <summary>
/// 0无料1有料
/// </summary>
public string state { get; set; }
}
}

@ -0,0 +1,919 @@
using System;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Text.RegularExpressions;
namespace Mesnac.Action.ChemicalWeighing.InterfaceDocking
{
/// <summary>
/// Http连接操作帮助类
/// </summary>
public class HttpHelper
{
#region 预定义方变量
//默认的编码
private Encoding encoding = Encoding.Default;
//Post数据编码
private Encoding postencoding = Encoding.Default;
//HttpWebRequest对象用来发起请求
private HttpWebRequest request = null;
//获取影响流的数据对象
private HttpWebResponse response = null;
//设置本地的出口ip和端口
private IPEndPoint _IPEndPoint = null;
#endregion 预定义方变量
#region Public
/// <summary>
/// 根据相传入的数据,得到相应页面数据
/// </summary>
/// <param name="item">参数类对象</param>
/// <returns>返回HttpResult类型</returns>
public HttpResult GetHtml(HttpItem item)
{
//返回参数
HttpResult result = new HttpResult();
try
{
//准备参数
SetRequest(item);
}
catch (Exception ex)
{
//配置参数时出错
return new HttpResult() { Cookie = string.Empty, Header = null, Html = ex.Message, StatusDescription = "配置参数时出错:" + ex.Message };
}
try
{
//请求数据
using (response = (HttpWebResponse)request.GetResponse())
{
GetData(item, result);
}
}
catch (WebException ex)
{
if (ex.Response != null)
{
using (response = (HttpWebResponse)ex.Response)
{
GetData(item, result);
}
}
else
{
result.Html = ex.Message;
}
}
catch (Exception ex)
{
result.Html = ex.Message;
}
if (item.IsToLower) result.Html = result.Html.ToLower();
//重置requestresponse为空
if (item.IsReset)
{
request = null;
response = null;
}
return result;
}
#endregion Public
#region GetData
/// <summary>
/// 获取数据的并解析的方法
/// </summary>
/// <param name="item"></param>
/// <param name="result"></param>
private void GetData(HttpItem item, HttpResult result)
{
if (response == null)
{
return;
}
#region base
//获取StatusCode
result.StatusCode = response.StatusCode;
//获取StatusDescription
result.StatusDescription = response.StatusDescription;
//获取Headers
result.Header = response.Headers;
//获取最后访问的URl
result.ResponseUri = response.ResponseUri.ToString();
//获取CookieCollection
if (response.Cookies != null) result.CookieCollection = response.Cookies;
//获取set-cookie
if (response.Headers["set-cookie"] != null) result.Cookie = response.Headers["set-cookie"];
#endregion base
#region byte
//处理网页Byte
byte[] ResponseByte = GetByte();
#endregion byte
#region Html
if (ResponseByte != null && ResponseByte.Length > 0)
{
//设置编码
SetEncoding(item, result, ResponseByte);
//得到返回的HTML
result.Html = encoding.GetString(ResponseByte);
}
else
{
//没有返回任何Html代码
result.Html = string.Empty;
}
#endregion Html
}
/// <summary>
/// 设置编码
/// </summary>
/// <param name="item">HttpItem</param>
/// <param name="result">HttpResult</param>
/// <param name="ResponseByte">byte[]</param>
private void SetEncoding(HttpItem item, HttpResult result, byte[] ResponseByte)
{
//是否返回Byte类型数据
if (item.ResultType == ResultType.Byte) result.ResultByte = ResponseByte;
//从这里开始我们要无视编码了
if (encoding == null)
{
Match meta = Regex.Match(Encoding.Default.GetString(ResponseByte), "<meta[^<]*charset=([^<]*)[\"']", RegexOptions.IgnoreCase);
string c = string.Empty;
if (meta != null && meta.Groups.Count > 0)
{
c = meta.Groups[1].Value.ToLower().Trim();
}
if (c.Length > 2)
{
try
{
encoding = Encoding.GetEncoding(c.Replace("\"", string.Empty).Replace("'", "").Replace(";", "").Replace("iso-8859-1", "gbk").Trim());
}
catch
{
if (string.IsNullOrEmpty(response.CharacterSet))
{
encoding = Encoding.UTF8;
}
else
{
encoding = Encoding.GetEncoding(response.CharacterSet);
}
}
}
else
{
if (string.IsNullOrEmpty(response.CharacterSet))
{
encoding = Encoding.UTF8;
}
else
{
encoding = Encoding.GetEncoding(response.CharacterSet);
}
}
}
}
/// <summary>
/// 提取网页Byte
/// </summary>
/// <returns></returns>
private byte[] GetByte()
{
byte[] ResponseByte = null;
using (MemoryStream _stream = new MemoryStream())
{
//GZIIP处理
if (response.ContentEncoding != null && response.ContentEncoding.Equals("gzip", StringComparison.InvariantCultureIgnoreCase))
{
//开始读取流并设置编码方式
new GZipStream(response.GetResponseStream(), CompressionMode.Decompress).CopyTo(_stream, 1024);
}
else
{
//开始读取流并设置编码方式
response.GetResponseStream().CopyTo((Stream)_stream, 1024);
}
//获取Byte
ResponseByte = _stream.ToArray();
}
return ResponseByte;
}
#endregion GetData
#region SetRequest
/// <summary>
/// 为请求准备参数
/// </summary>
///<param name="item">参数列表</param>
private void SetRequest(HttpItem item)
{
// 验证证书
SetCer(item);
if (item.IPEndPoint != null)
{
_IPEndPoint = item.IPEndPoint;
//设置本地的出口ip和端口
request.ServicePoint.BindIPEndPointDelegate = new BindIPEndPoint(BindIPEndPointCallback);
}
//设置Header参数
if (item.Header != null && item.Header.Count > 0)
{
foreach (string key in item.Header.AllKeys)
{
request.Headers.Add(key, item.Header[key]);
}
}
// 设置代理
SetProxy(item);
if (item.ProtocolVersion != null) request.ProtocolVersion = item.ProtocolVersion;
request.ServicePoint.Expect100Continue = item.Expect100Continue;
//请求方式Get或者Post
request.Method = item.Method;
request.Timeout = item.Timeout;
request.KeepAlive = item.KeepAlive;
request.ReadWriteTimeout = item.ReadWriteTimeout;
if (!string.IsNullOrWhiteSpace(item.Host))
{
request.Host = item.Host;
}
if (item.IfModifiedSince != null) request.IfModifiedSince = Convert.ToDateTime(item.IfModifiedSince);
//Accept
request.Accept = item.Accept;
//ContentType返回类型
request.ContentType = item.ContentType;
//UserAgent客户端的访问类型包括浏览器版本和操作系统信息
request.UserAgent = item.UserAgent;
// 编码
encoding = item.Encoding;
//设置安全凭证
request.Credentials = item.ICredentials;
//设置Cookie
SetCookie(item);
//来源地址
request.Referer = item.Referer;
//是否执行跳转功能
request.AllowAutoRedirect = item.Allowautoredirect;
if (item.MaximumAutomaticRedirections > 0)
{
request.MaximumAutomaticRedirections = item.MaximumAutomaticRedirections;
}
//设置Post数据
SetPostData(item);
//设置最大连接
if (item.Connectionlimit > 0) request.ServicePoint.ConnectionLimit = item.Connectionlimit;
}
/// <summary>
/// 设置证书
/// </summary>
/// <param name="item"></param>
private void SetCer(HttpItem item)
{
if (!string.IsNullOrWhiteSpace(item.CerPath))
{
//这一句一定要写在创建连接的前面。使用回调的方法进行证书验证。
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
//初始化对像并设置请求的URL地址
request = (HttpWebRequest)WebRequest.Create(item.URL);
SetCerList(item);
//将证书添加到请求里
request.ClientCertificates.Add(new X509Certificate(item.CerPath));
}
else
{
//初始化对像并设置请求的URL地址
request = (HttpWebRequest)WebRequest.Create(item.URL);
SetCerList(item);
}
}
/// <summary>
/// 设置多个证书
/// </summary>
/// <param name="item"></param>
private void SetCerList(HttpItem item)
{
if (item.ClentCertificates != null && item.ClentCertificates.Count > 0)
{
foreach (X509Certificate c in item.ClentCertificates)
{
request.ClientCertificates.Add(c);
}
}
}
/// <summary>
/// 设置Cookie
/// </summary>
/// <param name="item">Http参数</param>
private void SetCookie(HttpItem item)
{
if (!string.IsNullOrEmpty(item.Cookie)) request.Headers[HttpRequestHeader.Cookie] = item.Cookie;
//设置CookieCollection
if (item.ResultCookieType == ResultCookieType.CookieCollection)
{
request.CookieContainer = new CookieContainer();
if (item.CookieCollection != null && item.CookieCollection.Count > 0)
{
//默认为20个如果超出需要增加长度
if (item.CookieCollection.Count > 20)
{
request.CookieContainer.PerDomainCapacity = item.CookieCollection.Count;
}
request.CookieContainer.Add(item.CookieCollection);
}
}
}
/// <summary>
/// 设置Post数据
/// </summary>
/// <param name="item">Http参数</param>
private void SetPostData(HttpItem item)
{
//验证在得到结果时是否有传入数据
if (!request.Method.Trim().ToLower().Contains("get"))
{
if (item.PostEncoding != null)
{
postencoding = item.PostEncoding;
}
byte[] buffer = null;
//写入Byte类型
if (item.PostDataType == PostDataType.Byte && item.PostdataByte != null && item.PostdataByte.Length > 0)
{
//验证在得到结果时是否有传入数据
buffer = item.PostdataByte;
}//写入文件
else if (item.PostDataType == PostDataType.FilePath && !string.IsNullOrWhiteSpace(item.Postdata))
{
StreamReader r = new StreamReader(item.Postdata, postencoding);
buffer = postencoding.GetBytes(r.ReadToEnd());
r.Close();
} //写入字符串
else if (!string.IsNullOrWhiteSpace(item.Postdata))
{
buffer = postencoding.GetBytes(item.Postdata);
}
if (buffer != null)
{
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, 0, buffer.Length);
}
else
{
request.ContentLength = 0;
}
}
}
/// <summary>
/// 设置代理
/// </summary>
/// <param name="item">参数对象</param>
private void SetProxy(HttpItem item)
{
bool isIeProxy = false;
if (!string.IsNullOrWhiteSpace(item.ProxyIp))
{
isIeProxy = item.ProxyIp.ToLower().Contains("ieproxy");
}
if (!string.IsNullOrWhiteSpace(item.ProxyIp) && !isIeProxy)
{
//设置代理服务器
if (item.ProxyIp.Contains(":"))
{
string[] plist = item.ProxyIp.Split(':');
WebProxy myProxy = new WebProxy(plist[0].Trim(), Convert.ToInt32(plist[1].Trim()));
//建议连接
myProxy.Credentials = new NetworkCredential(item.ProxyUserName, item.ProxyPwd);
//给当前请求对象
request.Proxy = myProxy;
}
else
{
WebProxy myProxy = new WebProxy(item.ProxyIp, false);
//建议连接
myProxy.Credentials = new NetworkCredential(item.ProxyUserName, item.ProxyPwd);
//给当前请求对象
request.Proxy = myProxy;
}
}
else if (isIeProxy)
{
//设置为IE代理
}
else
{
request.Proxy = item.WebProxy;
}
}
#endregion SetRequest
#region private main
/// <summary>
/// 回调验证证书问题
/// </summary>
/// <param name="sender">流对象</param>
/// <param name="certificate">证书</param>
/// <param name="chain">X509Chain</param>
/// <param name="errors">SslPolicyErrors</param>
/// <returns>bool</returns>
private bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{ return true; }
/// <summary>
/// 通过设置这个属性可以在发出连接的时候绑定客户端发出连接所使用的IP地址。
/// </summary>
/// <param name="servicePoint"></param>
/// <param name="remoteEndPoint"></param>
/// <param name="retryCount"></param>
/// <returns></returns>
private IPEndPoint BindIPEndPointCallback(ServicePoint servicePoint, IPEndPoint remoteEndPoint, int retryCount)
{
return _IPEndPoint;//端口号
}
#endregion private main
}
#region public calss
/// <summary>
/// Http请求参考类
/// </summary>
public class HttpItem
{
/// <summary>
/// 请求URL必须填写
/// </summary>
public string URL { get; set; }
private string _Method = "GET";
/// <summary>
/// 请求方式默认为GET方式,当为POST方式时必须设置Postdata的值
/// </summary>
public string Method
{
get { return _Method; }
set { _Method = value; }
}
private int _Timeout = 100000;
/// <summary>
/// 默认请求超时时间
/// </summary>
public int Timeout
{
get { return _Timeout; }
set { _Timeout = value; }
}
private int _ReadWriteTimeout = 30000;
/// <summary>
/// 默认写入Post数据超时间
/// </summary>
public int ReadWriteTimeout
{
get { return _ReadWriteTimeout; }
set { _ReadWriteTimeout = value; }
}
/// <summary>
/// 设置Host的标头信息
/// </summary>
public string Host { get; set; }
private Boolean _KeepAlive = true;
/// <summary>
/// 获取或设置一个值,该值指示是否与 Internet 资源建立持久性连接默认为true。
/// </summary>
public Boolean KeepAlive
{
get { return _KeepAlive; }
set { _KeepAlive = value; }
}
private string _Accept = "text/html, application/xhtml+xml, */*";
/// <summary>
/// 请求标头值 默认为text/html, application/xhtml+xml, */*
/// </summary>
public string Accept
{
get { return _Accept; }
set { _Accept = value; }
}
private string _ContentType = "text/html";
/// <summary>
/// 请求返回类型默认 text/html
/// </summary>
public string ContentType
{
get { return _ContentType; }
set { _ContentType = value; }
}
private string _UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)";
/// <summary>
/// 客户端访问信息默认Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
/// </summary>
public string UserAgent
{
get { return _UserAgent; }
set { _UserAgent = value; }
}
/// <summary>
/// 返回数据编码默认为NUll,可以自动识别,一般为utf-8,gbk,gb2312
/// </summary>
public Encoding Encoding { get; set; }
private PostDataType _PostDataType = PostDataType.String;
/// <summary>
/// Post的数据类型
/// </summary>
public PostDataType PostDataType
{
get { return _PostDataType; }
set { _PostDataType = value; }
}
/// <summary>
/// Post请求时要发送的字符串Post数据
/// </summary>
public string Postdata { get; set; }
/// <summary>
/// Post请求时要发送的Byte类型的Post数据
/// </summary>
public byte[] PostdataByte { get; set; }
/// <summary>
/// Cookie对象集合
/// </summary>
public CookieCollection CookieCollection { get; set; }
/// <summary>
/// 请求时的Cookie
/// </summary>
public string Cookie { get; set; }
/// <summary>
/// 来源地址,上次访问地址
/// </summary>
public string Referer { get; set; }
/// <summary>
/// 证书绝对路径
/// </summary>
public string CerPath { get; set; }
/// <summary>
/// 设置代理对象不想使用IE默认配置就设置为Null而且不要设置ProxyIp
/// </summary>
public WebProxy WebProxy { get; set; }
private Boolean isToLower = false;
/// <summary>
/// 是否设置为全文小写,默认为不转化
/// </summary>
public Boolean IsToLower
{
get { return isToLower; }
set { isToLower = value; }
}
private Boolean allowautoredirect = false;
/// <summary>
/// 支持跳转页面,查询结果将是跳转后的页面,默认是不跳转
/// </summary>
public Boolean Allowautoredirect
{
get { return allowautoredirect; }
set { allowautoredirect = value; }
}
private int connectionlimit = 1024;
/// <summary>
/// 最大连接数
/// </summary>
public int Connectionlimit
{
get { return connectionlimit; }
set { connectionlimit = value; }
}
/// <summary>
/// 代理Proxy 服务器用户名
/// </summary>
public string ProxyUserName { get; set; }
/// <summary>
/// 代理 服务器密码
/// </summary>
public string ProxyPwd { get; set; }
/// <summary>
/// 代理 服务IP,如果要使用IE代理就设置为ieproxy
/// </summary>
public string ProxyIp { get; set; }
private ResultType resulttype = ResultType.String;
/// <summary>
/// 设置返回类型String和Byte
/// </summary>
public ResultType ResultType
{
get { return resulttype; }
set { resulttype = value; }
}
private WebHeaderCollection header = new WebHeaderCollection();
/// <summary>
/// header对象
/// </summary>
public WebHeaderCollection Header
{
get { return header; }
set { header = value; }
}
/// <summary>
// 获取或设置用于请求的 HTTP 版本。返回结果:用于请求的 HTTP 版本。默认为 System.Net.HttpVersion.Version11。
/// </summary>
public Version ProtocolVersion { get; set; }
private Boolean _expect100continue = false;
/// <summary>
/// 获取或设置一个 System.Boolean 值,该值确定是否使用 100-Continue 行为。如果 POST 请求需要 100-Continue 响应,则为 true否则为 false。默认值为 true。
/// </summary>
public Boolean Expect100Continue
{
get { return _expect100continue; }
set { _expect100continue = value; }
}
/// <summary>
/// 设置509证书集合
/// </summary>
public X509CertificateCollection ClentCertificates { get; set; }
/// <summary>
/// 设置或获取Post参数编码,默认的为Default编码
/// </summary>
public Encoding PostEncoding { get; set; }
private ResultCookieType _ResultCookieType = ResultCookieType.String;
/// <summary>
/// Cookie返回类型,默认的是只返回字符串类型
/// </summary>
public ResultCookieType ResultCookieType
{
get { return _ResultCookieType; }
set { _ResultCookieType = value; }
}
private ICredentials _ICredentials = CredentialCache.DefaultCredentials;
/// <summary>
/// 获取或设置请求的身份验证信息。
/// </summary>
public ICredentials ICredentials
{
get { return _ICredentials; }
set { _ICredentials = value; }
}
/// <summary>
/// 设置请求将跟随的重定向的最大数目
/// </summary>
public int MaximumAutomaticRedirections { get; set; }
private DateTime? _IfModifiedSince = null;
/// <summary>
/// 获取和设置IfModifiedSince默认为当前日期和时间
/// </summary>
public DateTime? IfModifiedSince
{
get { return _IfModifiedSince; }
set { _IfModifiedSince = value; }
}
#region ip-port
private IPEndPoint _IPEndPoint = null;
/// <summary>
/// 设置本地的出口ip和端口
/// </summary>]
/// <example>
///item.IPEndPoint = new IPEndPoint(IPAddress.Parse("192.168.1.1"),80);
/// </example>
public IPEndPoint IPEndPoint
{
get { return _IPEndPoint; }
set { _IPEndPoint = value; }
}
#endregion ip-port
private bool _isReset = false;
/// <summary>
/// 是否重置request,response的值默认不重置当设置为True时request,response将被设置为Null
/// </summary>
public bool IsReset
{
get { return _isReset; }
set { _isReset = value; }
}
}
/// <summary>
/// Http返回参数类
/// </summary>
public class HttpResult
{
/// <summary>
/// Http请求返回的Cookie
/// </summary>
public string Cookie { get; set; }
/// <summary>
/// Cookie对象集合
/// </summary>
public CookieCollection CookieCollection { get; set; }
private string _html = string.Empty;
/// <summary>
/// 返回的String类型数据 只有ResultType.String时才返回数据其它情况为空
/// </summary>
public string Html
{
get { return _html; }
set { _html = value; }
}
/// <summary>
/// 返回的Byte数组 只有ResultType.Byte时才返回数据其它情况为空
/// </summary>
public byte[] ResultByte { get; set; }
/// <summary>
/// header对象
/// </summary>
public WebHeaderCollection Header { get; set; }
/// <summary>
/// 返回状态说明
/// </summary>
public string StatusDescription { get; set; }
/// <summary>
/// 返回状态码,默认为OK
/// </summary>
public HttpStatusCode StatusCode { get; set; }
/// <summary>
/// 最后访问的URl
/// </summary>
public string ResponseUri { get; set; }
/// <summary>
/// 获取重定向的URl
/// </summary>
public string RedirectUrl
{
get
{
try
{
if (Header != null && Header.Count > 0)
{
if (Header.AllKeys.Any(k => k.ToLower().Contains("location")))
{
string baseurl = Header["location"].ToString().Trim();
string locationurl = baseurl.ToLower();
if (!string.IsNullOrWhiteSpace(locationurl))
{
bool b = locationurl.StartsWith("http://") || locationurl.StartsWith("https://");
if (!b)
{
baseurl = new Uri(new Uri(ResponseUri), baseurl).AbsoluteUri;
}
}
return baseurl;
}
}
}
catch { }
return string.Empty;
}
}
}
/// <summary>
/// 返回类型
/// </summary>
public enum ResultType
{
/// <summary>
/// 表示只返回字符串 只有Html有数据
/// </summary>
String,
/// <summary>
/// 表示返回字符串和字节流 ResultByte和Html都有数据返回
/// </summary>
Byte
}
/// <summary>
/// Post的数据格式默认为string
/// </summary>
public enum PostDataType
{
/// <summary>
/// 字符串类型这时编码Encoding可不设置
/// </summary>
String,
/// <summary>
/// Byte类型需要设置PostdataByte参数的值编码Encoding可设置为空
/// </summary>
Byte,
/// <summary>
/// 传文件Postdata必须设置为文件的绝对路径必须设置Encoding的值
/// </summary>
FilePath
}
/// <summary>
/// Cookie返回类型
/// </summary>
public enum ResultCookieType
{
/// <summary>
/// 只返回字符串类型的Cookie
/// </summary>
String,
/// <summary>
/// CookieCollection格式的Cookie集合同时也返回String类型的cookie
/// </summary>
CookieCollection
}
#endregion public calss
}

@ -0,0 +1,36 @@
using Mesnac.Action.ChemicalWeighing.InterfaceDocking.DockingEntity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Mesnac.Action.ChemicalWeighing.InterfaceDocking
{
public class HttpResponse
{
public string PostResponse(TankIsDischargedSyncEntity taskIsDisChargedSyncEntity)
{
HttpItem item = new HttpItem()
{
URL = "", //URL 必需项
Method = "post",//URL 可选项 默认为Get
ContentType = "application/json",//返回类型 可选项有默认值
PostDataType = PostDataType.String,
PostEncoding = Encoding.UTF8,
Postdata = taskIsDisChargedSyncEntity.JsonTo(),
ResultType = ResultType.String
};
try
{
HttpResult httpResult = new HttpHelper().GetHtml(item);
return httpResult.Html;
}
catch (Exception ex)
{
string message = $" url:{item.URL} {Environment.NewLine} Data:{item.Postdata} {Environment.NewLine} 异常信息:{ex.Message}";
return ex.Message;
}
}
}
}

@ -1,5 +1,8 @@
using DataBlockHelper;
using DataBlockHelper.DBHelpers;
using HslCommunication;
using log4net;
using log4net.Config;
using Mesnac.Action.Base;
using Mesnac.Action.ChemicalWeighing.FreeDb;
using Mesnac.Action.ChemicalWeighing.LjMaterial;
@ -9,6 +12,7 @@ using Mesnac.Core.Service;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
@ -18,6 +22,10 @@ namespace Mesnac.Action.ChemicalWeighing.ManualControl
public class InitAction : ChemicalWeighingAction, IAction
{
DB2107Helper DB2107;
DB2103Helper DB2103;
List<DbMCControl> McControllist;
OperateResult<byte[]> Read;
@ -61,6 +69,9 @@ namespace Mesnac.Action.ChemicalWeighing.ManualControl
public void Run(RuntimeParameter runtime)
{
DB2107 = new DB2107Helper();
DB2103 = new DB2103Helper();
base.RunIni(runtime); //必须要调用的
@ -141,31 +152,13 @@ namespace Mesnac.Action.ChemicalWeighing.ManualControl
timer.Dispose();
}
Read = PlcConnect.Instance.Read("DB2119.22.0", 2);
WaterActualValue1.MCValue = DB2107.Weight.WScale_3.ActWeight;
content = Read.Content;
WaterActualValue1.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
Read = PlcConnect.Instance.Read("DB2119.2.0", 2);
content = Read.Content;
WaterActualValue2.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
Read = PlcConnect.Instance.Read("DB2119.32.0", 2);
content = Read.Content;
WaterActualValue3.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
Read = PlcConnect.Instance.Read("DB2119.12.0", 2);
content = Read.Content;
WaterActualValue4.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
WaterActualValue2.MCValue = DB2107.Weight.WScale_1.ActWeight;
WaterActualValue3.MCValue = DB2107.Weight.WScale_4.ActWeight;
WaterActualValue4.MCValue = DB2107.Weight.WScale_2.ActWeight;
Read = PlcConnect.Instance.Read("DB2119.24.0", 2);
@ -193,24 +186,14 @@ namespace Mesnac.Action.ChemicalWeighing.ManualControl
Read = PlcConnect.Instance.Read("DB2119.42.0", 2);
content = Read.Content;
SpiralActValue1.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
Read = PlcConnect.Instance.Read("DB2119.64.0", 2);
content = Read.Content;
SpiralActValue2.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
Read = PlcConnect.Instance.Read("DB2119.86.0", 2);
SpiralActValue1.MCValue = DB2103.DM2ASF01.ACT_Speed;
content = Read.Content;
SpiralActValue2.MCValue = DB2103.DM2BSF01.ACT_Speed;
SpiralActValue3.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
SpiralActValue3.MCValue = DB2103.DM2CSF01.ACT_Speed;
SpiralActValue4.MCValue = DB2103.DM2DSF01.ACT_Speed;
Read = PlcConnect.Instance.Read("DB2119.28.0", 1);

@ -1,6 +1,8 @@
using DataBlockHelper;
using Mesnac.Action.Base;
using Mesnac.Action.ChemicalWeighing.FreeDb;
using Mesnac.Action.ChemicalWeighing.InterfaceDocking;
using Mesnac.Action.ChemicalWeighing.InterfaceDocking.DockingEntity;
using Mesnac.Basic;
using Mesnac.Controls.Base;
using Mesnac.Controls.Default;
@ -108,7 +110,16 @@ namespace Mesnac.Action.ChemicalWeighing.ManualControl
IBaseControl PointSpeedSpiralValue2 = GetBaseControl("PointSpeedSpiralValue2");
IBaseControl PointSpeedSpiralValue3 = GetBaseControl("PointSpeedSpiralValue3");
IBaseControl PointSpeedSpiralValue4 = GetBaseControl("PointSpeedSpiralValue4");
IBaseControl WetRequest1 = GetBaseControl("WetRequest1");
IBaseControl WetRequest2 = GetBaseControl("WetRequest2");
IBaseControl WetRequest3 = GetBaseControl("WetRequest3");
IBaseControl WetRequest4 = GetBaseControl("WetRequest4");
IBaseControl WetRequest5 = GetBaseControl("WetRequest5");
IBaseControl WetRequest6 = GetBaseControl("WetRequest6");
IBaseControl WetRequest7 = GetBaseControl("WetRequest7");
IBaseControl WetRequest8 = GetBaseControl("WetRequest8");
#endregion
@ -879,6 +890,169 @@ namespace Mesnac.Action.ChemicalWeighing.ManualControl
//MessageBox.Show("螺旋4已停止");
}
if (WetRequest1 == runtime.Sender)
{
if (MessageBox.Show("糊化机1确认下发请求", "下发确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
string id = System.Guid.NewGuid().ToString();
TankIsDischargedSyncEntity tankIsDischargedSyncEntity = new TankIsDischargedSyncEntity()
{
reqCode = id,
reqTime = DateTime.Now,
deviceNo = "1",
state = "1"
};
HttpResponse httpResponse = new HttpResponse();
ManualLogControl("糊化机8下发请求");
string returnTest = httpResponse.PostResponse(tankIsDischargedSyncEntity);
ManualLogControl("糊化机8返回数据 " + returnTest);
}
if (WetRequest2 == runtime.Sender)
{
if (MessageBox.Show("糊化机2确认下发请求", "下发确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
string id = System.Guid.NewGuid().ToString();
TankIsDischargedSyncEntity tankIsDischargedSyncEntity = new TankIsDischargedSyncEntity()
{
reqCode = id,
reqTime = DateTime.Now,
deviceNo = "2",
state = "1"
};
HttpResponse httpResponse = new HttpResponse();
ManualLogControl("糊化机8下发请求");
string returnTest = httpResponse.PostResponse(tankIsDischargedSyncEntity);
ManualLogControl("糊化机8返回数据 " + returnTest);
}
if (WetRequest3 == runtime.Sender)
{
if (MessageBox.Show("糊化机3确认下发请求", "下发确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
string id = System.Guid.NewGuid().ToString();
TankIsDischargedSyncEntity tankIsDischargedSyncEntity = new TankIsDischargedSyncEntity()
{
reqCode = id,
reqTime = DateTime.Now,
deviceNo = "3",
state = "1"
};
HttpResponse httpResponse = new HttpResponse();
ManualLogControl("糊化机8下发请求");
string returnTest = httpResponse.PostResponse(tankIsDischargedSyncEntity);
ManualLogControl("糊化机8返回数据 " + returnTest);
}
if (WetRequest4 == runtime.Sender)
{
if (MessageBox.Show("糊化机4确认下发请求", "下发确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
string id = System.Guid.NewGuid().ToString();
TankIsDischargedSyncEntity tankIsDischargedSyncEntity = new TankIsDischargedSyncEntity()
{
reqCode = id,
reqTime = DateTime.Now,
deviceNo = "4",
state = "1"
};
HttpResponse httpResponse = new HttpResponse();
ManualLogControl("糊化机8下发请求");
string returnTest = httpResponse.PostResponse(tankIsDischargedSyncEntity);
ManualLogControl("糊化机8返回数据 " + returnTest);
}
if (WetRequest5 == runtime.Sender)
{
if (MessageBox.Show("糊化机5确认下发请求", "下发确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
string id = System.Guid.NewGuid().ToString();
TankIsDischargedSyncEntity tankIsDischargedSyncEntity = new TankIsDischargedSyncEntity()
{
reqCode = id,
reqTime = DateTime.Now,
deviceNo = "5",
state = "1"
};
HttpResponse httpResponse = new HttpResponse();
ManualLogControl("糊化机8下发请求");
string returnTest = httpResponse.PostResponse(tankIsDischargedSyncEntity);
ManualLogControl("糊化机8返回数据 " + returnTest);
}
if (WetRequest6 == runtime.Sender)
{
if (MessageBox.Show("糊化机6确认下发请求", "下发确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
string id = System.Guid.NewGuid().ToString();
TankIsDischargedSyncEntity tankIsDischargedSyncEntity = new TankIsDischargedSyncEntity()
{
reqCode = id,
reqTime = DateTime.Now,
deviceNo = "6",
state = "1"
};
HttpResponse httpResponse = new HttpResponse();
ManualLogControl("糊化机8下发请求");
string returnTest = httpResponse.PostResponse(tankIsDischargedSyncEntity);
ManualLogControl("糊化机8返回数据 " + returnTest);
}
if (WetRequest7 == runtime.Sender)
{
if (MessageBox.Show("糊化机7确认下发请求", "下发确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
string id = System.Guid.NewGuid().ToString();
TankIsDischargedSyncEntity tankIsDischargedSyncEntity = new TankIsDischargedSyncEntity()
{
reqCode = id,
reqTime = DateTime.Now,
deviceNo = "7",
state = "1"
};
HttpResponse httpResponse = new HttpResponse();
ManualLogControl("糊化机8下发请求");
string returnTest = httpResponse.PostResponse(tankIsDischargedSyncEntity);
ManualLogControl("糊化机8返回数据 " + returnTest);
}
if (WetRequest8 == runtime.Sender)
{
if (MessageBox.Show("糊化机8确认下发请求", "下发确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
string id = System.Guid.NewGuid().ToString();
TankIsDischargedSyncEntity tankIsDischargedSyncEntity = new TankIsDischargedSyncEntity()
{
reqCode = id,
reqTime = DateTime.Now,
deviceNo = "8",
state = "1"
};
HttpResponse httpResponse = new HttpResponse();
ManualLogControl("糊化机8下发请求");
string returnTest = httpResponse.PostResponse(tankIsDischargedSyncEntity);
ManualLogControl("糊化机8返回数据 " + returnTest);
}
#endregion

@ -260,6 +260,13 @@
<Compile Include="FreeDb\DBEntity\LjFormulaEntity.cs" />
<Compile Include="FreeDb\DBEntity\LjPlanningEntity.cs" />
<Compile Include="FreeDb\FreeSqlUnit.cs" />
<Compile Include="InterfaceDocking\DockingEntity\JsonReturnEntity.cs" />
<Compile Include="InterfaceDocking\DockingEntity\MaterialPlanSyncEntity.cs" />
<Compile Include="InterfaceDocking\DockingEntity\TankDeviceStateSyncEntity.cs" />
<Compile Include="InterfaceDocking\DockingEntity\TankIsDischargedSyncEntity.cs" />
<Compile Include="InterfaceDocking\HttpHelper.cs" />
<Compile Include="InterfaceDocking\HttpResponse.cs" />
<Compile Include="InterfaceDocking\MiniJson.cs" />
<Compile Include="LjAction\InitDbAction.cs" />
<Compile Include="LjDevice\DeviceHelp.cs" />
<Compile Include="LjDevice\DeviceModel.cs" />

@ -277,8 +277,20 @@ namespace Mesnac.Action.ChemicalWeighing.Report.DeviceDetail2Report
timer1.Dispose();
}
DataTable AlarmTable = DBHelp.GetTable(@"select t2.Alarm_ID, t2.Alarm_Other_Info,t2.Alarm_Block,t2.Alarm_Word,t2.Alarm_Bit,t1.Alarm_OccurTime from LR_Alarmlog t1
left join Pmt_Alarm t2 on t1.Alarm_ID=t2.Alarm_ID where t1.Alarm_Status=1");
DataTable AlarmTable = DBHelp.GetTable(@"SELECT
t2.Alarm_ID,
t2.Alarm_Other_Info,
t2.Alarm_Block,
t2.Alarm_Word,
t2.Alarm_Bit,
t1.Alarm_OccurTime
FROM
LR_Alarmlog t1
LEFT JOIN Pmt_Alarm t2 ON t1.Alarm_ID = t2.Alarm_ID
WHERE
t1.Alarm_Status = 1
ORDER BY
t1.Alarm_OccurTime desc");
if (this.AlarmForm != null && this.AlarmForm.BaseControl != null)
{

@ -78,7 +78,7 @@
</layout>
</appender>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\" />
<file value="D:\App_Log_Edit\" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd&quot;.txt&quot;" />

@ -1,5 +1,213 @@
<Object type="Mesnac.Gui.Common.FrmRunTemplate, Mesnac.Gui.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="ManualWaterControl" children="Controls">
<Object type="System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="GroupBox10" children="Controls">
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton21" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="MCKey">WetRequest8</Property>
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">Query</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">False</Property>
<Property name="Format">
</Property>
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="Text">湿混机8发送下料请求</Property>
<Property name="Location">6, 339</Property>
<Property name="Name">MCButton21</Property>
<Property name="Size">148, 40</Property>
<Property name="TabIndex">7</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton20" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="MCKey">WetRequest7</Property>
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">Query</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">False</Property>
<Property name="Format">
</Property>
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="Text">湿混机7发送下料请求</Property>
<Property name="Location">6, 293</Property>
<Property name="Name">MCButton20</Property>
<Property name="Size">148, 40</Property>
<Property name="TabIndex">6</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton19" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="MCKey">WetRequest6</Property>
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">Query</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">False</Property>
<Property name="Format">
</Property>
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="Text">湿混机6发送下料请求</Property>
<Property name="Location">6, 247</Property>
<Property name="Name">MCButton19</Property>
<Property name="Size">148, 40</Property>
<Property name="TabIndex">5</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton18" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="MCKey">WetRequest5</Property>
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">Query</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">False</Property>
<Property name="Format">
</Property>
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="Text">湿混机5发送下料请求</Property>
<Property name="Location">6, 201</Property>
<Property name="Name">MCButton18</Property>
<Property name="Size">148, 40</Property>
<Property name="TabIndex">4</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton17" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="MCKey">WetRequest4</Property>
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">Query</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">False</Property>
<Property name="Format">
</Property>
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="Text">湿混机4发送下料请求</Property>
<Property name="Location">6, 155</Property>
<Property name="Name">MCButton17</Property>
<Property name="Size">148, 40</Property>
<Property name="TabIndex">3</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton16" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="MCKey">WetRequest3</Property>
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">Query</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">False</Property>
<Property name="Format">
</Property>
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="Text">湿混机3发送下料请求</Property>
<Property name="Location">6, 109</Property>
<Property name="Name">MCButton16</Property>
<Property name="Size">148, 40</Property>
<Property name="TabIndex">2</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton15" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="MCKey">WetRequest2</Property>
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">Query</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">False</Property>
<Property name="Format">
</Property>
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="Text">湿混机2发送下料请求</Property>
<Property name="Location">6, 63</Property>
<Property name="Name">MCButton15</Property>
<Property name="Size">148, 40</Property>
<Property name="TabIndex">1</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton14" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="MCKey">WetRequest1</Property>
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">Query</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">False</Property>
<Property name="Format">
</Property>
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="Text">湿混机1发送下料请求</Property>
<Property name="Location">6, 17</Property>
<Property name="Name">MCButton14</Property>
<Property name="Size">148, 40</Property>
<Property name="TabIndex">0</Property>
</Object>
<Property name="TabStop">False</Property>
<Property name="Text">下料请求发送</Property>
<Property name="Location">696, 12</Property>
<Property name="Name">GroupBox10</Property>
<Property name="Size">160, 387</Property>
<Property name="TabIndex">28</Property>
</Object>
<Object type="System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="GroupBox9" children="Controls">
<Object type="Mesnac.Controls.Default.MCDataGridView, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCDataGridView3" children="Controls">
<Property name="DisplayAllColumn">False</Property>
@ -30,12 +238,12 @@
<Property name="MultiSelect">False</Property>
<Property name="Location">3, 17</Property>
<Property name="Name">MCDataGridView3</Property>
<Property name="Size">357, 751</Property>
<Property name="Size">357, 745</Property>
<Property name="TabIndex">2</Property>
</Object>
<Property name="TabStop">False</Property>
<Property name="Text">操作日志</Property>
<Property name="Location">696, 12</Property>
<Property name="Location">862, 12</Property>
<Property name="Name">GroupBox9</Property>
<Property name="Size">366, 771</Property>
<Property name="TabIndex">27</Property>
@ -469,7 +677,7 @@
</Object>
<Property name="TabStop">False</Property>
<Property name="Text">湿混机螺旋2</Property>
<Property name="Location">183, 443</Property>
<Property name="Location">184, 443</Property>
<Property name="Name">GroupBox6</Property>
<Property name="Size">165, 340</Property>
<Property name="TabIndex">25</Property>
@ -1771,7 +1979,7 @@
</Object>
<Property name="TabStop">False</Property>
<Property name="Text">湿混机螺旋1</Property>
<Property name="Location">12, 443</Property>
<Property name="Location">13, 443</Property>
<Property name="Name">GroupBox5</Property>
<Property name="Size">165, 340</Property>
<Property name="TabIndex">15</Property>
@ -3282,7 +3490,7 @@
<Property name="MCPurview">False</Property>
<Property name="AllowOriginalSizeShow">False</Property>
<Property name="BackColor">Control</Property>
<Property name="Size">1090, 832</Property>
<Property name="Size">1506, 832</Property>
<Property name="StartPosition">WindowsDefaultLocation</Property>
<Property name="Text">手动控制</Property>
<Property name="WindowState">Normal</Property>

@ -69,7 +69,7 @@
</layout>
</appender>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\" />
<file value="D:\App_Log_Run\" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd&quot;.txt&quot;" />

Loading…
Cancel
Save