2015-10-10 update 1 add two lost file
This commit is contained in:
16
Modbus.Net/ModBus.Net/Modbus/AddressFormaterModbus.cs
Normal file
16
Modbus.Net/ModBus.Net/Modbus/AddressFormaterModbus.cs
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace ModBus.Net.Modbus
|
||||||
|
{
|
||||||
|
public class AddressFormaterNA200H : AddressFormater
|
||||||
|
{
|
||||||
|
public override string FormatAddress(string area, int address)
|
||||||
|
{
|
||||||
|
return area + address;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
56
Modbus.Net/ModBus.Net/Simense/AddressTranslatorSimense.cs
Normal file
56
Modbus.Net/ModBus.Net/Simense/AddressTranslatorSimense.cs
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace ModBus.Net.Simense
|
||||||
|
{
|
||||||
|
public class AddressTranslatorSimense : AddressTranslator
|
||||||
|
{
|
||||||
|
protected Dictionary<string, int> AreaCodeDictionary;
|
||||||
|
|
||||||
|
public AddressTranslatorSimense()
|
||||||
|
{
|
||||||
|
AreaCodeDictionary = new Dictionary<string, int>
|
||||||
|
{
|
||||||
|
{"S", 0x04},
|
||||||
|
{"SM", 0x05},
|
||||||
|
{"AI", 0x06},
|
||||||
|
{"AQ", 0x07},
|
||||||
|
{"C", 0x1E},
|
||||||
|
{"T", 0x1F},
|
||||||
|
{"HC", 0x20},
|
||||||
|
{"I", 0x81},
|
||||||
|
{"Q", 0x82},
|
||||||
|
{"M", 0x83},
|
||||||
|
{"DB", 0x84},
|
||||||
|
{"V", 0x184},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public override KeyValuePair<int, int> AddressTranslate(string address, bool isRead)
|
||||||
|
{
|
||||||
|
address = address.ToUpper();
|
||||||
|
if (address.Substring(0, 2) == "DB")
|
||||||
|
{
|
||||||
|
var addressSplit = address.Split('.');
|
||||||
|
if (addressSplit.Length != 2) throw new FormatException();
|
||||||
|
addressSplit[0] = addressSplit[0].Substring(2);
|
||||||
|
if (addressSplit[1].Substring(0, 2) == "DB")
|
||||||
|
addressSplit[1] = addressSplit[1].Substring(2);
|
||||||
|
return new KeyValuePair<int, int>(int.Parse(addressSplit[1]),
|
||||||
|
int.Parse(addressSplit[0])*256 + AreaCodeDictionary["DB"]);
|
||||||
|
}
|
||||||
|
int i = 0;
|
||||||
|
int t;
|
||||||
|
while (!int.TryParse(address[i].ToString(), out t) && i < address.Length)
|
||||||
|
{
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
if (i == 0 || i >= address.Length) throw new FormatException();
|
||||||
|
string head = address.Substring(0, i);
|
||||||
|
string tail = address.Substring(i);
|
||||||
|
return
|
||||||
|
new KeyValuePair<int, int>(int.Parse(tail),
|
||||||
|
AreaCodeDictionary[head]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user