75 lines
2.5 KiB
C#
75 lines
2.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace 薄膜气体透过率测试仪
|
|
{
|
|
public class DataChange
|
|
{
|
|
/// <summary>
|
|
/// ushort转为float类型
|
|
/// </summary>
|
|
/// <param name="P1"></param>
|
|
/// <param name="P2"></param>
|
|
/// <returns>float型数据</returns>
|
|
public float UshortToFloat(ushort P1, ushort P2)
|
|
{
|
|
int intSign, intSignRest, intExponent, intExponentRest;
|
|
float faResult, faDigit;
|
|
intSign = P1 / 32768;
|
|
intSignRest = P1 % 32768;
|
|
intExponent = intSignRest / 128;
|
|
intExponentRest = intSignRest % 128;
|
|
faDigit = (float)(intExponentRest * 65536 + P2) / 8388608;
|
|
faResult = (float)Math.Pow(-1, intSign) * (float)Math.Pow(2, intExponent - 127) * (faDigit + 1);
|
|
return faResult;
|
|
}
|
|
/// <summary>
|
|
/// ushort转为int类型
|
|
/// </summary>
|
|
/// <param name="u1"></param>
|
|
/// <param name="u2"></param>
|
|
/// <returns>返回int型数据</returns>
|
|
public int UshortToInt1(ushort u1, ushort u2)
|
|
{
|
|
ushort[] maidong = new ushort[2] { u1, u2 };
|
|
byte[] bytes = new byte[maidong.Length * 2];
|
|
Buffer.BlockCopy(maidong, 0, bytes, 0, bytes.Length);
|
|
int result = BitConverter.ToInt32(bytes, 0);
|
|
// 将字节数组转换为32位无符号整数
|
|
return result;
|
|
|
|
}
|
|
/// <summary>
|
|
/// Float转为Ushort数组发送
|
|
/// </summary>
|
|
/// <param name="value"></param>
|
|
/// <returns>返回ushort数组</returns>
|
|
public ushort[] SplitFloatToUShortArray(float value)
|
|
{
|
|
byte[] floatBytes = BitConverter.GetBytes(value);
|
|
ushort[] ushortArray = new ushort[floatBytes.Length / 2];
|
|
|
|
for (int i = 0, j = 0; i < floatBytes.Length; i += 2, j++)
|
|
{
|
|
ushortArray[j] = BitConverter.ToUInt16(floatBytes, i);
|
|
}
|
|
|
|
return ushortArray;
|
|
}
|
|
/// <summary>
|
|
/// Int转为ushort数组发送
|
|
/// </summary>
|
|
/// <param name="res"></param>
|
|
/// <returns>返回ushort数组</returns>
|
|
public ushort[] intToushorts(int res)
|
|
{
|
|
ushort ust1 = (ushort)(res >> 16);
|
|
ushort ust2 = (ushort)res;
|
|
return new ushort[] { ust2, ust1 };
|
|
}
|
|
}
|
|
}
|