using HH.WCS.Hexafluo.api;
|
using HH.WCS.Hexafluo.device;
|
using HH.WCS.Hexafluo.dispatch;
|
using HH.WCS.Hexafluo.util;
|
using HH.WCS.Hexafluo.wms;
|
using HH.WCS.SJML.api;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Threading;
|
|
namespace HH.WCS.Hexafluo.process
|
{
|
/// <summary>
|
/// 设备信号处理
|
/// </summary>
|
internal class DeviceProcess
|
{
|
static DeviceProcess() {
|
Settings.GetCameraInfoList().ForEach(a => {
|
cameraStates.Add(a.site, new CameraState { site = a.site, state = -1 });
|
});
|
}
|
// private static Dictionary<string, CameraState> RainStates = new Dictionary<string, CameraState>();
|
/// <summary>
|
/// 雨量传感器
|
/// </summary>
|
/// <param name="data"></param>
|
/// <param name="ip"></param>
|
internal static void Analysis(string data, string ip) {
|
if (data != null)
|
{
|
|
}
|
else
|
{
|
|
}
|
}
|
|
private static Dictionary<string, CameraState> cameraStates = new Dictionary<string, CameraState>();
|
internal static void SetCameraInfo(List<LocationState> models) {
|
var Open = Settings.CameraOpenKeyList;
|
if (Open=="Y")
|
{
|
models.ForEach(a => {
|
var info = Settings.GetCameraInfoList().Where(b => b.site == a.site).FirstOrDefault();
|
if (info != null)
|
{
|
if (cameraStates.Keys.Contains(a.site))
|
{
|
if (a.state == 0)
|
{
|
cameraStates[a.site].state = a.state;
|
//更新数据库,变空(改当前数量为0)
|
LocationHelper.BindLoc(info.location,0);
|
//LocationHelper
|
}
|
else
|
{
|
if (cameraStates[a.site].state > 0)
|
{
|
cameraStates[a.site].state++;
|
if (cameraStates[a.site].state > 2)
|
{
|
//更新数据库(连续两次收到满的信号,才当作是满的),变满(改当前数量为1)
|
LocationHelper.BindLoc(info.location,1);
|
}
|
}
|
else
|
{
|
cameraStates[a.site].state = a.state;
|
}
|
}
|
cameraStates[a.site].modify = DateTime.Now;
|
}
|
}
|
});
|
}
|
}
|
//internal static void CheckCameraTask() {
|
|
// Settings.GetCameraInfoList().ForEach(a => {
|
// var startList = a.Where(b => b.locType == 1).ToList();
|
// var endList = a.Where(b => b.locType >= 2).OrderBy(b => b.order).ToList();
|
// //获取一个起点是满的货位
|
// string startBit = null;
|
// for (int i = 0; i < startList.Count; i++) {
|
// if (cameraStates[startList[i].site].state >= 2) {
|
// startBit = startList[i].location;
|
// break;
|
// }
|
// }
|
// //判断起点没有任务
|
// if (startBit != null && LocationHelper.CheckLocFree(startBit)) {
|
// //调wms获取终点,终点在endList里面,找到之后生成任务
|
// Console.WriteLine($"相机起点{startBit}有货,查找找到对应终点");
|
|
// }
|
|
|
// });
|
|
|
//}
|
internal static void Traffic(string forkliftNo, string lockNo, bool v) {
|
throw new NotImplementedException();
|
}
|
}
|
}
|