Commit dd06af9a 张东亮

20221215

1 个父辈 21efea91
正在显示 57 个修改的文件 包含 712 行增加27 行删除
......@@ -11,8 +11,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoadCSVLibrary", "source\Lo
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarriageClient", "source\CarriageClient\CarriageClient.csproj", "{0D2542F5-DD62-4352-82D0-383D9A045E74}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dolen", "..\..\..\..\Projects\CSharp-Workspace\Dolen\Dolen\Dolen.csproj", "{1D8684A2-5358-4F9C-9B42-9794F8F4B6B6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JAKA", "source\JAKA\JAKA.csproj", "{B702AB04-BB76-491F-812A-603298D08FBF}"
EndProject
Global
......@@ -37,10 +35,6 @@ Global
{0D2542F5-DD62-4352-82D0-383D9A045E74}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0D2542F5-DD62-4352-82D0-383D9A045E74}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0D2542F5-DD62-4352-82D0-383D9A045E74}.Release|Any CPU.Build.0 = Release|Any CPU
{1D8684A2-5358-4F9C-9B42-9794F8F4B6B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1D8684A2-5358-4F9C-9B42-9794F8F4B6B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1D8684A2-5358-4F9C-9B42-9794F8F4B6B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1D8684A2-5358-4F9C-9B42-9794F8F4B6B6}.Release|Any CPU.Build.0 = Release|Any CPU
{B702AB04-BB76-491F-812A-603298D08FBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B702AB04-BB76-491F-812A-603298D08FBF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B702AB04-BB76-491F-812A-603298D08FBF}.Release|Any CPU.ActiveCfg = Release|Any CPU
......
......@@ -288,7 +288,7 @@ namespace OnlineStore.DeviceLibrary
case RunStatus.Runing:
if ((isInSuddenDown.Equals(false) && isNoAirpressure_Check.Equals(false)))
{
//清理超时异常
//清理异常
IOTimeOutProcess();
}
break;
......
......@@ -399,6 +399,7 @@ namespace OnlineStore.DeviceLibrary
getPosIdMsg = result.Msg;
Thread.Sleep(ms);
LogUtil.error(Name + "【" + pos.barcode + "】第[" + count + "]次 " + MoveInfo.SLog + " 结果【" + result.Result + "】,等待" + ms + "后重新获取");
continue;
}
else if (!result.Result.Equals(0))
{
......
......@@ -58,20 +58,18 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.IsStep(StepEnum.Outlet_02_CheckTray))
{
if (TrayCheck())
//if (TrayCheck())
{
NextMoveStep(StepEnum.Outlet_03_CheckAllowFeedOut, "有料盘,准备送走");
AddWaitAllowFeedOut(true);
AddWaitTime(2000);
MoveInfo.OneWaitCanEndStep = true;
}
else//无料盘
{
NextMoveStep(StepEnum.Outlet_05_JackUp, "无料盘,顶升抬起,准备料盘放入");
JackUp(true);
if (BufferDataManager.TrayInOutletInfo != null)
BufferDataManager.TrayInOutletInfo = null;
}
//else//无料盘
//{
// NextMoveStep(StepEnum.Outlet_05_JackUp, "无料盘,顶升抬起,准备料盘放入");
// JackUp(true);
// if (BufferDataManager.TrayInOutletInfo != null)
// BufferDataManager.TrayInOutletInfo = null;
//}
}
else if (MoveInfo.IsStep(StepEnum.Outlet_03_CheckAllowFeedOut))
{
......@@ -79,7 +77,7 @@ namespace OnlineStore.DeviceLibrary
OutletRun(true);
AddWaitTrayCheck1(false);
AddWaitTrayCheck2(false);
//AddWaitAllowFeedOut(false);
AddWaitAllowFeedOut(false);
}
else if (MoveInfo.IsStep(StepEnum.Outlet_04_WaitTrayLeave))
{
......
......@@ -214,7 +214,7 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.EndMove();
runStatus = RunStatus.Runing;
BufferDataManager.TrayInRobotInfo=null;
BufferDataManager.TrayInRobotInfo = null;
}
else
{
......@@ -438,6 +438,7 @@ namespace OnlineStore.DeviceLibrary
#region NG
bool preNgSig = false;
bool curNgSig = false;
AlarmType preAlram = AlarmType.None;
void NGBoxProcess()
{
preNgSig = curNgSig;
......@@ -449,10 +450,23 @@ namespace OnlineStore.DeviceLibrary
if (NGBoxAlarm())
{
SetWarnMsg($"NG箱中的料盘需要处理,数量大于{validityCnt}或者料盘放置时间大于{validityPeriod}分钟");
if (alarmType <= AlarmType.AxisAlarm)
{
preAlram = alarmType;
Alarm(AlarmType.NGBoxWarn);
}
}
else
{
ClearSpecifiedAlarm($"NG箱中的料盘需要处理,数量大于");
if (isInSuddenDown || isNoAirpressure_Check)
{
return;
}
if (alarmType.Equals(AlarmType.NGBoxWarn))
{
alarmType = preAlram;
}
}
}
#endregion
......
......@@ -84,6 +84,7 @@ namespace OnlineStore.DeviceLibrary
if (!bean.RobotData.Online)
{
SetWarnMsg("无法读取机器人状态,因机器人离线");
Alarm(AlarmType.RobotError);
robotOnline = false;
return false;
}
......
......@@ -405,6 +405,10 @@ namespace OnlineStore.DeviceLibrary
/// 收到急停
/// </summary>
SuddenStop = 10000,
/// <summary>
/// 机器人报警
/// </summary>
RobotError=20000,
NGBoxWarn=30000
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Dolen.Agv
{
class Client
{
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Dolen.Agv
{
/// <summary>
/// 客户端的动作
/// </summary>
public enum ClientAction : byte
{
/// <summary>
/// 没有动作
/// </summary>
None,
#region 服务器发送
/// <summary>
/// 到达线体(服务端)
/// </summary>
Arrive,
/// <summary>
/// 小车准备好(服务端)
/// </summary>
Ready,
/// <summary>
/// 料架请求进入线体(服务端)
/// </summary>
ReadyEnter,
/// <summary>
/// 料架正在进入线体(服务端)
/// </summary>
Entering,
/// <summary>
/// 料架请求离开线体(服务端)
/// </summary>
ReadyLeave,
/// <summary>
/// 料架正在离开线体(服务端)
/// </summary>
Leaving,
/// <summary>
/// 完成进入/离开(服务端)
/// </summary>
Complete,
#endregion
#region 客户端
/// <summary>
/// 线体需要流入料架(客户端)
/// </summary>
NeedEnter,
/// <summary>
/// 线体需要流出料架(客户端)
/// </summary>
NeedLeave,
/// <summary>
/// 线体可以进入料架/线体可以流出料架(客户端)
/// </summary>
NeedEnterLeave,
/// <summary>
/// 允许料架进入线体(客户端)
/// </summary>
MayEnter,
/// <summary>
/// 允许料架流出线体(客户端)
/// </summary>
MayLeave,
/// <summary>
/// 料架进入线体完成(客户端)
/// </summary>
FinishEnter,
/// <summary>
/// 料架流出线体完成(客户端)
/// </summary>
FinishLeave,
/// <summary>
/// 不允许料架进入线体(客户端)
/// </summary>
MayNotEnter,
/// <summary>
/// 不允许料架流出线体(客户端)
/// </summary>
MayNotLeave,
#endregion
}
/// <summary>
/// 客户端的优先级
/// </summary>
public enum ClientLevel : byte
{
None,
/// <summary>
/// 低
/// </summary>
Low,
/// <summary>
/// 中等
/// </summary>
Middle,
/// <summary>
/// 高
/// </summary>
High
}
/// <summary>
/// 客户端的料架类型
/// </summary>
public enum ClientShelf : byte
{
/// <summary>
/// 没有架子
/// </summary>
None,
/// <summary>
/// 空架子
/// </summary>
Empty,
/// <summary>
/// 满架子
/// </summary>
Full,
/// <summary>
/// 空的料串
/// </summary>
EmptyString,
/// <summary>
/// 满料串
/// </summary>
FullString,
/// <summary>
/// 空料架
/// </summary>
EmptyShelf,
/// <summary>
/// 满料架
/// </summary>
FullShelf,
/// <summary>
/// 空包装料架
/// </summary>
EmptyPack,
/// <summary>
/// 满包装料架
/// </summary>
FullPack,
}
/// <summary>
/// 客户端类型
/// </summary>
public enum ClientType : byte
{
/// <summary>
/// 无
/// </summary>
None,
/// <summary>
/// 紧急料线体
/// </summary>
Urgent,
/// <summary>
/// 包装料线体
/// </summary>
Pack,
/// <summary>
/// 分盘料线体
/// </summary>
Cut,
/// <summary>
/// 混合料线体
/// </summary>
Mix
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Dolen.Agv
{
/// <summary>
/// 客户端节点
/// </summary>
public class ClientNode
{
/// <summary>
/// 编号
/// </summary>
public int ID { get; private set; }
/// <summary>
/// IP地址
/// </summary>
public string IP { get; private set; }
/// <summary>
/// 名称
/// </summary>
public string Name { get; private set; }
/// <summary>
/// 别名
/// </summary>
public string AliceName { get; set; } = "";
/// <summary>
/// 料架号
/// </summary>
public string RFID { set; get; } = "";
/// <summary>
/// 备注
/// </summary>
public string Remark { set; get; } = "";
/// <summary>
/// 在线状态
/// </summary>
public bool Online { get; private set; } = false;
/// <summary>
/// 是否开启
/// </summary>
public bool Enabled { private set; get; }
/// <summary>
/// 动作
/// </summary>
public ClientAction Action { set; get; } = ClientAction.None;
/// <summary>
/// 优先级
/// </summary>
public ClientLevel Level { set; get; } = ClientLevel.None;
/// <summary>
/// 客户端类型
/// </summary>
public ClientType Type {private set; get; } = ClientType.None;
/// <summary>
/// 料架类型
/// </summary>
public ClientShelf Shelf { private set; get; } = ClientShelf.None;
public ClientNode(int id,string ip,string name,bool enabled=false,ClientType clientType = ClientType.None)
{
ID = id;
IP = ip;
Name = name;
AliceName = name;
Enabled = enabled;
Type = clientType;
}
/// <summary>
/// 修改节点状态
/// </summary>
/// <param name="action">动作</param>
/// <param name="rfid">rfid</param>
/// <param name="clientShelf">料架类型</param>
/// <param name="level">紧急程度</param>
public void ChangeState(ClientAction action, string rfid = "",ClientShelf clientShelf = ClientShelf.None,ClientLevel level= ClientLevel.None)
{
Action = action;
RFID = rfid;
Level = level;
}
/// <summary>
/// 所有属性的文本形式
/// </summary>
/// <returns></returns>
public string ToText()
{
System.Reflection.PropertyInfo[] info = this.GetType().GetProperties();
string[] arr = new string[info.Length];
for (int i = 0; i < info.Length; i++)
arr[i] = info[i].Name + "=" + info[i].GetValue(this).ToString();
return string.Join(",", arr);
}
public override bool Equals(object obj)
{
if (obj is ClientNode)
{
ClientNode node = (ClientNode)obj;
if (ID.Equals(node.ID) && RFID.Equals(node.RFID) && Remark.Equals(node.Remark) &&
Action.Equals(node.Action) && Level.Equals(node.Level) && Type.Equals(node.Type) &&
Shelf.Equals(node.Shelf))
return true;
else
return false;
}
return false;
}
///// <summary>
///// 拷贝一个新的实例
///// </summary>
///// <returns></returns>
//public Node ToCopy()
//{
// Node node = new Node();
// System.Reflection.PropertyInfo[] info1 = node.GetType().GetProperties();
// System.Reflection.PropertyInfo[] info2 = this.GetType().GetProperties();
// for (int i = 0; i < info1.Length; i++)
// info1[i].SetValue(node, info2[i].GetValue(this));
// return node;
//}
/// <summary>
/// 节点离线
/// </summary>
public void Offline()
{
RFID = "";
Remark = "";
Action = ClientAction.None;
Level = ClientLevel.None;
Shelf = ClientShelf.None;
Online = false;
}
}
}
文件属性发生变化
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</configSections>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
<provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6"/>
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite.EF6"/>
<add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6"/>
<remove invariant="System.Data.SQLite"/><add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite"/></DbProviderFactories>
</system.data>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Dolen.Communication.TCP
{
public class TCPClient
{
Thread threadRecv = null; // 负责接收消息的线程;
Socket clientSocket = null;
int buffLength = 1024;// 定义一个1M的缓存区;
log4net.ILog Log;
private bool loop = false;
/// <summary>
/// 消息变化委托
/// </summary>
/// <param name="msg">服务端发送的消息</param>
public delegate void MsgEventHandler(string msg);
public delegate void ConnectedStateEventHandler(bool state);
/// <summary>
/// 消息事件
/// </summary>
public event MsgEventHandler MsgEvent;
public event ConnectedStateEventHandler ConnectedStateEvent;
/// <summary>
/// 是否打开调试
/// </summary>
public bool IsDebug { get; set; } = false;
/// <summary>
/// 服务端信息
/// </summary>
public string ServerInfo { get
{
return string.Format("{0}:{1}",ip,port.ToString());
} }
/// <summary>
/// 服务端IP
/// </summary>
private string ip;
/// <summary>
/// 服务端端口
/// </summary>
private int port;
private bool connectState = false;
/// <summary>
/// 连接状态
/// </summary>
public bool Connected { get { if (clientSocket == null) return false; else return connectState && clientSocket.Connected; } }
public TCPClient(string ip = "127.0.0.1", int port = 8888, string logName = "TCPClient")
{
Log = log4net.LogManager.GetLogger(logName);
this.ip = ip;
this.port = port;
}
/// <summary>
/// 开启服务
/// </summary>
public void Connect()
{
loop = true;
IPAddress address = IPAddress.Parse(ip);
// 创建包含ip和端口号的网络节点对象;
IPEndPoint endPoint = new IPEndPoint(address, port);
try
{
clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
clientSocket.Connect(endPoint);
threadRecv = new Thread(RecMsg);
threadRecv.Start(clientSocket);
connectState = true;
Log.Info(string.Format("客户端[{0}]连接服务端[{1}]成功", clientSocket.RemoteEndPoint.ToString(), ServerInfo));
}
catch(Exception ex)
{
connectState = false;
Log.Error(string.Format("客户端[{0}]连接服务端[{1}]失败", clientSocket.RemoteEndPoint.ToString(), ServerInfo),ex);
}
ConnectedStateEvent?.Invoke(connectState && clientSocket.Connected);
}
public void DisConnect()
{
if(clientSocket.Connected)
{
loop = false;
try
{
string client = clientSocket.RemoteEndPoint.ToString();
connectState = false;
threadRecv.Abort();
threadRecv = null;
clientSocket.Close();
Log.Info(string.Format("客户端[{0}]断开服务端[{1}]成功", client, ServerInfo));
}
catch(Exception e)
{
Log.Error(string.Format("客户端[{0}]断开服务端[{1}]成功", clientSocket.RemoteEndPoint.ToString(), ServerInfo),e);
}
ConnectedStateEvent?.Invoke(connectState && clientSocket.Connected);
}
}
void RecMsg(object sokConnectionparn)
{
Socket sokClient = sokConnectionparn as Socket;
while (loop)
{
// 定义一个缓存区;
byte[] arrMsgRec = new byte[buffLength];
// 将接收到的数据存入到输入 arrMsgRec中;
int length = -1;
if (sokClient.Poll(-1, SelectMode.SelectRead))
{
try
{
length = sokClient.Receive(arrMsgRec); // 接收数据,并返回数据的长度;
if (length == 0)//连接正常断开
{
connectState = false;
Log.Info(string.Format("服务端[{1}]断开与客户端[{0}]的连接", clientSocket.RemoteEndPoint.ToString(), ServerInfo));
ConnectedStateEvent?.Invoke(connectState && clientSocket.Connected);
break;
}
}
catch (SocketException se)
{
connectState = false;
Log.Error(string.Format("客户端[{0}]接收服务端[{1}]的消息出现异常", clientSocket.RemoteEndPoint.ToString(), ServerInfo), se);
ConnectedStateEvent?.Invoke(connectState && clientSocket.Connected);
break;
}
catch (Exception e)
{
connectState = false;
Log.Error(string.Format("客户端[{0}]接收服务端[{1}]的消息出现异常", clientSocket.RemoteEndPoint.ToString(), ServerInfo), e);
ConnectedStateEvent?.Invoke(connectState && clientSocket.Connected);
break;
}
}
if (length > 0)
{
string strMsg = System.Text.Encoding.UTF8.GetString(arrMsgRec, 0, length);// 将接收到的字节数据转化成字符串;
if (IsDebug)
Log.Debug(string.Format("客户端[{0}]收到服务端[{1}]的消息:{2}[{3}]", clientSocket.RemoteEndPoint.ToString(), ServerInfo, strMsg, string.Join(" ", arrMsgRec)));
Log.Info(string.Format("客户端[{0}]收到服务端[{1}]的消息:{2}", clientSocket.RemoteEndPoint.ToString(), ServerInfo, strMsg));
MsgEvent?.Invoke(strMsg);
}
}
}
/// <summary>
/// 向客户端发送信息
/// </summary>
public void SendMsg(string txt)
{
try
{
byte[] arrMsg = System.Text.Encoding.UTF8.GetBytes(txt); // 将要发送的字符串转换成Utf-8字节数组;
// arrSendMsg[0] = 0; // 表示发送的是消息数据
//Buffer.BlockCopy(arrMsg, 0, arrSendMsg, 1, arrMsg.Length);
if (Connected)
{
int len = clientSocket.Send(arrMsg);
Log.Info(string.Format("客户端[{0}]向服务端[{1}]发送消息:{2}[{3} Bytes]", clientSocket.RemoteEndPoint.ToString(), ServerInfo, txt, len));
}
else
{
Log.Info(string.Format("客户端[{0}]向服务端[{1}]发送消息失败,网络已断开:{2}", clientSocket.RemoteEndPoint.ToString(), ServerInfo, txt));
}
}
catch (Exception e)
{
connectState = false;
Log.Error(string.Format("客户端[{0}]向服务端[{1}]发送消息异常:{2}", clientSocket.RemoteEndPoint.ToString(), ServerInfo, txt), e);
ConnectedStateEvent?.Invoke(connectState && clientSocket.Connected);
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.props" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" />
<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>{1D8684A2-5358-4F9C-9B42-9794F8F4B6B6}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Dolen</RootNamespace>
<AssemblyName>Dolen</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<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>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</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>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference>
<Reference Include="log4net">
<HintPath>dll\log4net.dll</HintPath>
</Reference>
<Reference Include="MySql.Data">
<HintPath>dll\MySql.Data.8.0.22\lib\net452\MySql.Data.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Core" />
<Reference Include="System.Data.SQLite, Version=1.0.115.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.0\lib\net46\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Data.SQLite.EF6, Version=1.0.115.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\System.Data.SQLite.EF6.1.0.115.0\lib\net46\System.Data.SQLite.EF6.dll</HintPath>
</Reference>
<Reference Include="System.Data.SQLite.Linq, Version=1.0.115.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\System.Data.SQLite.Linq.1.0.115.0\lib\net46\System.Data.SQLite.Linq.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Communication\TCP\TCPClient.cs" />
<Compile Include="Communication\TCP\TCPServer.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup />
<ItemGroup>
<None Include="App.config" />
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.props'))" />
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" />
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
</Target>
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
</Project>
\ No newline at end of file
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("Dolen")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Dolen")]
[assembly: AssemblyCopyright("Copyright © 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("1d8684a2-5358-4f9c-9b42-9794f8f4b6b6")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
文件属性发生变化
此文件的差异太大,无法显示。
此文件的差异太大,无法显示。
此文件的差异太大,无法显示。
此文件类型无法预览
文件属性发生变化
此文件类型无法预览
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EntityFramework" version="6.4.4" targetFramework="net472" />
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.115.0" targetFramework="net472" />
<package id="System.Data.SQLite" version="1.0.115.0" targetFramework="net472" />
<package id="System.Data.SQLite.Core" version="1.0.115.0" targetFramework="net472" />
<package id="System.Data.SQLite.EF6" version="1.0.115.0" targetFramework="net472" />
<package id="System.Data.SQLite.Linq" version="1.0.115.0" targetFramework="net472" />
</packages>
\ No newline at end of file
......@@ -56,6 +56,7 @@
<Compile Include="JAKATYPE.cs" />
<Compile Include="RobotData.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="TCPServer.cs" />
<Compile Include="UCJoint.cs">
<SubType>UserControl</SubType>
</Compile>
......@@ -97,11 +98,5 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\..\..\Projects\CSharp-Workspace\Dolen\Dolen\Dolen.csproj">
<Project>{1D8684A2-5358-4F9C-9B42-9794F8F4B6B6}</Project>
<Name>Dolen</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
using Dolen.Communication.TCP;

using Dolen.Communication.TCP;
using System;
using System.Collections.Generic;
namespace JAKA
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!