Commit f09cd878 张东亮

添加agv对接接口

1 个父辈 b99a1c3f
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<configuration> <configuration>
<configSections> <configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections> </configSections>
<appSettings> <appSettings>
<!--是否开机自动启动料仓--> <!--是否开机自动启动料仓-->
<add key="App_AutoRun" value="1"/> <add key="App_AutoRun" value="1" />
<add key="CameraName" value="GigE:acA3800-10gc (23124327)#"/> <add key="CameraName" value="GigE:acA3800-10gc (23124327)#" />
<add key="Config_Pwd" value="123456"/> <add key="Config_Pwd" value="123456" />
<add key="CodeType" value="QR Code#Data Matrix ECC 200#barcode"/> <add key="CodeType" value="QR Code#Data Matrix ECC 200#barcode" />
<!--二维码参数文件所在路径,文件名与二维码类型名一样--> <!--二维码参数文件所在路径,文件名与二维码类型名一样-->
<add key="CodeParamPath" value="Conifg\"/> <add key="CodeParamPath" value="Conifg\" />
<add key="CodeCount" value="3"/> <add key="CodeCount" value="3" />
<!--共享文件夹配置--> <!--共享文件夹配置-->
<add key ="SMB_Path" value =""/> <add key="SMB_Path" value="" />
<add key ="SMB_UserName" value =""/> <add key="SMB_UserName" value="" />
<add key ="SMB_Pwd" value =""/> <add key="SMB_Pwd" value="" />
<!--标题节点配置,需要和标签模板里面的key对应--> <!--标题节点配置,需要和标签模板里面的key对应-->
<add key ="FileTitle_RID" value ="NB"/> <add key="FileTitle_RID" value="NB" />
<add key ="FileTitle_PN" value ="P/N"/> <add key="FileTitle_PN" value="P/N" />
<add key ="FileTitle_QTY" value ="QTY"/> <add key="FileTitle_QTY" value="QTY" />
<!--StorageUnit列的值--> <!--StorageUnit列的值-->
<add key ="SMB_StorageUnitValue" value ="SMF"/> <add key="SMB_StorageUnitValue" value="SMF" />
</appSettings> </appSettings>
<log4net> <log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logs/NS200.log"/> <file value="logs/NS200.log" />
<param name="Encoding" value="UTF-8"/> <param name="Encoding" value="UTF-8" />
<appendToFile value="true"/> <appendToFile value="true" />
<rollingStyle value="Date"/> <rollingStyle value="Date" />
<datePattern value="yyyy-MM-dd"/> <datePattern value="yyyy-MM-dd" />
<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>
</appender> </appender>
<appender name="LngResource" type="log4net.Appender.RollingFileAppender"> <appender name="LngResource" type="log4net.Appender.RollingFileAppender">
<file value="logs/LngResource.log"/> <file value="logs/LngResource.log" />
<param name="Encoding" value="UTF-8"/> <param name="Encoding" value="UTF-8" />
<appendToFile value="true"/> <appendToFile value="true" />
<rollingStyle value="Date"/> <rollingStyle value="Date" />
<datePattern value="yyyy-MM-dd"/> <datePattern value="yyyy-MM-dd" />
<layout type="log4net.Layout.PatternLayout"> <layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%m%n"/> <conversionPattern value="%m%n" />
</layout> </layout>
</appender> </appender>
<appender name="standrobot" type="log4net.Appender.RollingFileAppender"> <appender name="standrobot" type="log4net.Appender.RollingFileAppender">
<file value="logs/standrobot/standrobot.log"/> <file value="logs/standrobot/standrobot.log" />
<param name="Encoding" value="UTF-8"/> <param name="Encoding" value="UTF-8" />
<appendToFile value="true"/> <appendToFile value="true" />
<rollingStyle value="Date"/> <rollingStyle value="Date" />
<datePattern value="yyyy-MM-dd"/> <datePattern value="yyyy-MM-dd" />
<layout type="log4net.Layout.PatternLayout"> <layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%m%n"/> <conversionPattern value="%m%n" />
</layout> </layout>
</appender> </appender>
<logger name="RollingLogFileAppender"> <logger name="RollingLogFileAppender">
<level value="ALL"/> <level value="ALL" />
<appender-ref ref="RollingLogFileAppender"/> <appender-ref ref="RollingLogFileAppender" />
</logger> </logger>
<logger name="LngResource"> <logger name="LngResource">
<level value="ALL"/> <level value="ALL" />
<appender-ref ref="LngResource"/> <appender-ref ref="LngResource" />
</logger> </logger>
<logger name="HCBOARD"> <logger name="HCBOARD">
<level value="ALL"/> <level value="ALL" />
<appender-ref ref="RollingLogFileAppender"/> <appender-ref ref="RollingLogFileAppender" />
</logger> </logger>
<logger name="standrobot"> <logger name="standrobot">
<level value="info"/> <level value="info" />
<appender-ref ref="standrobot"/> <appender-ref ref="standrobot" />
</logger> </logger>
<!--<root> <!--<root>
<level value="Info" /> <level value="Info" />
...@@ -76,13 +76,13 @@ ...@@ -76,13 +76,13 @@
</root>--> </root>-->
</log4net> </log4net>
<startup> <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup> </startup>
<runtime> <runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0"/> <bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly> </dependentAssembly>
</assemblyBinding> </assemblyBinding>
</runtime> </runtime>
......
...@@ -11,6 +11,7 @@ using System.Text; ...@@ -11,6 +11,7 @@ using System.Text;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using WebApi.Schemas;
using static DL.StandardRobot.StandardRobot; using static DL.StandardRobot.StandardRobot;
namespace DeviceLibrary namespace DeviceLibrary
......
using DeviceLib.WebApi.Schemas;
using DeviceLibrary;
using DeviceLibrary.AGVService.Schemas;
using log4net.Util;
using OnlineStore;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Web.Http;
using WebApi.Schemas;
namespace WebApi.Controllers
{
[RoutePrefix("api")]
public class queryStatusController : ApiController
{
[HttpGet]
public Result_20861 Get([FromBody] InParam_20861 body)
{
Result_20861 result = new Result_20861();
try
{
var cid = body.cid;
{
if (string.IsNullOrEmpty(cid))
{
result.code = 202;
result.status = "cid is empty";
}
else
{
if (body.cid.Equals("B1") || body.cid.Equals("B2"))
{
if (!RobotManage.isRunning)
{
result.code = 201;
result.status = crc.GetString("Res0079", "机器尚未启动不能呼叫Agv");
return result;
}
}
else
{
result.code = -1;
result.status = $" cid {body.cid} not exist";
}
//IS_RECEIVING 正在接收料串
//HAS_STACKER 有料串
//IS_DELIVERING 正在出料串
//EMPTY 无料串
//Error 错误
switch (body.cid)
{
case "B1"://NS200入料口上料任务
if (RobotManage.mainMachine.RightMoveInfo.IsStep(MoveStep.Wait))
{
if (RobotManage.mainMachine.IOValue(IO_Type.RightFornt_Check).Equals(IO_VALUE.HIGH)
|| RobotManage.mainMachine.IOValue(IO_Type.RightEnd_Check).Equals(IO_VALUE.HIGH))
{
result.status = "HAS_STACKER";
}
else
{
result.status = "EMPTY";
}
}
else
{
if (RobotManage.mainMachine.RightMoveInfo.MoveStep >= MoveStep.R40_InShelf)
{
result.code = 0;
result.status = "IS_RECEIVING";
}
else if (RobotManage.mainMachine.RightMoveInfo.MoveStep >= MoveStep.R30_OutShelf)
{
result.code = 0;
result.status = "IS_DELIVERING";
}
else if (RobotManage.mainMachine.IOValue(IO_Type.RightFornt_Check).Equals(IO_VALUE.HIGH)
|| RobotManage.mainMachine.IOValue(IO_Type.RightEnd_Check).Equals(IO_VALUE.HIGH))
{
result.status = "HAS_STACKER";
}
else
{
result.status = "EMPTY";
}
//{
// result.code = 203;
// result.status = "Error";
//}
}
break;
case "B2"://NS200出料口上料任务
if (RobotManage.mainMachine.LeftMoveInfo.IsStep(MoveStep.Wait))
{
if (RobotManage.mainMachine.IOValue(IO_Type.LeftFornt_Check).Equals(IO_VALUE.HIGH)
|| RobotManage.mainMachine.IOValue(IO_Type.LeftEnd_Check).Equals(IO_VALUE.HIGH))
{
result.status = "HAS_STACKER";
}
else
{
result.status = "EMPTY";
}
}
else
{
if (RobotManage.mainMachine.LeftMoveInfo.MoveStep >= MoveStep.L60_InShelf)
{
result.code = 0;
result.status = "IS_RECEIVING";
}
else if (RobotManage.mainMachine.LeftMoveInfo.MoveStep >= MoveStep.L50_OutShelf)
{
result.code = 0;
result.status = "IS_DELIVERING";
}
else
{
result.code = 203;
result.status = "Error";
}
}
break;
}
}
}
}
catch (Exception ex)
{
result.code = 204;
result.status = $"parse error:{ex.Message}";
LogUtil.error("QueryStatus", ex);
}
return result;
}
}
}
using DeviceLibrary;
using OnlineStore;
using OnlineStore.Common;
using System;
using System.Security.Cryptography;
using System.Web.Http;
using WebApi.Schemas;
namespace WebApi.Controllers
{
[RoutePrefix("api")]
public class startRollerController : ApiController
{
[HttpPost]
public Result_20861 Get([FromBody] InParam_20861 body)
{
Result_20861 result = new Result_20861();
try
{
var requestData = body;
{
if (string.IsNullOrEmpty(requestData.cid))
{
result.code = 202;
result.status = "cid is empty";
}
else
{
if (body.cid.Equals("B1") || body.cid.Equals("B2"))
{
if (!RobotManage.isRunning)
{
result.code = 201;
result.status = crc.GetString("Res0079", "机器尚未启动不能呼叫Agv");
return result;
}
}
else
{
result.code = -1;
result.status = $" cid {body.cid} not exist";
}
switch (body.cid)
{
case "B1"://NS200入料口上料任务
//RECEIVE 线体进料
//DELIVER 线体出料
if ("RECEIVE".Equals(requestData.op))
{
RobotManage.mainMachine.RightMoveInfo.NewMove(MoveStep.R40_InShelf);//等待agv到位后执行,启动进入
result.status = "IS_RECEIVING";
}
else if ("DELIVER".Equals(requestData.op))
{
RobotManage.mainMachine.RightMoveInfo.NewMove(MoveStep.R30_OutShelf);//等待agv到位后执行,启动料串离开
result.status = "IS_DELIVERING";
LogUtil.info("AGVManager:下料请求,等待agv到位后执行,启动料串离开");
}
break;
case "B2"://NS200出料口上料任务
if ("RECEIVE".Equals(requestData.op))
{
RobotManage.mainMachine.RightMoveInfo.NewMove(MoveStep.L60_InShelf);//等待agv到位后执行,启动进入
result.status = "IS_RECEIVING";
}
else if ("DELIVER".Equals(requestData.op))
{
RobotManage.mainMachine.RightMoveInfo.NewMove(MoveStep.L50_OutShelf);//等待agv到位后执行,启动料串离开
result.status = "IS_DELIVERING";
LogUtil.info("AGVManager:下料请求,等待agv到位后执行,启动料串离开");
}
break;
}
}
}
LogUtil.info($"AGV请求 滚筒转:【{JsonHelper.SerializeObject(body)}】【{JsonHelper.SerializeObject(result)}】");
}
catch (Exception ex)
{
result.code = 204;
result.status = $"parse error:{ex.Message}";
LogUtil.error("startRoller", ex);
}
return result;
}
}
}
using DeviceLibrary;
using OnlineStore;
using OnlineStore.Common;
using System;
using System.Security.Cryptography;
using System.Web.Http;
using WebApi.Schemas;
namespace WebApi.Controllers
{
[RoutePrefix("api")]
public class stopRollerController : ApiController
{
[HttpPost]
public Result_20861 Get([FromBody] InParam_20861 body)
{
Result_20861 result = new Result_20861();
try
{
var requestData = body;
if (string.IsNullOrEmpty(requestData.cid))
{
result.code = 202;
result.status = "cid is empty";
}
else
{
//IDLE
//ERROR
if (body.cid.Equals("B1") || body.cid.Equals("B2"))
{
if (!RobotManage.isRunning)
{
result.code = 201;
result.status = crc.GetString("Res0079", "机器尚未启动不能呼叫Agv");
return result;
}
}
else
{
result.code = -1;
result.status = $" cid {body.cid} not exist";
}
switch (body.cid)
{
case "B1"://NS200入料口上料任务
if (RobotManage.mainMachine.RightMoveInfo.MoveStep >= MoveStep.R40_InShelf)
{
result.code = 201;
result.status = crc.GetString("Res0109.d647c69c", "入料口正在进料");
}
else if (RobotManage.mainMachine.RightMoveInfo.MoveStep >= MoveStep.R30_OutShelf)
{
result.code = 202;
result.status = crc.GetString("Res0110.97f61551", "入料口正在出料");
}
else
{
result.status = "IDLE";
}
break;
case "B2"://NS200出料口上料任务
if (RobotManage.mainMachine.LeftMoveInfo.MoveStep >= MoveStep.L60_InShelf)
{
result.code = 201;
result.status = crc.GetString("Res0113.15f652b4", "出料口正在入料");
}
else if (RobotManage.mainMachine.LeftMoveInfo.MoveStep >= MoveStep.L50_OutShelf)
{
result.code = 202;
result.status = crc.GetString("Res0114.b6a35f01", "出料口正在出料");
}
else
{
result.status = "IDLE";
}
break;
}
}
LogUtil.info($"AGV请求 滚筒停止:【{JsonHelper.SerializeObject(body)} 】【 {JsonHelper.SerializeObject(result)}】");
}
catch (Exception ex)
{
result.code = 204;
result.status = $"parse error:{ex.Message}";
LogUtil.error("stopRoller", ex);
}
return result;
}
}
}
...@@ -20,7 +20,7 @@ namespace DeviceLib.WebApi ...@@ -20,7 +20,7 @@ namespace DeviceLib.WebApi
config.MapHttpAttributeRoutes(); config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute("DefaultApi", "nepconSmf/{controller}"); config.Routes.MapHttpRoute("DefaultApi", "nepconSmf/{controller}");
config.Routes.MapHttpRoute("AgvApi", "api/{controller}");
_server = new HttpSelfHostServer(config); _server = new HttpSelfHostServer(config);
} }
public Task StartHttpServer() public Task StartHttpServer()
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WebApi.Schemas
{
public class InParam_20861
{
/// <summary>
/// cid
/// </summary>
public string cid { get; set; }
/// <summary>
///操作
/// </summary>
public string op { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WebApi.Schemas
{
public class Result_20861
{
/// <summary>
/// 当code=0时,表示正常,其他异常
/// </summary>
public int code { get; set; } = 0;
/// <summary>
/// 线体状态
/// </summary>
public string status { get; set; }
}
}
...@@ -92,13 +92,24 @@ ...@@ -92,13 +92,24 @@
<Reference Include="ZebraPrinterHelper"> <Reference Include="ZebraPrinterHelper">
<HintPath>..\dll\ZebraPrinterHelper.dll</HintPath> <HintPath>..\dll\ZebraPrinterHelper.dll</HintPath>
</Reference> </Reference>
<Reference Include="zxing, Version=0.16.9.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL">
<HintPath>..\packages\ZXing.Net.0.16.9\lib\net48\zxing.dll</HintPath>
</Reference>
<Reference Include="zxing.presentation, Version=0.16.9.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL">
<HintPath>..\packages\ZXing.Net.0.16.9\lib\net48\zxing.presentation.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="AGVService\Controllers\deviceOperateController.cs" /> <Compile Include="AGVService\Controllers\deviceOperateController.cs" />
<Compile Include="AGVService\Controllers\notificationController.cs" /> <Compile Include="AGVService\Controllers\notificationController.cs" />
<Compile Include="AGVService\Controllers\queryStatusController.cs" />
<Compile Include="AGVService\Controllers\startRollerController.cs" />
<Compile Include="AGVService\Controllers\stopRollerController.cs" />
<Compile Include="AGVService\HttpService.cs" /> <Compile Include="AGVService\HttpService.cs" />
<Compile Include="AGVService\Schemas\DeviceCheckDto.cs" /> <Compile Include="AGVService\Schemas\DeviceCheckDto.cs" />
<Compile Include="AGVService\Schemas\InParam_20861.cs" />
<Compile Include="AGVService\Schemas\NotificationDto.cs" /> <Compile Include="AGVService\Schemas\NotificationDto.cs" />
<Compile Include="AGVService\Schemas\Result_20861.cs" />
<Compile Include="AGVService\Schemas\RtnData.cs" /> <Compile Include="AGVService\Schemas\RtnData.cs" />
<Compile Include="AutoScanAndLabel\AxisBean.cs" /> <Compile Include="AutoScanAndLabel\AxisBean.cs" />
<Compile Include="AutoScanAndLabel\Common.cs" /> <Compile Include="AutoScanAndLabel\Common.cs" />
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<configuration> <configuration>
<runtime> <runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly> </dependentAssembly>
</assemblyBinding> </assemblyBinding>
</runtime> </runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /></startup></configuration>
...@@ -6,4 +6,5 @@ ...@@ -6,4 +6,5 @@
<package id="Microsoft.AspNet.WebApi.SelfHost" version="5.2.9" targetFramework="net472" /> <package id="Microsoft.AspNet.WebApi.SelfHost" version="5.2.9" targetFramework="net472" />
<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net472" /> <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net472" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net461" requireReinstallation="true" /> <package id="System.ValueTuple" version="4.5.0" targetFramework="net461" requireReinstallation="true" />
<package id="ZXing.Net" version="0.16.9" targetFramework="net48" />
</packages> </packages>
\ No newline at end of file \ No newline at end of file
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!