chore: 初始化平芝126KV总装线 WebApi
This commit is contained in:
82
Tighten/Helpers/TightenHelpers.cs
Normal file
82
Tighten/Helpers/TightenHelpers.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace WebApi.Tighten
|
||||
{
|
||||
public class TightenHelpers
|
||||
{
|
||||
public static bool Send(TcpClient tcpClient, string command,out string errMsg)
|
||||
{
|
||||
bool send = false;
|
||||
errMsg = "";
|
||||
try
|
||||
{
|
||||
var sendstr = command.Replace(" ", "");
|
||||
byte[] commandbyte = Encoding.Default.GetBytes(sendstr);
|
||||
tcpClient.Client.Send(commandbyte, SocketFlags.None);
|
||||
send = true;
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
errMsg = err.Message;
|
||||
send = false;
|
||||
}
|
||||
return send;
|
||||
}
|
||||
|
||||
public static string Read(TcpClient tcpClient, out string errMsg)
|
||||
{
|
||||
errMsg = "";
|
||||
string command = "";
|
||||
if (tcpClient != null && tcpClient.Connected)
|
||||
{
|
||||
try
|
||||
{
|
||||
byte[] byteCommand = new byte[1024];
|
||||
int icommand = tcpClient.Client.Receive(byteCommand);
|
||||
command = System.Text.Encoding.ASCII.GetString(byteCommand, 0, icommand);
|
||||
}
|
||||
catch(Exception ex) {
|
||||
errMsg = ex.Message;
|
||||
}
|
||||
}
|
||||
return command;
|
||||
}
|
||||
|
||||
public static void ParseTorqueData(string input, out double minTorque, out double maxTorque, out double targetTorque, out double actualTorque)
|
||||
{
|
||||
// 初始化默认值
|
||||
minTorque = maxTorque = targetTorque = actualTorque = 0;
|
||||
|
||||
// 检查输入长度是否足够(至少需要146字符)
|
||||
if (input == null || input.Length < 146)
|
||||
{
|
||||
throw new ArgumentException("输入字符串长度不足");
|
||||
}
|
||||
|
||||
// 解析扭矩最小值(字节117-122,索引116-121)
|
||||
string torqueMinStr = input.Substring(116, 6);
|
||||
if (int.TryParse(torqueMinStr, out int torqueMinInt))
|
||||
minTorque = torqueMinInt / 100.0;
|
||||
|
||||
// 解析扭矩最大值(字节125-130,索引124-129)
|
||||
string torqueMaxStr = input.Substring(124, 6);
|
||||
if (int.TryParse(torqueMaxStr, out int torqueMaxInt))
|
||||
maxTorque = torqueMaxInt / 100.0;
|
||||
|
||||
// 解析扭矩目标值(字节133-138,索引132-137)
|
||||
string torqueTargetStr = input.Substring(132, 6);
|
||||
if (int.TryParse(torqueTargetStr, out int torqueTargetInt))
|
||||
targetTorque = torqueTargetInt / 100.0;
|
||||
|
||||
// 解析实际扭矩值(字节141-146,索引140-145)
|
||||
string torqueActualStr = input.Substring(140, 6);
|
||||
if (int.TryParse(torqueActualStr, out int torqueActualInt))
|
||||
actualTorque = torqueActualInt / 100.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user