|
@@ -32,7 +32,7 @@ namespace Venus_RT.Devices
|
|
|
private AsyncSerialPort _serial;
|
|
|
private MatchCommunicationType _matchCommunicationType;
|
|
|
private string _address;
|
|
|
- public int WorkMode { get; set; } = -1;
|
|
|
+ public string WorkMode { get; set; } = "";
|
|
|
public RevtechMatch(ModuleName mod, VenusDevice venusDevice, MatchCommunicationType matchCommunicationType) : base(mod.ToString(), venusDevice.ToString())
|
|
|
{
|
|
|
_matchCommunicationType = matchCommunicationType;
|
|
@@ -53,6 +53,8 @@ namespace Venus_RT.Devices
|
|
|
var address = SC.GetStringValue($"{mod}.{venusDevice}.IPAddress");
|
|
|
_address = address;
|
|
|
_socket = new AsyncSocketDevice(address);
|
|
|
+ _socket.OnDataChanged +=new AsyncSocketDevice.MessageHandler(OnDataChanged);
|
|
|
+ _socket.OnErrorHappened += _socket_OnErrorHappened;
|
|
|
}
|
|
|
|
|
|
SerachCommandList = new List<string>()
|
|
@@ -64,6 +66,11 @@ namespace Venus_RT.Devices
|
|
|
baseTimer.Enabled = true;
|
|
|
}
|
|
|
|
|
|
+ private void _socket_OnErrorHappened(ErrorEventArgsDevice args)
|
|
|
+ {
|
|
|
+ LOG.Write(eEvent.ERR_RF, Module, $"{Module} Comet RF Error {args.Reason}");
|
|
|
+ }
|
|
|
+
|
|
|
public override bool Initialize()
|
|
|
{
|
|
|
base.Initialize();
|
|
@@ -82,21 +89,14 @@ namespace Venus_RT.Devices
|
|
|
}
|
|
|
else if (_matchCommunicationType == MatchCommunicationType.Ethernet)
|
|
|
{
|
|
|
-
|
|
|
|
|
|
- if (_socket?.IsConnected == true)
|
|
|
- {
|
|
|
- LOG.Write(eEvent.INFO_MATCH, Module, $"{Name} 网口连接成功");
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- LOG.Write(eEvent.INFO_MATCH, Module, $"{Name} 网口连接失败");
|
|
|
- }
|
|
|
+ _socket?.Connect(_address);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
DATA.Subscribe($"{Module}.{Name}.C1", () => TunePosition1);
|
|
|
DATA.Subscribe($"{Module}.{Name}.C2", () => TunePosition2);
|
|
|
- DATA.Subscribe($"{Module}.{Name}.WorkMode", () => WorkMode == 1 ? "Manual" : "Auto");
|
|
|
+ DATA.Subscribe($"{Module}.{Name}.WorkMode", () => WorkMode);
|
|
|
|
|
|
|
|
|
|
|
@@ -141,23 +141,27 @@ namespace Venus_RT.Devices
|
|
|
private void OnDataChanged(byte[] obj)
|
|
|
{
|
|
|
string data = System.Text.Encoding.ASCII.GetString(obj);
|
|
|
+
|
|
|
+
|
|
|
if (data.Length < 10)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
- string[] matchData = data.Split(',');
|
|
|
+ string[] matchData = data.Split(',');
|
|
|
+
|
|
|
if (matchData.Length > 9)
|
|
|
{
|
|
|
- WorkMode = Convert.ToInt32(matchData[0]);
|
|
|
+ WorkMode = matchData[0];
|
|
|
TunePosition1 = Convert.ToSingle(matchData[7]);
|
|
|
TunePosition2 = Convert.ToSingle(matchData[8]);
|
|
|
}
|
|
|
}
|
|
|
private void RevtechMatch_sendDataChangedEvent(string obj)
|
|
|
{
|
|
|
- if ((_matchCommunicationType == MatchCommunicationType.Ethernet && _socket?.IsConnected == true))
|
|
|
+ if ((_matchCommunicationType == MatchCommunicationType.Ethernet))
|
|
|
{
|
|
|
byte[] value = Encoding.ASCII.GetBytes(obj);
|
|
|
+
|
|
|
_socket?.Write(value);
|
|
|
}
|
|
|
else if ((_matchCommunicationType == MatchCommunicationType.RS232 && _serial?.IsOpen() == true))
|