Merge branch 'master' of http://gitblit.broconcentric.com:8088/r/M071
| | |
| | | OnAxisStatusChanged?.Invoke(axisIndex, preStatus, curStatus); |
| | | } |
| | | |
| | | protected override void Start() |
| | | { |
| | | Task.Run(() => |
| | | { |
| | | Monitor(); |
| | | }); |
| | | } |
| | | public abstract List<AxisInfo> GetCurrentAxisInfo(params string[] axisName); |
| | | public abstract void Monitor(); |
| | | public abstract ResponseMessage MoveToPoint(IOperationConfig opConfig); |
| | |
| | | [Category("板卡配置")] |
| | | [DisplayName("卡号")] |
| | | [Description("CardNum:卡号")] |
| | | public int CardNum { get; set; } |
| | | public int CardNum { get; set; } = 1; |
| | | |
| | | [Category("板卡配置")] |
| | | [DisplayName("初始配置文件路径")] |
| | |
| | | public int TriggerValue { get; set; } = -1; |
| | | |
| | | /// <summary> |
| | | /// 传入数据地址的索引 按照监听地址从0开始的索引集合 |
| | | /// </summary> |
| | | [Category("监听设置")] |
| | | [Description("传入数据地址的索引 按照监听地址从0开始的索引")] |
| | | [DisplayName("传入数据索引")] |
| | | [TypeConverter(typeof(SimpleCollectionConvert<int>))] |
| | | public List<int> InputDataIndex { get; set; } = new List<int>(); |
| | | |
| | | /// <summary> |
| | | /// 监听回传 |
| | | /// </summary> |
| | | //[Category("回传设置")] |
| | |
| | | protected override void Start() |
| | | { |
| | | AllAxisOn(); |
| | | |
| | | base.Start(); |
| | | } |
| | | |
| | | protected override void Stop() |
| | |
| | | /// <param name="value">false表示输出,true表示关闭</param> |
| | | public override void WriteOutput(short index, IOValue value) |
| | | { |
| | | short outNum = (short)(index % 100); |
| | | short outNum = (short)(index % 100 + 1); |
| | | if ((int)value <= 1) |
| | | { |
| | | GTSCardAPI.GT_SetDoBit((short)IConfig.CardNum, GTSCardAPI.MC_GPO, outNum, (short)value); |
| | |
| | | AxisMovingStatus axisMovingStatus = new AxisMovingStatus(); |
| | | axisMovingStatus.AxisIndex = axisConfig.AxisIndex; |
| | | axisMovingStatus.AxisName = axisConfig.AxisName; |
| | | axisMovingStatus.CurPosition = Convert.ToInt32(GetPosition(axisMovingStatus.AxisIndex)); |
| | | //axisMovingStatus.CurPosition = Convert.ToInt32(GetPosition(axisMovingStatus.AxisIndex)); |
| | | axisMovingStatus.Destination = Convert.ToInt32(GetPrfPosition(axisMovingStatus.AxisIndex)); |
| | | axisMovingStatus.CurVelocity = GetVelocity(axisMovingStatus.AxisIndex); |
| | | axisMovingStatus.PrfVelocity = GetPrfVelocity(axisMovingStatus.AxisIndex); |
| | | //axisMovingStatus.CurVelocity = GetVelocity(axisMovingStatus.AxisIndex); |
| | | //axisMovingStatus.PrfVelocity = GetPrfVelocity(axisMovingStatus.AxisIndex); |
| | | axisMovingStatus.AxisStatus = GetAxisStatus(axisMovingStatus.AxisIndex); |
| | | |
| | | axisMovingStatusesList.Add(axisMovingStatus); |
| | |
| | | monitorSet.OpConfig = new OperationConfigBase(); |
| | | } |
| | | |
| | | //monitorSet.OpConfig.InputPara = monitorSet.InputDataIndex.ConvertAll(index => |
| | | //{ |
| | | // return tempNew[index].Value; |
| | | //}).ToList(); |
| | | monitorSet.OpConfig.InputPara = monitorSet.InputDataIndex.ConvertAll(index => |
| | | { |
| | | return tempNew[index].Value == IOValue.TRUE ? 1 : 0; |
| | | }).ToList(); |
| | | |
| | | ExcuteMonitorInvoke(DateTime.Now, monitorSet.InvokeDevice, this, monitorSet); |
| | | } |
| | |
| | | private void InitialSetting() |
| | | { |
| | | //数据库迁移检查 |
| | | DatabaseInitialize.Initialize(); |
| | | //DatabaseInitialize.Initialize(); |
| | | |
| | | MotionCardSettingCheck(); |
| | | |
| | |
| | | using System.Threading.Tasks; |
| | | using static Bro.Common.Helper.EnumHelper; |
| | | |
| | | namespace Bro.Process |
| | | namespace Bro.Process |
| | | { |
| | | [Process("", DeviceAttributeType.Device)] |
| | | public partial class ProcessControl : IProcess |
| | |
| | | object res = null; |
| | | int reTryTimes = config.ReTryTimes; |
| | | IDevice device = DeviceCollection.FirstOrDefault(u => u.Id == deviceId); |
| | | LogAsync(DateTime.Now, $"{device.Name}调用{methodCode}开始", ""); |
| | | LogAsync(DateTime.Now, $"{device?.Name}调用{methodCode}开始", ""); |
| | | |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start(); |
| | |
| | | #endregion |
| | | |
| | | sw.Stop(); |
| | | LogAsync(DateTime.Now, $"{device.Name}调用{methodCode}完成,耗时{sw.ElapsedMilliseconds}ms", ""); |
| | | TimeRecordCSV(DateTime.Now, device.Name, $"{methodCode}调用完成", (int)sw.ElapsedMilliseconds); |
| | | LogAsync(DateTime.Now, $"{device?.Name}调用{methodCode}完成,耗时{sw.ElapsedMilliseconds}ms", ""); |
| | | TimeRecordCSV(DateTime.Now, device?.Name, $"{methodCode}调用完成", (int)sw.ElapsedMilliseconds); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w |
| | | LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 |
| | | ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADm |
| | | CgAAAk1TRnQBSQFMAgEBAgEAAegBAAHoAQABGAEAARgBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo |
| | | CgAAAk1TRnQBSQFMAgEBAgEAAfABAAHwAQABGAEAARgBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo |
| | | AwABYAMAARgDAAEBAQABCAYAAQkYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA |
| | | AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 |
| | | AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA |
| | |
| | | AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w |
| | | LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 |
| | | ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD4 |
| | | CAAAAk1TRnQBSQFMAwEBAAHoAQAB6AEAARgBAAEYAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA |
| | | CAAAAk1TRnQBSQFMAwEBAAHwAQAB8AEAARgBAAEYAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA |
| | | AWADAAEYAwABAQEAAQgGAAEJGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA |
| | | AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA |
| | | AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm |
| | |
| | | { |
| | | if (ctr is IOIndicatorCtrl ioOut) |
| | | { |
| | | ioOut.Cursor = Cursors.Hand; |
| | | ioOut.OnIODoubleClick += IoOut_DoubleClick; |
| | | } |
| | | } |
| | |
| | | private void IoOut_DoubleClick(string desc, bool isOn) |
| | | { |
| | | var index = Convert.ToInt16(desc.Substring(3)); |
| | | MotionCard.WriteOutput(index, isOn ? IOValue.FALSE : IOValue.TRUE); |
| | | MotionCard.WriteOutput(index, isOn ? IOValue.TRUE : IOValue.FALSE); |
| | | } |
| | | |
| | | private void RefreshIOStatus(object sender, EventArgs e) |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | this.Invalidate(); |
| | | } |
| | | } |
| | | } |
| | |
| | | get => Device as MotionCardBase; |
| | | } |
| | | |
| | | private void MotionCard_OnMonitorInvoke(DateTime arg1, string arg2, IDevice arg3, IMonitorSet arg4) |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | //private void MotionCard_OnMonitorInvoke(DateTime arg1, string arg2, IDevice arg3, IMonitorSet arg4) |
| | | //{ |
| | | // throw new NotImplementedException(); |
| | | //} |
| | | |
| | | private void InitialLayout() |
| | | { |
| | |
| | | axisMovingStatus = new AxisMovingStatus(); |
| | | } |
| | | CtrlMotionCardAxisStatus ctrlMotionCardAxisStatus = new CtrlMotionCardAxisStatus(axisMovingStatus); |
| | | //ctrlMotionCardAxisStatus.Dock = DockStyle.Fill; |
| | | flowLayoutPanel1.Controls.Add(ctrlMotionCardAxisStatus); |
| | | |
| | | } |
| | | |
| | | CtrlMotionCardIOStatus ctrlMotionCardIOStatus = new CtrlMotionCardIOStatus(Device, MotionCard.MonitorValues); |
| | | //ctrlMotionCardIOStatus.Dock = DockStyle.Fill; |
| | | flowLayoutPanel2.Controls.Add(ctrlMotionCardIOStatus); |
| | | } |
| | | |