Files
Modbus.Net/Modbus.Net/Modbus.Net(temp)/AddressTranslator.cs
parallelbgls@outlook.com c8eee16a21 2016-01-30 update 3
2016-01-30 15:31:30 +08:00

37 lines
1.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections.Generic;
namespace Modbus.Net
{
/// <summary>
/// 地址翻译器
/// </summary>
public abstract class AddressTranslator
{
/// <summary>
/// 地址转换
/// </summary>
/// <param name="address">地址前地址</param>
/// <param name="isRead">是否为读取,是为读取,否为写入</param>
/// <returns>Key为转换后的地址Value为辅助码</returns>
public abstract KeyValuePair<int,int> AddressTranslate(string address, bool isRead);
}
/// <summary>
/// 基本的地址翻译器
/// </summary>
public class AddressTranslatorBase : AddressTranslator
{
public override KeyValuePair<int, int> AddressTranslate(string address, bool isRead)
{
int num1,num2;
string[] split = address.Split(':');
if (split.Length != 2) throw new FormatException();
if (int.TryParse(split[0], out num1) && int.TryParse(split[1], out num2))
{
return new KeyValuePair<int, int>(num2, num1);
}
throw new FormatException();
}
}
}