终端一体化运控平台
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

AGVHelper.cs 32 KiB

2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Net;
  7. using System.Web;
  8. using Newtonsoft.Json;
  9. using System.Net.Http;
  10. using System.Configuration;
  11. namespace BPASmartClient.AGV
  12. {
  13. public class AGVHelper
  14. {
  15. public static AGVHelper _Instance { get; set; }
  16. public static AGVHelper GetInstance => _Instance ?? (_Instance = new AGVHelper());
  17. public AGVHelper()
  18. {
  19. }
  20. /// <summary>
  21. /// 获取配置文件信息
  22. /// </summary>
  23. /// <param name="strKey"></param>
  24. /// <returns></returns>
  25. public string GetAppSettingValue(string strKey)
  26. {
  27. string file = System.Environment.CurrentDirectory;
  28. Configuration config = ConfigurationManager.OpenExeConfiguration(file);
  29. foreach (string key in config.AppSettings.Settings.AllKeys)
  30. {
  31. if (key == strKey)
  32. {
  33. return config.AppSettings.Settings[strKey].Value.ToString();
  34. }
  35. }
  36. return null;
  37. }
  38. public string HttpRequest(string url, string head, string body)
  39. {
  40. return PostData(url, head, body);
  41. }
  42. public string PostData(string url, string head, string body)
  43. {
  44. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  45. request.Method = "POST";
  46. request.Headers["header"] = head;
  47. //request.Proxy = new WebProxy("192.168.1.12",80);
  48. byte[] bytes = Encoding.UTF8.GetBytes(body);
  49. request.ContentType = "application/json; charset=UTF-8"; ;//窗体数据被编码为名称/值对形式
  50. //request.ContentType = "application/json";
  51. request.ContentLength = bytes.Length;
  52. Stream myResponseStream = request.GetRequestStream();
  53. myResponseStream.Write(bytes, 0, bytes.Length);
  54. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  55. StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
  56. string retString = myStreamReader.ReadToEnd();
  57. myStreamReader.Close();
  58. myResponseStream.Close();
  59. if (response != null)
  60. {
  61. response.Close();
  62. }
  63. if (request != null)
  64. {
  65. request.Abort();
  66. }
  67. return retString;//返回响应报文
  68. }
  69. /// <summary>
  70. /// AGV去1号线体装桶
  71. /// </summary>
  72. /// <returns></returns>
  73. public string AgvToLineOneLoadRoller(string robotJobId)
  74. {
  75. //string url = AGVRequestUrl.GetInstance.TaskSendUrl;
  76. ////请求报文头
  77. //HttpRequestHeaderModel.GetInstance.appKey = "";
  78. //HttpRequestHeaderModel.GetInstance.appSecret = "";
  79. //HttpRequestHeaderModel.GetInstance.requestId = "";
  80. //HttpRequestHeaderModel.GetInstance.timestamp = "";
  81. //HttpRequestHeaderModel.GetInstance.version = "2.8";
  82. //string head = JsonConvert.SerializeObject(HttpRequestHeaderModel.GetInstance);
  83. ////请求报文体
  84. //AGVModel.GetInstance.robotJobId =robotJobId ;//上游提供
  85. //AGVModel.GetInstance.warehouseId = 123; //仓库编号
  86. //AGVModel.GetInstance.jobPriority = 1;//任务执行的优先级
  87. //AGVModel.GetInstance.jobPriorityType = 1;//0:根据优先级来执行,1:强制执行
  88. //AGVModel.GetInstance.jobType = "POINT_ROLLER_MOVE"; //SLOT_ROLLER_MOVE / POINT_ROLLER_MOVE
  89. ////详细任务数据
  90. ////点到点
  91. //AGV_PointRollerJobData.GetInstance.startPoint = "";//起点点位
  92. //AGV_PointRollerJobData.GetInstance.endPoint = "";//目的点位
  93. //AGV_PointRollerJobData.GetInstance.autoLoad = true;//是否自动上料 true:自动上料 false:人工上料
  94. //AGV_PointRollerJobData.GetInstance.enableIOLoad = true;//上料交互方式 false:接口交互 true:光电交互
  95. //AGV_PointRollerJobData.GetInstance.autoUnload = true;//是否自动下料 true:自动下料 false:人工下料
  96. //AGV_PointRollerJobData.GetInstance.enableIOUnload = true;//下料交互方式 false:接口交互 true:光电交互
  97. //AGVModel.GetInstance.jobData = AGV_PointRollerJobData.GetInstance;
  98. //string body = JsonConvert.SerializeObject(AGVModel.GetInstance);
  99. //// string newBody = String.Join(",\r\n", bodyData.Split(','));//格式处理,看需求
  100. ////货位到货位
  101. ////AGV_SlotRollerJobData.GetInstance.startSlotCode = "";//起点槽位编号
  102. ////AGV_SlotRollerJobData.GetInstance.endSlotCode = "";//目的槽位编号
  103. ////AGV_SlotRollerJobData.GetInstance.autoLoad = true;//是否自动上料 true:自动上料 false:人工上料
  104. ////AGV_SlotRollerJobData.GetInstance.enableIOLoad = true;//上料交互方式 false:接口交互 true:光电交互
  105. ////AGV_SlotRollerJobData.GetInstance.autoUnload = true;//是否自动下料 true:自动下料 false:人工下料
  106. ////AGV_SlotRollerJobData.GetInstance.enableIOUnload = true;//下料交互方式 false:接口交互 true:光电交互
  107. ////AGVModel.GetInstance.jobData = AGV_SlotRollerJobData.GetInstance;
  108. ////string body = JsonConvert.SerializeObject(AGVModel.GetInstance);
  109. //string data = HttpRequest(url, head, body);
  110. //object objData = JsonConvert.DeserializeObject(data);
  111. //if (objData != null && objData is HttpResponseModel response)
  112. //{
  113. // return response.Body?.code;
  114. //}
  115. return "Analysis Error";
  116. }
  117. /// <summary>
  118. /// AGV去2号线体装桶
  119. /// </summary>
  120. /// <returns></returns>
  121. public string AgvToLineTwoLoadRoller(string robotJobId)
  122. {
  123. //string url = AGVRequestUrl.GetInstance.TaskSendUrl;
  124. ////请求报文头
  125. //HttpRequestHeaderModel.GetInstance.appKey = "";
  126. //HttpRequestHeaderModel.GetInstance.appSecret = "";
  127. //HttpRequestHeaderModel.GetInstance.requestId = "";
  128. //HttpRequestHeaderModel.GetInstance.timestamp = "";
  129. //HttpRequestHeaderModel.GetInstance.version = "2.8";
  130. //string head = JsonConvert.SerializeObject(HttpRequestHeaderModel.GetInstance);
  131. ////请求报文体
  132. //AGVModel.GetInstance.robotJobId = robotJobId;//上游提供
  133. //AGVModel.GetInstance.warehouseId = 123; //仓库编号
  134. //AGVModel.GetInstance.jobPriority = 1;//任务执行的优先级
  135. //AGVModel.GetInstance.jobPriorityType = 1;//0:根据优先级来执行,1:强制执行
  136. //AGVModel.GetInstance.jobType = "POINT_ROLLER_MOVE"; //SLOT_ROLLER_MOVE / POINT_ROLLER_MOVE
  137. ////详细任务数据
  138. ////点到点
  139. //AGV_PointRollerJobData.GetInstance.startPoint = "";//起点点位
  140. //AGV_PointRollerJobData.GetInstance.endPoint = "";//目的点位
  141. //AGV_PointRollerJobData.GetInstance.autoLoad = true;//是否自动上料 true:自动上料 false:人工上料
  142. //AGV_PointRollerJobData.GetInstance.enableIOLoad = true;//上料交互方式 false:接口交互 true:光电交互
  143. //AGV_PointRollerJobData.GetInstance.autoUnload = true;//是否自动下料 true:自动下料 false:人工下料
  144. //AGV_PointRollerJobData.GetInstance.enableIOUnload = true;//下料交互方式 false:接口交互 true:光电交互
  145. //AGVModel.GetInstance.jobData = AGV_PointRollerJobData.GetInstance;
  146. //string body = JsonConvert.SerializeObject(AGVModel.GetInstance);
  147. ////货位到货位
  148. ////AGV_SlotRollerJobData.GetInstance.startSlotCode = "";//起点槽位编号
  149. ////AGV_SlotRollerJobData.GetInstance.endSlotCode = "";//目的槽位编号
  150. ////AGV_SlotRollerJobData.GetInstance.autoLoad = true;//是否自动上料 true:自动上料 false:人工上料
  151. ////AGV_SlotRollerJobData.GetInstance.enableIOLoad=true;//上料交互方式 false:接口交互 true:光电交互
  152. ////AGV_SlotRollerJobData.GetInstance.autoUnload = true;//是否自动下料 true:自动下料 false:人工下料
  153. ////AGV_SlotRollerJobData.GetInstance.enableIOUnload=true;//下料交互方式 false:接口交互 true:光电交互
  154. ////AGVModel.GetInstance.jobData = AGV_SlotRollerJobData.GetInstance;
  155. ////string body = JsonConvert.SerializeObject(AGVModel.GetInstance);
  156. //string data= HttpRequest(url, head, body);
  157. //object objData= JsonConvert.DeserializeObject(data);
  158. //if (objData != null && objData is HttpResponseModel response)
  159. //{
  160. // return response.Body?.code;
  161. //}
  162. return "Analysis Error";
  163. }
  164. /// <summary>
  165. /// AGV去3号线体装桶
  166. /// </summary>
  167. /// <returns></returns>
  168. public string AgvToLineThreeLoadRoller(string robotJobId)
  169. {
  170. //string url = AGVRequestUrl.GetInstance.TaskSendUrl;
  171. ////请求报文头
  172. //HttpRequestHeaderModel.GetInstance.appKey = "";
  173. //HttpRequestHeaderModel.GetInstance.appSecret = "";
  174. //HttpRequestHeaderModel.GetInstance.requestId = "";
  175. //HttpRequestHeaderModel.GetInstance.timestamp = "";
  176. //HttpRequestHeaderModel.GetInstance.version = "2.8";
  177. //string head = JsonConvert.SerializeObject(HttpRequestHeaderModel.GetInstance);
  178. ////请求报文体
  179. //AGVModel.GetInstance.robotJobId = robotJobId;//上游提供
  180. //AGVModel.GetInstance.warehouseId = 123; //仓库编号
  181. //AGVModel.GetInstance.jobPriority = 1;//任务执行的优先级
  182. //AGVModel.GetInstance.jobPriorityType = 1;//0:根据优先级来执行,1:强制执行
  183. //AGVModel.GetInstance.jobType = "POINT_ROLLER_MOVE"; //SLOT_ROLLER_MOVE / POINT_ROLLER_MOVE
  184. ////详细任务数据
  185. ////点到点
  186. //AGV_PointRollerJobData.GetInstance.startPoint = "";//起点点位
  187. //AGV_PointRollerJobData.GetInstance.endPoint = "";//目的点位
  188. //AGV_PointRollerJobData.GetInstance.autoLoad = true;//是否自动上料 true:自动上料 false:人工上料
  189. //AGV_PointRollerJobData.GetInstance.enableIOLoad = true;//上料交互方式 false:接口交互 true:光电交互
  190. //AGV_PointRollerJobData.GetInstance.autoUnload = true;//是否自动下料 true:自动下料 false:人工下料
  191. //AGV_PointRollerJobData.GetInstance.enableIOUnload = true;//下料交互方式 false:接口交互 true:光电交互
  192. //AGVModel.GetInstance.jobData = AGV_PointRollerJobData.GetInstance;
  193. //string body = JsonConvert.SerializeObject(AGVModel.GetInstance);
  194. ////货位到货位
  195. ////AGV_SlotRollerJobData.GetInstance.startSlotCode = "";//起点槽位编号
  196. ////AGV_SlotRollerJobData.GetInstance.endSlotCode = "";//目的槽位编号
  197. ////AGV_SlotRollerJobData.GetInstance.autoLoad = true;//是否自动上料 true:自动上料 false:人工上料
  198. ////AGV_SlotRollerJobData.GetInstance.enableIOLoad=true;//上料交互方式 false:接口交互 true:光电交互
  199. ////AGV_SlotRollerJobData.GetInstance.autoUnload = true;//是否自动下料 true:自动下料 false:人工下料
  200. ////AGV_SlotRollerJobData.GetInstance.enableIOUnload=true;//下料交互方式 false:接口交互 true:光电交互
  201. ////AGVModel.GetInstance.jobData = AGV_SlotRollerJobData.GetInstance;
  202. ////string body = JsonConvert.SerializeObject(AGVModel.GetInstance);
  203. //string data = HttpRequest(url, head, body);
  204. //object objData = JsonConvert.DeserializeObject(data);
  205. //if (objData != null && objData is HttpResponseModel response)
  206. //{
  207. // return response.Body?.code;
  208. //}
  209. return "Analysis Error";
  210. }
  211. /// <summary>
  212. /// AGV离开炒锅1
  213. /// </summary>
  214. /// <returns></returns>
  215. public string AgvLeaveFryPotOne(string robotJobId)
  216. {
  217. //string url = AGVRequestUrl.GetInstance.TaskSendUrl;
  218. ////请求报文头
  219. //HttpRequestHeaderModel.GetInstance.appKey = "";
  220. //HttpRequestHeaderModel.GetInstance.appSecret = "";
  221. //HttpRequestHeaderModel.GetInstance.requestId = "";
  222. //HttpRequestHeaderModel.GetInstance.timestamp = "";
  223. //HttpRequestHeaderModel.GetInstance.version = "2.8";
  224. //string head = JsonConvert.SerializeObject(HttpRequestHeaderModel.GetInstance);
  225. ////请求报文体
  226. //AGVModel.GetInstance.robotJobId = robotJobId;//上游提供
  227. //AGVModel.GetInstance.warehouseId = 123; //仓库编号
  228. //AGVModel.GetInstance.jobPriority = 1;//任务执行的优先级
  229. //AGVModel.GetInstance.jobPriorityType = 1;//0:根据优先级来执行,1:强制执行
  230. //AGVModel.GetInstance.jobType = "POINT_ROLLER_MOVE"; //SLOT_ROLLER_MOVE / POINT_ROLLER_MOVE
  231. ////详细任务数据
  232. ////点到点
  233. //AGV_PointRollerJobData.GetInstance.startPoint = "";//起点点位
  234. //AGV_PointRollerJobData.GetInstance.endPoint = "";//目的点位
  235. //AGV_PointRollerJobData.GetInstance.autoLoad = true;//是否自动上料 true:自动上料 false:人工上料
  236. //AGV_PointRollerJobData.GetInstance.enableIOLoad = true;//上料交互方式 false:接口交互 true:光电交互
  237. //AGV_PointRollerJobData.GetInstance.autoUnload = true;//是否自动下料 true:自动下料 false:人工下料
  238. //AGV_PointRollerJobData.GetInstance.enableIOUnload = true;//下料交互方式 false:接口交互 true:光电交互
  239. //AGVModel.GetInstance.jobData = AGV_PointRollerJobData.GetInstance;
  240. //string body = JsonConvert.SerializeObject(AGVModel.GetInstance);
  241. ////货位到货位
  242. ////AGV_SlotRollerJobData.GetInstance.startSlotCode = "";//起点槽位编号
  243. ////AGV_SlotRollerJobData.GetInstance.endSlotCode = "";//目的槽位编号
  244. ////AGV_SlotRollerJobData.GetInstance.autoLoad = true;//是否自动上料 true:自动上料 false:人工上料
  245. ////AGV_SlotRollerJobData.GetInstance.enableIOLoad=true;//上料交互方式 false:接口交互 true:光电交互
  246. ////AGV_SlotRollerJobData.GetInstance.autoUnload = true;//是否自动下料 true:自动下料 false:人工下料
  247. ////AGV_SlotRollerJobData.GetInstance.enableIOUnload=true;//下料交互方式 false:接口交互 true:光电交互
  248. ////AGVModel.GetInstance.jobData = AGV_SlotRollerJobData.GetInstance;
  249. ////string body = JsonConvert.SerializeObject(AGVModel.GetInstance);
  250. //string data = HttpRequest(url, head, body);
  251. //object objData = JsonConvert.DeserializeObject(data);
  252. //if (objData != null && objData is HttpResponseModel response)
  253. //{
  254. // return response.Body?.code;
  255. //}
  256. return "Analysis Error";
  257. }
  258. /// <summary>
  259. /// AGV离开炒锅2
  260. /// </summary>
  261. /// <returns></returns>
  262. public string AgvLeaveFryPotTwo(string robotJobId)
  263. {
  264. //string url = AGVRequestUrl.GetInstance.TaskSendUrl;
  265. ////请求报文头
  266. //HttpRequestHeaderModel.GetInstance.appKey = "";
  267. //HttpRequestHeaderModel.GetInstance.appSecret = "";
  268. //HttpRequestHeaderModel.GetInstance.requestId = "";
  269. //HttpRequestHeaderModel.GetInstance.timestamp = "";
  270. //HttpRequestHeaderModel.GetInstance.version = "2.8";
  271. //string head = JsonConvert.SerializeObject(HttpRequestHeaderModel.GetInstance);
  272. ////请求报文体
  273. //AGVModel.GetInstance.robotJobId = robotJobId;//上游提供
  274. //AGVModel.GetInstance.warehouseId = 123; //仓库编号
  275. //AGVModel.GetInstance.jobPriority = 1;//任务执行的优先级
  276. //AGVModel.GetInstance.jobPriorityType = 1;//0:根据优先级来执行,1:强制执行
  277. //AGVModel.GetInstance.jobType = "POINT_ROLLER_MOVE"; //SLOT_ROLLER_MOVE / POINT_ROLLER_MOVE
  278. ////详细任务数据
  279. ////点到点
  280. //AGV_PointRollerJobData.GetInstance.startPoint = "";//起点点位
  281. //AGV_PointRollerJobData.GetInstance.endPoint = "";//目的点位
  282. //AGV_PointRollerJobData.GetInstance.autoLoad = true;//是否自动上料 true:自动上料 false:人工上料
  283. //AGV_PointRollerJobData.GetInstance.enableIOLoad = true;//上料交互方式 false:接口交互 true:光电交互
  284. //AGV_PointRollerJobData.GetInstance.autoUnload = true;//是否自动下料 true:自动下料 false:人工下料
  285. //AGV_PointRollerJobData.GetInstance.enableIOUnload = true;//下料交互方式 false:接口交互 true:光电交互
  286. //AGVModel.GetInstance.jobData = AGV_PointRollerJobData.GetInstance;
  287. //string body = JsonConvert.SerializeObject(AGVModel.GetInstance);
  288. ////货位到货位
  289. ////AGV_SlotRollerJobData.GetInstance.startSlotCode = "";//起点槽位编号
  290. ////AGV_SlotRollerJobData.GetInstance.endSlotCode = "";//目的槽位编号
  291. ////AGV_SlotRollerJobData.GetInstance.autoLoad = true;//是否自动上料 true:自动上料 false:人工上料
  292. ////AGV_SlotRollerJobData.GetInstance.enableIOLoad=true;//上料交互方式 false:接口交互 true:光电交互
  293. ////AGV_SlotRollerJobData.GetInstance.autoUnload = true;//是否自动下料 true:自动下料 false:人工下料
  294. ////AGV_SlotRollerJobData.GetInstance.enableIOUnload=true;//下料交互方式 false:接口交互 true:光电交互
  295. ////AGVModel.GetInstance.jobData = AGV_SlotRollerJobData.GetInstance;
  296. ////string body = JsonConvert.SerializeObject(AGVModel.GetInstance);
  297. //string data = HttpRequest(url, head, body);
  298. //object objData = JsonConvert.DeserializeObject(data);
  299. //if (objData != null && objData is HttpResponseModel response)
  300. //{
  301. // return response.Body?.code;
  302. //}
  303. return "Analysis Error";
  304. }
  305. /// <summary>
  306. /// AGV离开炒锅3
  307. /// </summary>
  308. /// <returns></returns>
  309. public string AgvLeaveFryPotThree(string robotJobId)
  310. {
  311. //string url = AGVRequestUrl.GetInstance.TaskSendUrl;
  312. ////请求报文头
  313. //HttpRequestHeaderModel.GetInstance.appKey = "";
  314. //HttpRequestHeaderModel.GetInstance.appSecret = "";
  315. //HttpRequestHeaderModel.GetInstance.requestId = "";
  316. //HttpRequestHeaderModel.GetInstance.timestamp = "";
  317. //HttpRequestHeaderModel.GetInstance.version = "2.8";
  318. //string head = JsonConvert.SerializeObject(HttpRequestHeaderModel.GetInstance);
  319. ////请求报文体
  320. //AGVModel.GetInstance.robotJobId = robotJobId;//上游提供
  321. //AGVModel.GetInstance.warehouseId = 123; //仓库编号
  322. //AGVModel.GetInstance.jobPriority = 1;//任务执行的优先级
  323. //AGVModel.GetInstance.jobPriorityType = 1;//0:根据优先级来执行,1:强制执行
  324. //AGVModel.GetInstance.jobType = "POINT_ROLLER_MOVE"; //SLOT_ROLLER_MOVE / POINT_ROLLER_MOVE
  325. ////详细任务数据
  326. ////点到点
  327. //AGV_PointRollerJobData.GetInstance.startPoint = "";//起点点位
  328. //AGV_PointRollerJobData.GetInstance.endPoint = "";//目的点位
  329. //AGV_PointRollerJobData.GetInstance.autoLoad = true;//是否自动上料 true:自动上料 false:人工上料
  330. //AGV_PointRollerJobData.GetInstance.enableIOLoad = true;//上料交互方式 false:接口交互 true:光电交互
  331. //AGV_PointRollerJobData.GetInstance.autoUnload = true;//是否自动下料 true:自动下料 false:人工下料
  332. //AGV_PointRollerJobData.GetInstance.enableIOUnload = true;//下料交互方式 false:接口交互 true:光电交互
  333. //AGVModel.GetInstance.jobData = AGV_PointRollerJobData.GetInstance;
  334. //string body = JsonConvert.SerializeObject(AGVModel.GetInstance);
  335. ////货位到货位
  336. ////AGV_SlotRollerJobData.GetInstance.startSlotCode = "";//起点槽位编号
  337. ////AGV_SlotRollerJobData.GetInstance.endSlotCode = "";//目的槽位编号
  338. ////AGV_SlotRollerJobData.GetInstance.autoLoad = true;//是否自动上料 true:自动上料 false:人工上料
  339. ////AGV_SlotRollerJobData.GetInstance.enableIOLoad=true;//上料交互方式 false:接口交互 true:光电交互
  340. ////AGV_SlotRollerJobData.GetInstance.autoUnload = true;//是否自动下料 true:自动下料 false:人工下料
  341. ////AGV_SlotRollerJobData.GetInstance.enableIOUnload=true;//下料交互方式 false:接口交互 true:光电交互
  342. ////AGVModel.GetInstance.jobData = AGV_SlotRollerJobData.GetInstance;
  343. ////string body = JsonConvert.SerializeObject(AGVModel.GetInstance);
  344. //string data = HttpRequest(url, head, body);
  345. //object objData = JsonConvert.DeserializeObject(data);
  346. //if (objData != null && objData is HttpResponseModel response)
  347. //{
  348. // return response.Body?.code;
  349. //}
  350. return "Analysis Error";
  351. }
  352. /// <summary>
  353. /// AGV离开炒锅4
  354. /// </summary>
  355. /// <returns></returns>
  356. public string AgvLeaveFryPotFour(string robotJobId)
  357. {
  358. //string url = AGVRequestUrl.GetInstance.TaskSendUrl;
  359. ////请求报文头
  360. //HttpRequestHeaderModel.GetInstance.appKey = "";
  361. //HttpRequestHeaderModel.GetInstance.appSecret = "";
  362. //HttpRequestHeaderModel.GetInstance.requestId = "";
  363. //HttpRequestHeaderModel.GetInstance.timestamp = "";
  364. //HttpRequestHeaderModel.GetInstance.version = "2.8";
  365. //string head = JsonConvert.SerializeObject(HttpRequestHeaderModel.GetInstance);
  366. ////请求报文体
  367. //AGVModel.GetInstance.robotJobId = robotJobId;//上游提供
  368. //AGVModel.GetInstance.warehouseId = 123; //仓库编号
  369. //AGVModel.GetInstance.jobPriority = 1;//任务执行的优先级
  370. //AGVModel.GetInstance.jobPriorityType = 1;//0:根据优先级来执行,1:强制执行
  371. //AGVModel.GetInstance.jobType = "POINT_ROLLER_MOVE"; //SLOT_ROLLER_MOVE / POINT_ROLLER_MOVE
  372. ////详细任务数据
  373. ////点到点
  374. //AGV_PointRollerJobData.GetInstance.startPoint = "";//起点点位
  375. //AGV_PointRollerJobData.GetInstance.endPoint = "";//目的点位
  376. //AGV_PointRollerJobData.GetInstance.autoLoad = true;//是否自动上料 true:自动上料 false:人工上料
  377. //AGV_PointRollerJobData.GetInstance.enableIOLoad = true;//上料交互方式 false:接口交互 true:光电交互
  378. //AGV_PointRollerJobData.GetInstance.autoUnload = true;//是否自动下料 true:自动下料 false:人工下料
  379. //AGV_PointRollerJobData.GetInstance.enableIOUnload = true;//下料交互方式 false:接口交互 true:光电交互
  380. //AGVModel.GetInstance.jobData = AGV_PointRollerJobData.GetInstance;
  381. //string body = JsonConvert.SerializeObject(AGVModel.GetInstance);
  382. ////货位到货位
  383. ////AGV_SlotRollerJobData.GetInstance.startSlotCode = "";//起点槽位编号
  384. ////AGV_SlotRollerJobData.GetInstance.endSlotCode = "";//目的槽位编号
  385. ////AGV_SlotRollerJobData.GetInstance.autoLoad = true;//是否自动上料 true:自动上料 false:人工上料
  386. ////AGV_SlotRollerJobData.GetInstance.enableIOLoad=true;//上料交互方式 false:接口交互 true:光电交互
  387. ////AGV_SlotRollerJobData.GetInstance.autoUnload = true;//是否自动下料 true:自动下料 false:人工下料
  388. ////AGV_SlotRollerJobData.GetInstance.enableIOUnload=true;//下料交互方式 false:接口交互 true:光电交互
  389. ////AGVModel.GetInstance.jobData = AGV_SlotRollerJobData.GetInstance;
  390. ////string body = JsonConvert.SerializeObject(AGVModel.GetInstance);
  391. //string data = HttpRequest(url, head, body);
  392. //object objData = JsonConvert.DeserializeObject(data);
  393. //if (objData != null && objData is HttpResponseModel response)
  394. //{
  395. // return response.Body?.code;
  396. //}
  397. return "Analysis Error";
  398. }
  399. /// <summary>
  400. /// AGV离开炒锅5
  401. /// </summary>
  402. /// <returns></returns>
  403. public string AgvLeaveFryPotFive(string robotJobId)
  404. {
  405. //string url = AGVRequestUrl.GetInstance.TaskSendUrl;
  406. ////请求报文头
  407. //HttpRequestHeaderModel.GetInstance.appKey = "";
  408. //HttpRequestHeaderModel.GetInstance.appSecret = "";
  409. //HttpRequestHeaderModel.GetInstance.requestId = "";
  410. //HttpRequestHeaderModel.GetInstance.timestamp = "";
  411. //HttpRequestHeaderModel.GetInstance.version = "2.8";
  412. //string head = JsonConvert.SerializeObject(HttpRequestHeaderModel.GetInstance);
  413. ////请求报文体
  414. //AGVModel.GetInstance.robotJobId = robotJobId;//上游提供
  415. //AGVModel.GetInstance.warehouseId = 123; //仓库编号
  416. //AGVModel.GetInstance.jobPriority = 1;//任务执行的优先级
  417. //AGVModel.GetInstance.jobPriorityType = 1;//0:根据优先级来执行,1:强制执行
  418. //AGVModel.GetInstance.jobType = "POINT_ROLLER_MOVE"; //SLOT_ROLLER_MOVE / POINT_ROLLER_MOVE
  419. ////详细任务数据
  420. ////点到点
  421. //AGV_PointRollerJobData.GetInstance.startPoint = "";//起点点位
  422. //AGV_PointRollerJobData.GetInstance.endPoint = "";//目的点位
  423. //AGV_PointRollerJobData.GetInstance.autoLoad = true;//是否自动上料 true:自动上料 false:人工上料
  424. //AGV_PointRollerJobData.GetInstance.enableIOLoad = true;//上料交互方式 false:接口交互 true:光电交互
  425. //AGV_PointRollerJobData.GetInstance.autoUnload = true;//是否自动下料 true:自动下料 false:人工下料
  426. //AGV_PointRollerJobData.GetInstance.enableIOUnload = true;//下料交互方式 false:接口交互 true:光电交互
  427. //AGVModel.GetInstance.jobData = AGV_PointRollerJobData.GetInstance;
  428. //string body = JsonConvert.SerializeObject(AGVModel.GetInstance);
  429. ////货位到货位
  430. ////AGV_SlotRollerJobData.GetInstance.startSlotCode = "";//起点槽位编号
  431. ////AGV_SlotRollerJobData.GetInstance.endSlotCode = "";//目的槽位编号
  432. ////AGV_SlotRollerJobData.GetInstance.autoLoad = true;//是否自动上料 true:自动上料 false:人工上料
  433. ////AGV_SlotRollerJobData.GetInstance.enableIOLoad=true;//上料交互方式 false:接口交互 true:光电交互
  434. ////AGV_SlotRollerJobData.GetInstance.autoUnload = true;//是否自动下料 true:自动下料 false:人工下料
  435. ////AGV_SlotRollerJobData.GetInstance.enableIOUnload=true;//下料交互方式 false:接口交互 true:光电交互
  436. ////AGVModel.GetInstance.jobData = AGV_SlotRollerJobData.GetInstance;
  437. ////string body = JsonConvert.SerializeObject(AGVModel.GetInstance);
  438. //string data = HttpRequest(url, head, body);
  439. //object objData = JsonConvert.DeserializeObject(data);
  440. //if (objData != null && objData is HttpResponseModel response)
  441. //{
  442. // return response.Body?.code;
  443. //}
  444. return "Analysis Error";
  445. }
  446. /// <summary>
  447. /// 任务取消
  448. /// </summary>
  449. /// <param name="robotJobId">上游系统任务号,全局唯一</param>
  450. public string CancelJobTask(string robotJobId)
  451. {
  452. string url = AGVRequestUrl.GetInstance.TaskCancelUrl;
  453. //请求报文头
  454. HttpRequestHeaderModel.GetInstance.appKey = "";
  455. HttpRequestHeaderModel.GetInstance.appSecret = "";
  456. HttpRequestHeaderModel.GetInstance.requestId = "";
  457. HttpRequestHeaderModel.GetInstance.timestamp = "";
  458. HttpRequestHeaderModel.GetInstance.version = "2.8";
  459. string head = JsonConvert.SerializeObject(HttpRequestHeaderModel.GetInstance);
  460. //请求报文体
  461. AGVTaskCancelModel.GetInstance.robotJobId = robotJobId;
  462. AGVTaskCancelModel.GetInstance.warehouseId = 123;//仓库编号
  463. string body = JsonConvert.SerializeObject(AGVTaskCancelModel.GetInstance);
  464. string data = HttpRequest(url, head, body);
  465. object objData = JsonConvert.DeserializeObject(data);
  466. if (objData != null && objData is HttpResponseModel response)
  467. {
  468. return response.Body?.code;
  469. }
  470. return "Analysis Error";
  471. }
  472. /// <summary>
  473. /// 实操任务完成通知
  474. /// </summary>
  475. /// <returns></returns>
  476. public string TaskCompleteNotify(string robotJobId)
  477. {
  478. string url = AGVRequestUrl.GetInstance.TaskCompleteUrl;
  479. //请求报文头
  480. HttpRequestHeaderModel.GetInstance.appKey = "";
  481. HttpRequestHeaderModel.GetInstance.appSecret = "";
  482. HttpRequestHeaderModel.GetInstance.requestId = "";
  483. HttpRequestHeaderModel.GetInstance.timestamp = "";
  484. HttpRequestHeaderModel.GetInstance.version = "2.8";
  485. string head = JsonConvert.SerializeObject(HttpRequestHeaderModel.GetInstance);
  486. //请求报文体
  487. AGVTaskCompleteNotifyModel.GetInstance.robotJobId = robotJobId;
  488. AGVTaskCompleteNotifyModel.GetInstance.warehouseId = 123;//仓库编号
  489. string body=JsonConvert.SerializeObject(AGVTaskCompleteNotifyModel.GetInstance);
  490. string data = HttpRequest(url, head, body);
  491. object objData = JsonConvert.DeserializeObject(data);
  492. if (objData != null && objData is HttpResponseModel response)
  493. {
  494. return response.Body?.code;
  495. }
  496. return "Analysis Error";
  497. }
  498. /// <summary>
  499. /// AGV上下料交互反馈
  500. /// </summary>
  501. /// <param name="agvCode">AGV编号</param>
  502. /// <param name="jobId">任务编号</param>
  503. /// <param name="msgId">消息编号</param>
  504. /// <returns></returns>
  505. public string UpDownFeedBack(string agvCode,string jobId,string msgId)
  506. {
  507. string url = AGVRequestUrl.GetInstance.TaskCompleteUrl;
  508. //请求报文头
  509. HttpRequestHeaderModel.GetInstance.appKey = "";
  510. HttpRequestHeaderModel.GetInstance.appSecret = "";
  511. HttpRequestHeaderModel.GetInstance.requestId = "";
  512. HttpRequestHeaderModel.GetInstance.timestamp = "";
  513. HttpRequestHeaderModel.GetInstance.version = "2.8";
  514. string head = JsonConvert.SerializeObject(HttpRequestHeaderModel.GetInstance);
  515. //请求报文体
  516. AGVLoadInteracteModel.GetInstance.agvCode = agvCode;
  517. AGVLoadInteracteModel.GetInstance.jobId = jobId;
  518. AGVLoadInteracteModel.GetInstance.msgId= msgId;
  519. string body=JsonConvert.SerializeObject(AGVLoadInteracteModel.GetInstance);
  520. string data = HttpRequest(url, head, body);
  521. object objData = JsonConvert.DeserializeObject(data);
  522. if (objData != null && objData is HttpResponseModel response)
  523. {
  524. return response.Body?.code;
  525. }
  526. return "Analysis Error";
  527. }
  528. }
  529. }