Commit 481c737e authored by 潘栩锋's avatar 潘栩锋 🚴

添加 AD盒.B2 添加复位功能

parent b2135b2b
...@@ -211,14 +211,16 @@ namespace GeneralGommunication ...@@ -211,14 +211,16 @@ namespace GeneralGommunication
if (tran.datas != null) if (tran.datas != null)
pack.AddRange(tran.datas); pack.AddRange(tran.datas);
//转为 7E格式
var buf = GetSendPack(pack);
//调试: 打印发送信息 //调试: 打印发送信息
if (tran.datasObj == null) if (tran.datasObj == null)
logger.Debug($"REQ {commReq.PrefixString}"); logger.Debug($"REQ {commReq.PrefixString} | {buf.ToString_Bytes2Hex()}");
else else
logger.Debug($"REQ {commReq.PrefixString} {Newtonsoft.Json.JsonConvert.SerializeObject(tran.datasObj)}"); logger.Debug($"REQ {commReq.PrefixString} {Newtonsoft.Json.JsonConvert.SerializeObject(tran.datasObj)} | {buf.ToString_Bytes2Hex()}");
//转为 7E格式
var buf = GetSendPack(pack);
//开始计时 //开始计时
stopwatch_timeOut.Restart(); stopwatch_timeOut.Restart();
...@@ -258,9 +260,9 @@ namespace GeneralGommunication ...@@ -258,9 +260,9 @@ namespace GeneralGommunication
//调试: 打印发送信息 //调试: 打印发送信息
if (tran.datasObj == null) if (tran.datasObj == null)
logger.Debug($"REQ multi {commReq.PrefixString}"); logger.Debug($"REQ multi {commReq.PrefixString} | {buf.ToString_Bytes2Hex()}");
else else
logger.Debug($"REQ multi {commReq.PrefixString} {Newtonsoft.Json.JsonConvert.SerializeObject(tran.datasObj)}"); logger.Debug($"REQ multi {commReq.PrefixString} {Newtonsoft.Json.JsonConvert.SerializeObject(tran.datasObj)} | {buf.ToString_Bytes2Hex()}");
} }
...@@ -358,7 +360,7 @@ namespace GeneralGommunication ...@@ -358,7 +360,7 @@ namespace GeneralGommunication
if (commReq.ResponseTotalLen + PrefixIndex > pack.Count()) if (commReq.ResponseTotalLen + PrefixIndex > pack.Count())
{ {
//失败,指令长度不对!! //失败,指令长度不对!!
logger.Error($"ACK expect:{commReq.PrefixString} len={commReq.ResponseTotalLen + 1}, but reponse len ={pack.Count()} reponse: {pack.ToString_Bytes2HexAndAscii()}"); logger.Error($"ACK expect:{commReq.PrefixString} len={commReq.ResponseTotalLen + 1}, but reponse len ={pack.Count()} | {pack.ToString_Bytes2HexAndAscii()}");
ErrCnt++; ErrCnt++;
return false; return false;
} }
...@@ -368,7 +370,7 @@ namespace GeneralGommunication ...@@ -368,7 +370,7 @@ namespace GeneralGommunication
if (!commReq.IsMatch(commReq, pack, PrefixIndex, commReq.IsMatchContext, ref retData)) if (!commReq.IsMatch(commReq, pack, PrefixIndex, commReq.IsMatchContext, ref retData))
{ {
//回复对不上请求 //回复对不上请求
logger.Error($"ACK expect:{commReq.PrefixString} len={commReq.ResponseTotalLen + 1}, but reponse len ={pack.Count()} reponse: {pack.ToString_Bytes2HexAndAscii()}"); logger.Error($"ACK expect:{commReq.PrefixString} len={commReq.ResponseTotalLen + 1}, but reponse len ={pack.Count()} | {pack.ToString_Bytes2HexAndAscii()}");
ErrCnt++; ErrCnt++;
return false; return false;
} }
...@@ -378,7 +380,7 @@ namespace GeneralGommunication ...@@ -378,7 +380,7 @@ namespace GeneralGommunication
if (!IsMatch(commReq, pack)) if (!IsMatch(commReq, pack))
{ {
//回复对不上请求 //回复对不上请求
logger.Error($"ACK expect:{commReq.PrefixString} len={commReq.ResponseTotalLen + 1}, but reponse len ={pack.Count()} reponse: {pack.ToString_Bytes2HexAndAscii()}"); logger.Error($"ACK expect:{commReq.PrefixString} len={commReq.ResponseTotalLen + 1}, but reponse len ={pack.Count()} | {pack.ToString_Bytes2HexAndAscii()}");
ErrCnt++; ErrCnt++;
return false; return false;
} }
...@@ -392,9 +394,9 @@ namespace GeneralGommunication ...@@ -392,9 +394,9 @@ namespace GeneralGommunication
tran.retData = retData; tran.retData = retData;
if (retData == null) if (retData == null)
logger.Debug($"ACK {commReq.PrefixString}"); logger.Debug($"ACK {commReq.PrefixString} | {pack.ToString_Bytes2Hex()}");
else else
logger.Debug($"ACK {commReq.PrefixString} {Newtonsoft.Json.JsonConvert.SerializeObject(retData)}"); logger.Debug($"ACK {commReq.PrefixString} {Newtonsoft.Json.JsonConvert.SerializeObject(retData)} | {pack.ToString_Bytes2Hex()}");
//有很多指令是没有回复数据的, 回调只是通知 指令已经执行了而已 //有很多指令是没有回复数据的, 回调只是通知 指令已经执行了而已
//调用回调 //调用回调
...@@ -432,7 +434,7 @@ namespace GeneralGommunication ...@@ -432,7 +434,7 @@ namespace GeneralGommunication
if (commReq.ResponseTotalLen + PrefixIndex > pack.Count()) if (commReq.ResponseTotalLen + PrefixIndex > pack.Count())
{ {
//失败,指令长度不对!! //失败,指令长度不对!!
//logger.Error($"ACK expect:{commReq.PrefixString} len={commReq.ReponseTotalLen + 1}, but reponse len ={pack.Count()} reponse: {bytes2hex(pack)}"); //logger.Error($"ACK expect:{commReq.PrefixString} len={commReq.ReponseTotalLen + 1}, but reponse len ={pack.Count()} | {bytes2hex(pack)}");
//ErrCnt++; //ErrCnt++;
return false; return false;
} }
...@@ -443,7 +445,7 @@ namespace GeneralGommunication ...@@ -443,7 +445,7 @@ namespace GeneralGommunication
if (!commReq.IsMatch(commReq, pack, PrefixIndex, commReq.IsMatchContext, ref retData)) if (!commReq.IsMatch(commReq, pack, PrefixIndex, commReq.IsMatchContext, ref retData))
{ {
//回复对不上请求 //回复对不上请求
//logger.Error($"ACK expect:{commReq.PrefixString} ,but reponse: {bytes2hex(pack)}"); //logger.Error($"ACK expect:{commReq.PrefixString} ,but | {bytes2hex(pack)}");
return false; return false;
} }
} }
...@@ -453,7 +455,7 @@ namespace GeneralGommunication ...@@ -453,7 +455,7 @@ namespace GeneralGommunication
if (!IsMatch(commReq, pack)) if (!IsMatch(commReq, pack))
{ {
//回复对不上请求 //回复对不上请求
//logger.Error($"ACK expect:{commReq.PrefixString} ,but reponse: {bytes2hex(pack)}"); //logger.Error($"ACK expect:{commReq.PrefixString} ,but | {bytes2hex(pack)}");
return false; return false;
} }
...@@ -487,7 +489,7 @@ namespace GeneralGommunication ...@@ -487,7 +489,7 @@ namespace GeneralGommunication
if (commReq == null) { if (commReq == null) {
//不能解析 //不能解析
logger.Error($"ACK multi reponse len ={pack.Count()} reponse: {pack.ToString_Bytes2HexAndAscii()}"); logger.Error($"ACK multi reponse len ={pack.Count()} | {pack.ToString_Bytes2HexAndAscii()}");
ErrCnt++; ErrCnt++;
return false; return false;
} }
...@@ -496,9 +498,9 @@ namespace GeneralGommunication ...@@ -496,9 +498,9 @@ namespace GeneralGommunication
tran.retData = retData; tran.retData = retData;
//解析成功 //解析成功
if (retData == null) if (retData == null)
logger.Debug($"ACK multi {commReq.PrefixString}"); logger.Debug($"ACK multi {commReq.PrefixString} | {pack.ToString_Bytes2Hex()}");
else else
logger.Debug($"ACK multi {commReq.PrefixString} {Newtonsoft.Json.JsonConvert.SerializeObject(retData)}"); logger.Debug($"ACK multi {commReq.PrefixString} {Newtonsoft.Json.JsonConvert.SerializeObject(retData)} | {pack.ToString_Bytes2Hex()}");
//有很多指令是没有回复数据的, 回调只是通知 指令已经执行了而已 //有很多指令是没有回复数据的, 回调只是通知 指令已经执行了而已
//调用回调 //调用回调
......
...@@ -97,14 +97,16 @@ namespace GeneralGommunication ...@@ -97,14 +97,16 @@ namespace GeneralGommunication
void updatePrefixString() void updatePrefixString()
{ {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append('[');
for (int i = 0; i < Prefix.Count(); i++) for (int i = 0; i < Prefix.Count(); i++)
{ {
if (Prefix[i] >= 33 && Prefix[i] <= 126) if (Prefix[i] >= 33 && Prefix[i] <= 126)
stringBuilder.Append((char)Prefix[i]); stringBuilder.Append((char)Prefix[i]);
else else
stringBuilder.Append($" 0x{Prefix[i]:X2} "); stringBuilder.Append($" {Prefix[i]:X2}");
} }
PrefixString = stringBuilder.ToString(); stringBuilder.Append(']');
PrefixString = stringBuilder.ToString();
} }
/// <summary> /// <summary>
/// 回复数据 长度, 不含前序 /// 回复数据 长度, 不含前序
......
...@@ -11,6 +11,7 @@ using System.Collections.Generic; ...@@ -11,6 +11,7 @@ using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.ComponentModel; using System.ComponentModel;
using System.Diagnostics; using System.Diagnostics;
using System.Diagnostics.SymbolStore;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
...@@ -119,6 +120,10 @@ namespace FlyADBase ...@@ -119,6 +120,10 @@ namespace FlyADBase
/// </summary> /// </summary>
public int AD2 { get; private set; } public int AD2 { get; private set; }
/// <summary>
/// 被重启了
/// </summary>
public bool IsReseted { get; private set; }
/// <summary> /// <summary>
/// AD值最大值 ,恒定返回65535 /// AD值最大值 ,恒定返回65535
/// </summary> /// </summary>
...@@ -321,7 +326,7 @@ namespace FlyADBase ...@@ -321,7 +326,7 @@ namespace FlyADBase
void constructor() void constructor()
{ {
Now = DateTime.Now; Now = DateTime.Now;
sysTickContext.BeReseted += () => BeResetTime = DateTime.Now; //sysTickContext.BeReseted += () => BeResetTime = DateTime.Now;
...@@ -453,6 +458,7 @@ namespace FlyADBase ...@@ -453,6 +458,7 @@ namespace FlyADBase
{ {
if (!IsConnected) if (!IsConnected)
{ {
//没有连接上,停止 stopwatch
if (stopwatch_pushIntervalCheck.IsRunning) if (stopwatch_pushIntervalCheck.IsRunning)
stopwatch_pushIntervalCheck.Stop(); stopwatch_pushIntervalCheck.Stop();
return; return;
...@@ -460,6 +466,7 @@ namespace FlyADBase ...@@ -460,6 +466,7 @@ namespace FlyADBase
if (!stopwatch_pushIntervalCheck.IsRunning) if (!stopwatch_pushIntervalCheck.IsRunning)
{ {
//启动 stopwatch
stopwatch_pushIntervalCheck.Restart(); stopwatch_pushIntervalCheck.Restart();
} }
else else
...@@ -640,13 +647,18 @@ namespace FlyADBase ...@@ -640,13 +647,18 @@ namespace FlyADBase
_core_PushRunResultEvent(e as PushRunResultEventArgs); _core_PushRunResultEvent(e as PushRunResultEventArgs);
} }
} }
} }
Stopwatch sw_reset = new Stopwatch();
void _core_PushDataEvent(PushDataEventArgs e) { void _core_PushDataEvent(PushDataEventArgs e) {
IsReseted = e.IsReseted;
Now = sysTickContext.ToDateTime(e.SysTick);
AD = e.AD;
AD2 = e.AD2;
Now = sysTickContext.ToDateTime(e.SysTick);
if (e.ENC1 != null) if (e.ENC1 != null)
{ {
...@@ -676,6 +688,24 @@ namespace FlyADBase ...@@ -676,6 +688,24 @@ namespace FlyADBase
} }
if (e.IsReseted)
{
//设备刚被重启,
//滞后1s后,检查
if (sw_reset.IsRunning && sw_reset.ElapsedMilliseconds < 1000)
{
//还没清空复位状态位
return;
}
sw_reset.Restart();
core.ClearResetBit(null, null);
AfterConnected();
return;
}
sw_reset.Reset();
//脉冲,输入,没准备好,不触发 //脉冲,输入,没准备好,不触发
if (!isReadyContext.isReadyGetPos1) if (!isReadyContext.isReadyGetPos1)
return; return;
...@@ -688,11 +718,20 @@ namespace FlyADBase ...@@ -688,11 +718,20 @@ namespace FlyADBase
Now, e.AD, e.AD2); Now, e.AD, e.AD2);
} }
/// <summary> /// <summary>
/// 连接后初始化 /// 连接后初始化
/// </summary> /// </summary>
void AfterConnected() void AfterConnected()
{ {
if (BeResetTime != DateTime.MinValue)
{
//1秒内,不能多次调用
double sec = (DateTime.Now - BeResetTime).TotalSeconds;
if (sec < 1)
return;
}
BeResetTime = DateTime.Now;
if (IsReadParamFromDev) if (IsReadParamFromDev)
{ {
...@@ -763,7 +802,15 @@ namespace FlyADBase ...@@ -763,7 +802,15 @@ namespace FlyADBase
//TODO //TODO
} }
/// <summary>
/// 重启AD盒设备<para/>
/// N秒后停止"喂狗", 17ms不"喂狗",就会重启
/// </summary>
/// <param name="sec">N秒后停止"喂狗"</param>
public void Reset(byte sec)
{
core.Reset(sec, null, null);
}
......
...@@ -286,11 +286,11 @@ namespace FlyADBase ...@@ -286,11 +286,11 @@ namespace FlyADBase
int[] ad1s = dataList.Select(d => d.ad).ToArray(); int[] ad1s = dataList.Select(d => d.ad).ToArray();
int[] ad2s = dataList.Select(d => d.ad2).ToArray(); int[] ad2s = dataList.Select(d => d.ad2).ToArray();
int ad = (int)ad1s.Average(); //int ad = (int)ad1s.Average();
AD = ad; //AD = ad;
int ad2 = (int)ad2s.Average(); //int ad2 = (int)ad2s.Average();
AD2 = ad2; //AD2 = ad2;
//推送timegrid事件 //推送timegrid事件
TimeGridEvent?.Invoke(this, TimeGridEvent?.Invoke(this,
......
using FlyADBase.Inc; using FlyADBase.Inc;
using FObjBase; using FObjBase;
using GeneralGommunication; using GeneralGommunication;
using Misc;
using NLog; using NLog;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
...@@ -15,6 +16,9 @@ namespace FlyADBase ...@@ -15,6 +16,9 @@ namespace FlyADBase
{ {
public class FlyAd2021B2Core : Dev7E, IFlyAd2021B2Core public class FlyAd2021B2Core : Dev7E, IFlyAd2021B2Core
{ {
/// <summary>
/// 参数列表的参数序号
/// </summary>
const UInt16 P_Saved_Index_Op_Mode = 0; const UInt16 P_Saved_Index_Op_Mode = 0;
const UInt16 P_Saved_Index_Op_Motor = 1; const UInt16 P_Saved_Index_Op_Motor = 1;
const UInt16 P_Saved_Index_Op_Encoder = 2; const UInt16 P_Saved_Index_Op_Encoder = 2;
...@@ -96,6 +100,7 @@ namespace FlyADBase ...@@ -96,6 +100,7 @@ namespace FlyADBase
bool hasENC2 = Misc.MyBase.CHECKBIT(B1, 5); bool hasENC2 = Misc.MyBase.CHECKBIT(B1, 5);
bool hasOut = Misc.MyBase.CHECKBIT(B1, 4); bool hasOut = Misc.MyBase.CHECKBIT(B1, 4);
bool hasAd2 = Misc.MyBase.CHECKBIT(B1, 3); bool hasAd2 = Misc.MyBase.CHECKBIT(B1, 3);
bool hasReset = Misc.MyBase.CHECKBIT(B1, 0);
var buf = pack; var buf = pack;
int index = 2; int index = 2;
...@@ -175,6 +180,11 @@ namespace FlyADBase ...@@ -175,6 +180,11 @@ namespace FlyADBase
eventArgs.AD2 = BitConverter.ToUInt16(buf, index); eventArgs.AD2 = BitConverter.ToUInt16(buf, index);
index += 2; index += 2;
} }
if (hasReset)
{
eventArgs.IsReseted = true;
}
PushDataEvent?.Invoke(this, eventArgs); PushDataEvent?.Invoke(this, eventArgs);
} }
...@@ -184,7 +194,7 @@ namespace FlyADBase ...@@ -184,7 +194,7 @@ namespace FlyADBase
/// <summary> /// <summary>
/// 功能包解析 /// 功能包解析
/// </summary> /// </summary>
/// <param name="datas"></param> /// <param name="pack"></param>
protected override void ParseFuncPack(byte[] pack) protected override void ParseFuncPack(byte[] pack)
{ {
//TODO 要处理 TimeOut / ParseFuncPack / GetSendMsg 线性同步问题 //TODO 要处理 TimeOut / ParseFuncPack / GetSendMsg 线性同步问题
...@@ -839,32 +849,6 @@ namespace FlyADBase ...@@ -839,32 +849,6 @@ namespace FlyADBase
} }
#endregion #endregion
#region SysParamComm 系统参数指令
/// <summary>
/// 获取系统当前Tick
/// </summary>
[CallBack(typeof(UInt32))]
public void GetSysTick(CallBackHandler asyncDelegate, object asyncContext)
{
COMMREQ commReq = new COMMREQ()
{
Prefix = COMMREQ.ToPrefix("ST"),
ResponseLen = 4,
ParseFuncPack = (pack, dataIdx) => BitConverter.ToInt32(pack, dataIdx)
};
//放入 交易队列
AddTran(
new COMMREQ_Transaction()
{
commReq = commReq,
asyncDelegate = asyncDelegate,
asyncContext = asyncContext
});
}
#endregion
#region GetSysParam 读运行参数 #region GetSysParam 读运行参数
[CallBack(typeof(MOTORTYPE))] [CallBack(typeof(MOTORTYPE))]
public void GetSysParam_MotorType(CallBackHandler asyncDelegate, object asyncContext) public void GetSysParam_MotorType(CallBackHandler asyncDelegate, object asyncContext)
...@@ -1112,5 +1096,81 @@ namespace FlyADBase ...@@ -1112,5 +1096,81 @@ namespace FlyADBase
} }
#endregion #endregion
/// <summary>
/// 获取系统当前Tick
/// </summary>
[CallBack(typeof(UInt32))]
public void GetSysTick(CallBackHandler asyncDelegate, object asyncContext)
{
COMMREQ commReq = new COMMREQ()
{
Prefix = COMMREQ.ToPrefix("ST"),
ResponseLen = 4,
ParseFuncPack = (pack, dataIdx) => BitConverter.ToInt32(pack, dataIdx)
};
//放入 交易队列
AddTran(
new COMMREQ_Transaction()
{
commReq = commReq,
asyncDelegate = asyncDelegate,
asyncContext = asyncContext
});
}
/// <summary>
/// 重启AD盒设备<para/>
/// N秒后停止"喂狗", 17ms不"喂狗",就会重启
/// </summary>
/// <param name="sec">N秒后停止"喂狗"</param>
/// <param name="asyncDelegate"></param>
/// <param name="asyncContext"></param>
public void Reset(byte sec, CallBackHandler asyncDelegate, object asyncContext)
{
List<byte> datas = new List<byte>();
datas.Add(sec);
var datasObj = new { sec };
COMMREQ commReq = new COMMREQ()
{
Prefix = COMMREQ.ToPrefix("PR")
};
//放入 交易队列
AddTran(
new COMMREQ_Transaction()
{
commReq = commReq,
asyncDelegate = asyncDelegate,
asyncContext = asyncContext,
datas = datas.ToArray(),
datasObj = datasObj
});
}
/// <summary>
/// 触发推送B0位 的 IsReseted =false
/// </summary>
/// <param name="asyncDelegate"></param>
/// <param name="asyncContext"></param>
public void ClearResetBit(CallBackHandler asyncDelegate, object asyncContext)
{
COMMREQ commReq = new COMMREQ()
{
Prefix = COMMREQ.ToPrefix("Pr")
};
//放入 交易队列
AddTran(
new COMMREQ_Transaction()
{
commReq = commReq,
asyncDelegate = asyncDelegate
});
}
} }
} }
...@@ -7,6 +7,8 @@ using System.ComponentModel; ...@@ -7,6 +7,8 @@ using System.ComponentModel;
using FObjBase; using FObjBase;
using Misc; using Misc;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using GeneralGommunication;
namespace FlyADBase namespace FlyADBase
{ {
/// <summary> /// <summary>
...@@ -65,6 +67,11 @@ namespace FlyADBase ...@@ -65,6 +67,11 @@ namespace FlyADBase
/// </summary> /// </summary>
int AD2 { get; } int AD2 { get; }
/// <summary>
/// 被重启了
/// </summary>
bool IsReseted { get; }
/// <summary> /// <summary>
/// AD值最大值 ,恒定返回65535 /// AD值最大值 ,恒定返回65535
/// </summary> /// </summary>
...@@ -227,6 +234,13 @@ namespace FlyADBase ...@@ -227,6 +234,13 @@ namespace FlyADBase
/// </summary> /// </summary>
DRIVE_MAN_STATUS DriveStatus { get; } DRIVE_MAN_STATUS DriveStatus { get; }
#endregion #endregion
/// <summary>
/// 重启AD盒设备<para/>
/// N秒后停止"喂狗", 17ms不"喂狗",就会重启
/// </summary>
/// <param name="sec">N秒后停止"喂狗"</param>
void Reset(byte sec);
} }
......
...@@ -87,16 +87,6 @@ namespace FlyADBase.Inc ...@@ -87,16 +87,6 @@ namespace FlyADBase.Inc
void EStop(CallBackHandler asyncDelegate, object asyncContext); void EStop(CallBackHandler asyncDelegate, object asyncContext);
#endregion #endregion
#region SysParamComm 系统参数指令
/// <summary>
/// 获取系统当前Tick
/// </summary>
[CallBack(typeof(UInt32))]
void GetSysTick(CallBackHandler asyncDelegate, object asyncContext);
#endregion
#region GetSysParam 读运行参数 #region GetSysParam 读运行参数
[CallBack(typeof(MOTORTYPE))] [CallBack(typeof(MOTORTYPE))]
void GetSysParam_MotorType(CallBackHandler asyncDelegate, object asyncContext); void GetSysParam_MotorType(CallBackHandler asyncDelegate, object asyncContext);
...@@ -117,7 +107,6 @@ namespace FlyADBase.Inc ...@@ -117,7 +107,6 @@ namespace FlyADBase.Inc
#region SetSysParam 设置运行参数 #region SetSysParam 设置运行参数
void SetSysParam_MotorType(MOTORTYPE motorType, CallBackHandler asyncDelegate, object asyncContext); void SetSysParam_MotorType(MOTORTYPE motorType, CallBackHandler asyncDelegate, object asyncContext);
void SetSysParam_Ratio01(UInt16 ratio01, CallBackHandler asyncDelegate, object asyncContext); void SetSysParam_Ratio01(UInt16 ratio01, CallBackHandler asyncDelegate, object asyncContext);
void SetSysParam_Ratio02(UInt16 ratio02, CallBackHandler asyncDelegate, object asyncContext); void SetSysParam_Ratio02(UInt16 ratio02, CallBackHandler asyncDelegate, object asyncContext);
...@@ -127,7 +116,32 @@ namespace FlyADBase.Inc ...@@ -127,7 +116,32 @@ namespace FlyADBase.Inc
void SetSysParam_Jog(UInt32 jog, CallBackHandler asyncDelegate, object asyncContext); void SetSysParam_Jog(UInt32 jog, CallBackHandler asyncDelegate, object asyncContext);
void SetSysParam_Apply(CallBackHandler asyncDelegate, object asyncContext); void SetSysParam_Apply(CallBackHandler asyncDelegate, object asyncContext);
#endregion #endregion
/// <summary>
/// 获取系统当前Tick
/// </summary>
[CallBack(typeof(UInt32))]
void GetSysTick(CallBackHandler asyncDelegate, object asyncContext);
/// <summary>
/// 重启AD盒设备<para/>
/// N秒后停止"喂狗", 17ms不"喂狗",就会重启
/// </summary>
/// <param name="sec">N秒后停止"喂狗"</param>
/// <param name="asyncDelegate"></param>
/// <param name="asyncContext"></param>
void Reset(byte sec, CallBackHandler asyncDelegate, object asyncContext);
/// <summary>
/// 触发推送B0位 的 IsReseted =false
/// </summary>
/// <param name="asyncDelegate"></param>
/// <param name="asyncContext"></param>
void ClearResetBit(CallBackHandler asyncDelegate, object asyncContext);
#endregion #endregion
} }
...@@ -143,6 +157,11 @@ namespace FlyADBase.Inc ...@@ -143,6 +157,11 @@ namespace FlyADBase.Inc
public UInt16? InChange { get; set; } public UInt16? InChange { get; set; }
public UInt16? Out { get; set; } public UInt16? Out { get; set; }
/// <summary>
/// AD盒被重启了
/// </summary>
public bool IsReseted { get; set; }
public PushDataEventArgs() public PushDataEventArgs()
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment