@@ -8,6 +8,7 @@ using System.Web; | |||
using Newtonsoft.Json; | |||
using System.Net.Http; | |||
using System.Configuration; | |||
using System.Security.Cryptography; | |||
namespace BPASmartClient.AGV | |||
{ | |||
@@ -15,10 +16,10 @@ namespace BPASmartClient.AGV | |||
{ | |||
public static AGVHelper _Instance { get; set; } | |||
public static AGVHelper GetInstance => _Instance ?? (_Instance = new AGVHelper()); | |||
public AGVHelper() | |||
public AGVHelper() | |||
{ | |||
} | |||
/// <summary> | |||
/// 获取配置文件信息 | |||
@@ -39,7 +40,7 @@ namespace BPASmartClient.AGV | |||
return null; | |||
} | |||
public string HttpRequest(string url, string head, string body) | |||
{ | |||
{ | |||
return PostData(url, head, body); | |||
} | |||
public string PostData(string url, string head, string body) | |||
@@ -71,10 +72,28 @@ namespace BPASmartClient.AGV | |||
return retString;//返回响应报文 | |||
} | |||
/// <summary> | |||
/// MD5哈希摘要转16进制 | |||
/// </summary> | |||
/// <param name="body"></param> | |||
/// <returns></returns> | |||
public string MD5Deal(string body) | |||
{ | |||
//如果启用签名 用MD5 哈希摘要 再转16进制 | |||
MD5 md5 = MD5.Create(); | |||
byte[] bte = md5.ComputeHash(Encoding.UTF8.GetBytes(body)); | |||
StringBuilder build = new StringBuilder(); | |||
for (int i = 0; i < bte.Length; i++) | |||
{ | |||
build.Append(bte[i].ToString("X")); | |||
} | |||
return build.ToString(); | |||
} | |||
/// <summary> | |||
/// AGV去1号线体装桶 | |||
/// </summary> | |||
/// <returns></returns> | |||
public string AgvToLineOneLoadRoller(string robotJobId) | |||
public string AgvToLineOneLoadRoller(string robotJobId) | |||
{ | |||
//string url = AGVRequestUrl.GetInstance.TaskSendUrl; | |||
////请求报文头 | |||
@@ -85,7 +104,7 @@ namespace BPASmartClient.AGV | |||
//HttpRequestHeaderModel.GetInstance.version = "2.8"; | |||
//string head = JsonConvert.SerializeObject(HttpRequestHeaderModel.GetInstance); | |||
////请求报文体 | |||
//AGVModel.GetInstance.robotJobId =robotJobId ;//上游提供 | |||
//AGVModel.GetInstance.robotJobId = robotJobId;//上游提供 | |||
//AGVModel.GetInstance.warehouseId = 123; //仓库编号 | |||
//AGVModel.GetInstance.jobPriority = 1;//任务执行的优先级 | |||
//AGVModel.GetInstance.jobPriorityType = 1;//0:根据优先级来执行,1:强制执行 | |||
@@ -100,7 +119,8 @@ namespace BPASmartClient.AGV | |||
//AGV_PointRollerJobData.GetInstance.enableIOUnload = true;//下料交互方式 false:接口交互 true:光电交互 | |||
//AGVModel.GetInstance.jobData = AGV_PointRollerJobData.GetInstance; | |||
//string body = JsonConvert.SerializeObject(AGVModel.GetInstance); | |||
//// string newBody = String.Join(",\r\n", bodyData.Split(','));//格式处理,看需求 | |||
//// string newBody = String.Join(",\r\n", body.Split(','));//格式处理,看需求 | |||
////货位到货位 | |||
////AGV_SlotRollerJobData.GetInstance.startSlotCode = "";//起点槽位编号 | |||
////AGV_SlotRollerJobData.GetInstance.endSlotCode = "";//目的槽位编号 | |||
@@ -110,6 +130,8 @@ namespace BPASmartClient.AGV | |||
////AGV_SlotRollerJobData.GetInstance.enableIOUnload = true;//下料交互方式 false:接口交互 true:光电交互 | |||
////AGVModel.GetInstance.jobData = AGV_SlotRollerJobData.GetInstance; | |||
////string body = JsonConvert.SerializeObject(AGVModel.GetInstance); | |||
////启用签名 | |||
////url = url + "?sign=" + MD5Deal(body); | |||
//string data = HttpRequest(url, head, body); | |||
//object objData = JsonConvert.DeserializeObject(data); | |||
//if (objData != null && objData is HttpResponseModel response) | |||
@@ -157,6 +179,8 @@ namespace BPASmartClient.AGV | |||
////AGV_SlotRollerJobData.GetInstance.enableIOUnload=true;//下料交互方式 false:接口交互 true:光电交互 | |||
////AGVModel.GetInstance.jobData = AGV_SlotRollerJobData.GetInstance; | |||
////string body = JsonConvert.SerializeObject(AGVModel.GetInstance); | |||
////启用签名 | |||
////url = url + "?sign=" + MD5Deal(body); | |||
//string data= HttpRequest(url, head, body); | |||
//object objData= JsonConvert.DeserializeObject(data); | |||
//if (objData != null && objData is HttpResponseModel response) | |||
@@ -204,6 +228,8 @@ namespace BPASmartClient.AGV | |||
////AGV_SlotRollerJobData.GetInstance.enableIOUnload=true;//下料交互方式 false:接口交互 true:光电交互 | |||
////AGVModel.GetInstance.jobData = AGV_SlotRollerJobData.GetInstance; | |||
////string body = JsonConvert.SerializeObject(AGVModel.GetInstance); | |||
////启用签名 | |||
////url = url + "?sign=" + MD5Deal(body); | |||
//string data = HttpRequest(url, head, body); | |||
//object objData = JsonConvert.DeserializeObject(data); | |||
//if (objData != null && objData is HttpResponseModel response) | |||
@@ -251,6 +277,8 @@ namespace BPASmartClient.AGV | |||
////AGV_SlotRollerJobData.GetInstance.enableIOUnload=true;//下料交互方式 false:接口交互 true:光电交互 | |||
////AGVModel.GetInstance.jobData = AGV_SlotRollerJobData.GetInstance; | |||
////string body = JsonConvert.SerializeObject(AGVModel.GetInstance); | |||
////启用签名 | |||
////url = url + "?sign=" + MD5Deal(body); | |||
//string data = HttpRequest(url, head, body); | |||
//object objData = JsonConvert.DeserializeObject(data); | |||
//if (objData != null && objData is HttpResponseModel response) | |||
@@ -298,6 +326,8 @@ namespace BPASmartClient.AGV | |||
////AGV_SlotRollerJobData.GetInstance.enableIOUnload=true;//下料交互方式 false:接口交互 true:光电交互 | |||
////AGVModel.GetInstance.jobData = AGV_SlotRollerJobData.GetInstance; | |||
////string body = JsonConvert.SerializeObject(AGVModel.GetInstance); | |||
////启用签名 | |||
////url = url + "?sign=" + MD5Deal(body); | |||
//string data = HttpRequest(url, head, body); | |||
//object objData = JsonConvert.DeserializeObject(data); | |||
//if (objData != null && objData is HttpResponseModel response) | |||
@@ -345,6 +375,8 @@ namespace BPASmartClient.AGV | |||
////AGV_SlotRollerJobData.GetInstance.enableIOUnload=true;//下料交互方式 false:接口交互 true:光电交互 | |||
////AGVModel.GetInstance.jobData = AGV_SlotRollerJobData.GetInstance; | |||
////string body = JsonConvert.SerializeObject(AGVModel.GetInstance); | |||
////启用签名 | |||
////url = url + "?sign=" + MD5Deal(body); | |||
//string data = HttpRequest(url, head, body); | |||
//object objData = JsonConvert.DeserializeObject(data); | |||
//if (objData != null && objData is HttpResponseModel response) | |||
@@ -392,6 +424,8 @@ namespace BPASmartClient.AGV | |||
////AGV_SlotRollerJobData.GetInstance.enableIOUnload=true;//下料交互方式 false:接口交互 true:光电交互 | |||
////AGVModel.GetInstance.jobData = AGV_SlotRollerJobData.GetInstance; | |||
////string body = JsonConvert.SerializeObject(AGVModel.GetInstance); | |||
////启用签名 | |||
////url = url + "?sign=" + MD5Deal(body); | |||
//string data = HttpRequest(url, head, body); | |||
//object objData = JsonConvert.DeserializeObject(data); | |||
//if (objData != null && objData is HttpResponseModel response) | |||
@@ -439,6 +473,8 @@ namespace BPASmartClient.AGV | |||
////AGV_SlotRollerJobData.GetInstance.enableIOUnload=true;//下料交互方式 false:接口交互 true:光电交互 | |||
////AGVModel.GetInstance.jobData = AGV_SlotRollerJobData.GetInstance; | |||
////string body = JsonConvert.SerializeObject(AGVModel.GetInstance); | |||
////启用签名 | |||
////url = url + "?sign=" + MD5Deal(body); | |||
//string data = HttpRequest(url, head, body); | |||
//object objData = JsonConvert.DeserializeObject(data); | |||
//if (objData != null && objData is HttpResponseModel response) | |||
@@ -465,6 +501,8 @@ namespace BPASmartClient.AGV | |||
AGVTaskCancelModel.GetInstance.robotJobId = robotJobId; | |||
AGVTaskCancelModel.GetInstance.warehouseId = 123;//仓库编号 | |||
string body = JsonConvert.SerializeObject(AGVTaskCancelModel.GetInstance); | |||
//启用签名 | |||
//url = url + "?sign=" + MD5Deal(body); | |||
string data = HttpRequest(url, head, body); | |||
object objData = JsonConvert.DeserializeObject(data); | |||
if (objData != null && objData is HttpResponseModel response) | |||
@@ -490,7 +528,9 @@ namespace BPASmartClient.AGV | |||
//请求报文体 | |||
AGVTaskCompleteNotifyModel.GetInstance.robotJobId = robotJobId; | |||
AGVTaskCompleteNotifyModel.GetInstance.warehouseId = 123;//仓库编号 | |||
string body=JsonConvert.SerializeObject(AGVTaskCompleteNotifyModel.GetInstance); | |||
string body = JsonConvert.SerializeObject(AGVTaskCompleteNotifyModel.GetInstance); | |||
//启用签名 | |||
//url = url + "?sign=" + MD5Deal(body); | |||
string data = HttpRequest(url, head, body); | |||
object objData = JsonConvert.DeserializeObject(data); | |||
if (objData != null && objData is HttpResponseModel response) | |||
@@ -506,7 +546,7 @@ namespace BPASmartClient.AGV | |||
/// <param name="jobId">任务编号</param> | |||
/// <param name="msgId">消息编号</param> | |||
/// <returns></returns> | |||
public string UpDownFeedBack(string agvCode,string jobId,string msgId) | |||
public string UpDownFeedBack(string agvCode, string jobId, string msgId) | |||
{ | |||
string url = AGVRequestUrl.GetInstance.TaskCompleteUrl; | |||
//请求报文头 | |||
@@ -518,9 +558,11 @@ namespace BPASmartClient.AGV | |||
string head = JsonConvert.SerializeObject(HttpRequestHeaderModel.GetInstance); | |||
//请求报文体 | |||
AGVLoadInteracteModel.GetInstance.agvCode = agvCode; | |||
AGVLoadInteracteModel.GetInstance.jobId = jobId; | |||
AGVLoadInteracteModel.GetInstance.msgId= msgId; | |||
string body=JsonConvert.SerializeObject(AGVLoadInteracteModel.GetInstance); | |||
AGVLoadInteracteModel.GetInstance.jobId = jobId; | |||
AGVLoadInteracteModel.GetInstance.msgId = msgId; | |||
string body = JsonConvert.SerializeObject(AGVLoadInteracteModel.GetInstance); | |||
//启用签名 | |||
//url = url + "?sign=" + MD5Deal(body); | |||
string data = HttpRequest(url, head, body); | |||
object objData = JsonConvert.DeserializeObject(data); | |||
if (objData != null && objData is HttpResponseModel response) | |||
@@ -13,12 +13,12 @@ namespace BPASmartClient.AgvApi | |||
public Task SendReport(object obj) | |||
{ | |||
return HubCallerClient?.Caller.SendAsync("Report", obj); | |||
return HubCallerClient?.Caller.SendAsync("Report", obj);//Invoke客户端Report名称的方法 | |||
} | |||
public Task SendUpstreamrequest(object obj) | |||
{ | |||
return HubCallerClient?.Caller.SendAsync("Upstreamrequest", obj); | |||
return HubCallerClient?.Caller.SendAsync("Upstreamrequest", obj);//Invoke客户端Upstreamrequest名称的方法 | |||
} | |||
} | |||
@@ -2,6 +2,9 @@ | |||
namespace BPASmartClient.AgvApi | |||
{ | |||
/// <summary> | |||
/// 服务端 | |||
/// </summary> | |||
public class PersonHub : Hub | |||
{ | |||
@@ -11,7 +11,7 @@ builder.Services.AddControllers(); | |||
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle | |||
builder.Services.AddEndpointsApiExplorer(); | |||
builder.Services.AddSwaggerGen(); | |||
builder.Services.AddSignalR(); | |||
builder.Services.AddSignalR();//×¢²áSignalR×é¼þ | |||
var app = builder.Build(); | |||
// Configure the HTTP request pipeline. | |||
@@ -9,8 +9,8 @@ namespace BPASmartClient.CustomResource.Pages.Model | |||
public class AlarmInfo | |||
{ | |||
public AlarmInfo() | |||
{ | |||
{ | |||
} | |||
/// <summary> | |||
/// 1 号滚筒线故障 | |||
@@ -44,6 +44,7 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel | |||
private void DoNavChanged(object obj) | |||
{ | |||
ActionManage.GetInstance.Send("RecipeIsChange"); | |||
for (int i = 0; i < menuModels.Count; i++) | |||
{ | |||
var res = menuModels.ElementAt(i).subMenumodels.FirstOrDefault(p => p.ToggleWindowPath == obj.ToString()); | |||
@@ -2,6 +2,9 @@ | |||
namespace BPASmartClient.HubHelper | |||
{ | |||
/// <summary> | |||
/// 客户端 | |||
/// </summary> | |||
public class HubHelper | |||
{ | |||
private volatile static HubHelper _Instance; | |||
@@ -17,10 +20,9 @@ namespace BPASmartClient.HubHelper | |||
{ | |||
hubConnection = new HubConnectionBuilder().WithAutomaticReconnect().WithUrl($"http://{ip}:{port}/personhub").Build();//连接 | |||
hubConnection.On<object>("Report", (s) => { Report?.Invoke(s); }); | |||
hubConnection.On<object>("Upstreamrequest", (s) => { Upstreamrequest?.Invoke(s); }); | |||
hubConnection.On<object>("Report", (s) => { Report?.Invoke(s); });//客户端注册方法 | |||
hubConnection.On<object>("Upstreamrequest", (s) => { Upstreamrequest?.Invoke(s); });//客户端注册方法 | |||
try | |||
{ | |||
hubConnection.StartAsync(); | |||
@@ -38,7 +38,7 @@ namespace FryPot_DosingSystem | |||
mv.Show(); | |||
DeviceOperate deviceOperate = DeviceOperate.GetInstance;//开启实时PLC数据读取 | |||
DosingLogicControl logigControl = DosingLogicControl.GetInstance;//开启逻辑控制任务程序 | |||
HubHelper.GetInstance.Connect("192.168.1.130", 8089); | |||
HubHelper.GetInstance.Connect("192.168.1.14", 8089); | |||
AlarmHelper<AlarmInfo>.Init(); | |||
} | |||
else | |||
@@ -25,7 +25,7 @@ namespace FryPot_DosingSystem.Model | |||
/// 配方下发状况信息 | |||
/// </summary> | |||
private string _recipeSetInfo; | |||
public string RecipeSetInfo { get { return _recipeSetInfo; } set { _recipeSetInfo = value; OnPropertyChanged(); } } | |||
public string RecipeSetInfo { get { return _recipeSetInfo; } set { _recipeSetInfo = value; OnPropertyChanged(); } } | |||
public ObservableCollection<MaterialType> materialCollection { get; set; } = new ObservableCollection<MaterialType>(); | |||
} | |||
@@ -211,11 +211,21 @@ | |||
BorderBrush="Aqua" VerticalAlignment="Center" FontSize="16" TextChanged="TextBox_TextChanged"></TextBox> | |||
</StackPanel> | |||
</StackPanel> | |||
<StackPanel Orientation="Horizontal"> | |||
<Button Content="添加原料" Width="150" Margin="10" Height="30" Background="Transparent" BorderBrush="Aqua" Foreground="Aqua" Cursor="Hand" Command="{Binding AddRecipe}" ></Button> | |||
<Button Content="确认" Height="30" Width="100" Margin="5,10" Background="Transparent" BorderBrush="Aqua" Foreground="Aqua" Command="{Binding Comfirm}"></Button> | |||
<Button Click="Button_Click" Content="取消" Height="30" FontSize="20" Background="Transparent" BorderBrush="Aqua" Foreground="Aqua" Width="100" Margin="8,10" Cursor="Hand"></Button> | |||
</StackPanel> | |||
<Grid> | |||
<Grid.RowDefinitions> | |||
<RowDefinition/> | |||
<RowDefinition/> | |||
</Grid.RowDefinitions> | |||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> | |||
<Button Content="添加原料" Width="180" Margin="0,0,10,0" Height="30" Background="Transparent" BorderBrush="Aqua" Foreground="Aqua" Cursor="Hand" Command="{Binding AddRecipe}" ></Button> | |||
<Button Content="确认更新" Height="30" Width="180" Background="Transparent" BorderBrush="Aqua" Foreground="Aqua" Command="{Binding Comfirm}"></Button> | |||
</StackPanel> | |||
<StackPanel Orientation="Horizontal" Grid.Row="1" HorizontalAlignment="Center"> | |||
<Button Content="另存为" Height="30" Width="180" Margin="0,0,10,0" Command="{Binding SaveAs}" Cursor="Hand"/> | |||
<Button Click="Button_Click" Content="取消" Height="30" FontSize="20" Background="Transparent" BorderBrush="Aqua" Foreground="Aqua" Width="180" Cursor="Hand"></Button> | |||
</StackPanel> | |||
</Grid> | |||
</UniformGrid> | |||
<Grid Grid.Row="2" Background="Cyan" Margin="0,0,0,10"> | |||
<Grid.ColumnDefinitions> | |||
@@ -19,6 +19,7 @@ | |||
</ResourceDictionary.MergedDictionaries> | |||
</ResourceDictionary> | |||
</UserControl.Resources> | |||
<Grid> | |||
<Grid.RowDefinitions> | |||
@@ -109,7 +110,7 @@ | |||
<ColumnDefinition/> | |||
</Grid.ColumnDefinitions> | |||
<Line StrokeThickness="3" Grid.Column="0" HorizontalAlignment="Left" Stroke="LawnGreen" X1="0" Y1="5" X2="0" Y2="110"></Line> | |||
<TextBlock Grid.Column="1" FontSize="16" Text="{Binding RecipeSetInfo}" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock> | |||
<TextBlock Grid.Column="1" FontSize="16" Text="{Binding RecipeSetInfo}" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock> | |||
</Grid> | |||
</Grid> | |||
@@ -37,6 +37,7 @@ namespace FryPot_DosingSystem.ViewModel | |||
public RelayCommand AddRecipe { get; set; } | |||
public RelayCommand<string> RemoveRecipe { get; set; } | |||
public RelayCommand Comfirm { get; set; } | |||
public RelayCommand SaveAs { get; set; } | |||
public NewRecipeViewModel() | |||
{ | |||
Json<MaterialNames>.Read(); | |||
@@ -59,23 +60,24 @@ namespace FryPot_DosingSystem.ViewModel | |||
} | |||
} | |||
}), "EditRecipe"); | |||
AddRecipe = new RelayCommand(() => | |||
{ | |||
for (int i = 0; i < RecipeRollerNum; i++) | |||
for (int i = 0; i < RecipeRollerNum; i++) | |||
{ | |||
pr1: | |||
string materialCode = Guid.NewGuid().ToString();//原料唯一ID ,后期需要根据实际要求更改 | |||
var res = materials.FirstOrDefault(p => p.MaterialCode == materialCode); | |||
if (res == null) | |||
{ | |||
pr1: | |||
string materialCode = Guid.NewGuid().ToString();//原料唯一ID ,后期需要根据实际要求更改 | |||
var res = materials.FirstOrDefault(p => p.MaterialCode == materialCode); | |||
if (res == null) | |||
{ | |||
materials.Add(new MaterialType() { MaterialCode = materialCode }); | |||
} | |||
else | |||
{ | |||
goto pr1; | |||
} | |||
materials.Add(new MaterialType() { MaterialCode = materialCode }); | |||
} | |||
else | |||
{ | |||
goto pr1; | |||
} | |||
} | |||
}); | |||
RemoveRecipe = new RelayCommand<string>(code => | |||
{ | |||
@@ -116,7 +118,34 @@ namespace FryPot_DosingSystem.ViewModel | |||
ActionManage.GetInstance.Send("CloseNewRecipeView"); | |||
} | |||
}); | |||
SaveAs = new RelayCommand(() => | |||
{ | |||
var bom = Json<RecipeManage>.Data.Recipes.FirstOrDefault(p => p.RecipeName == RecipeName); | |||
if (bom == null)//配方名称更改 | |||
{ | |||
if (RecipeRollerNum != 0) | |||
{ | |||
prop: string recipeID = Guid.NewGuid().ToString();//配方唯一ID,后期根据实际要求更改 | |||
var res = Json<RecipeManage>.Data.Recipes.FirstOrDefault(p => p.RecipeId == recipeID); | |||
if (res == null) | |||
{ | |||
Json<RecipeManage>.Data.Recipes.Add(new NewRecipeModel { RecipeId = recipeID, RecipeName = RecipeName, materialCollection = materials });//配方添加 | |||
} | |||
else | |||
{ | |||
goto prop; | |||
} | |||
MessageLog.GetInstance.ShowUserLog("新建配方成功"); | |||
} | |||
else | |||
{ | |||
MessageLog.GetInstance.ShowUserLog("新建配方无效【配方中没有添加原料】"); | |||
} | |||
ActionManage.GetInstance.Send("CloseNewRecipeView"); | |||
} | |||
ActionManage.GetInstance.Send("CloseNewRecipeView"); | |||
}); | |||
} | |||
} | |||
} |
@@ -10,6 +10,7 @@ using System.Collections.ObjectModel; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
using System.Windows; | |||
namespace FryPot_DosingSystem.ViewModel | |||
{ | |||
@@ -44,14 +45,32 @@ namespace FryPot_DosingSystem.ViewModel | |||
{ | |||
Json<RecipeManage>.Read(); | |||
recipeModels = Json<RecipeManage>.Data.Recipes; | |||
int count = recipeModels.Count; | |||
ActionManage.GetInstance.CancelRegister("RecipeIsChange"); | |||
ActionManage.GetInstance.Register(new Action(() => | |||
{ | |||
bool b = Json<RecipeManage>.Data.Recipes.Count==count ? true : false; | |||
if (!b) | |||
{ | |||
MessageBoxResult result = MessageBox.Show("配方数据未保存,是否保存", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Information); | |||
if (result == MessageBoxResult.OK) | |||
{ | |||
Json<RecipeManage>.Save();//保存配方 | |||
count = recipeModels.Count; | |||
} | |||
} | |||
}), "RecipeIsChange"); | |||
NewRecipe = new Action(() => | |||
{ | |||
NewRecipeView nrv = new NewRecipeView(); | |||
nrv.ShowDialog(); | |||
MessageLog.GetInstance.Show("新建配方"); | |||
}); | |||
SaveRecipe = new Action(() => { | |||
SaveRecipe = new Action(() => | |||
{ | |||
Json<RecipeManage>.Save(); | |||
count = recipeModels.Count; | |||
}); | |||
EditRecipeCommand = new RelayCommand<object>((Id) => | |||
{ | |||
@@ -67,11 +86,12 @@ namespace FryPot_DosingSystem.ViewModel | |||
{ | |||
if (Id != null && Id is String strId) | |||
{ | |||
var res= recipeModels.FirstOrDefault(p => p.RecipeId == strId); | |||
var res = recipeModels.FirstOrDefault(p => p.RecipeId == strId); | |||
if (res != null && res is NewRecipeModel nes) | |||
{ | |||
recipeModels.Remove(res);//删除配方 | |||
Json<RecipeManage>.Save();//保存配方 | |||
count = recipeModels.Count; | |||
} | |||
} | |||
}); | |||
@@ -16,7 +16,7 @@ namespace TestDemo | |||
{ | |||
AGVToUpSystem aGVToUpSystem = new AGVToUpSystem(); | |||
string value = JsonConvert.SerializeObject(aGVToUpSystem); | |||
string url = $"http://192.168.1.130:8089/apicallback/quicktron/robotjob/report?sign={value}"; | |||
string url = $"http://192.168.1.14:8089/apicallback/quicktron/robotjob/report?sign={value}"; | |||
var res = APIHelper.GetInstance.HttpRequest(url, "", aGVToUpSystem, RequestType.POST); | |||
} | |||
@@ -25,7 +25,7 @@ namespace TestDemo | |||
Upstreamrequest aGVToUpSystem = new Upstreamrequest(); | |||
string value = JsonConvert.SerializeObject(aGVToUpSystem); | |||
string url = $"http://192.168.1.130:8089/apicallback/quicktron/robotjob/upstreamrequest?sign={value}"; | |||
string url = $"http://192.168.1.14:8089/apicallback/quicktron/robotjob/upstreamrequest?sign={value}"; | |||
var res = APIHelper.GetInstance.HttpRequest(url, "", aGVToUpSystem, RequestType.POST); | |||
} | |||
} |