现场优化6
This commit is contained in:
@@ -137,7 +137,7 @@ namespace DeviceCommand.Devices
|
||||
/// </summary>
|
||||
/// <param name="X轴原点">X轴原点位置 (范围: 0 ~ 50000)</param>
|
||||
/// <param name="Y轴原点">Y轴原点位置 (范围: 0 ~ 50000)</param>
|
||||
/// <param name="Z轴原点">Z轴原点位置 (范围: 0 ~ 20000)</param>
|
||||
/// <param name="Z轴原点">Z轴原点位置 (范围: 0 ~ 40000)</param>
|
||||
/// <param name="取消令牌">取消令牌</param>
|
||||
public async Task 设置原点位置(int X轴原点, int Y轴原点, int Z轴原点, CancellationToken 取消令牌 = default)
|
||||
{
|
||||
@@ -147,8 +147,8 @@ namespace DeviceCommand.Devices
|
||||
if (Y轴原点 < 0 || Y轴原点 > 50000)
|
||||
throw new ArgumentOutOfRangeException(nameof(Y轴原点), $"Y轴原点设置值 [{Y轴原点}] 超出合法范围 (0 - 50000)");
|
||||
|
||||
if (Z轴原点 < 0 || Z轴原点 > 20000)
|
||||
throw new ArgumentOutOfRangeException(nameof(Z轴原点), $"Z轴原点设置值 [{Z轴原点}] 超出合法范围 (0 - 20000)");
|
||||
if (Z轴原点 < 0 || Z轴原点 > 40000)
|
||||
throw new ArgumentOutOfRangeException(nameof(Z轴原点), $"Z轴原点设置值 [{Z轴原点}] 超出合法范围 (0 - 40000)");
|
||||
|
||||
await WriteMultipleRegistersAsync(_slaveAddress, ADDR_HD_X_HOME_POS, Int32ToUshorts(X轴原点), 取消令牌);
|
||||
await WriteMultipleRegistersAsync(_slaveAddress, ADDR_HD_Y_HOME_POS, Int32ToUshorts(Y轴原点), 取消令牌);
|
||||
@@ -276,7 +276,7 @@ namespace DeviceCommand.Devices
|
||||
break;
|
||||
case 3:
|
||||
targetAddress = ADDR_HD_Z_TARGET;
|
||||
maxLimit = 20000;
|
||||
maxLimit = 40000;
|
||||
currentHomePos = zHome;
|
||||
break;
|
||||
default:
|
||||
@@ -431,7 +431,7 @@ namespace DeviceCommand.Devices
|
||||
break;
|
||||
case 3:
|
||||
startAddress = ADDR_M_Z_START;
|
||||
maxLimit = 20000;
|
||||
maxLimit = 40000;
|
||||
currentHomePos = zHome;
|
||||
break;
|
||||
default:
|
||||
@@ -557,9 +557,9 @@ namespace DeviceCommand.Devices
|
||||
throw new ArgumentOutOfRangeException(nameof(Y偏移量),
|
||||
$"Y轴越界:当前 {_originY} + 偏移 {Y偏移量} = {targetAbsY},最大范围 50000");
|
||||
|
||||
if (targetAbsZ > 20000)
|
||||
if (targetAbsZ > 40000)
|
||||
throw new ArgumentOutOfRangeException(nameof(Z偏移量),
|
||||
$"Z轴越界:当前 {_originZ} + 偏移 {Z偏移量} = {targetAbsZ},最大范围 20000");
|
||||
$"Z轴越界:当前 {_originZ} + 偏移 {Z偏移量} = {targetAbsZ},最大范围 40000");
|
||||
|
||||
// 2. 将偏移量写入目标位置寄存器(ABS已在上次移动后清零,目标 = 偏移量)
|
||||
await WriteMultipleRegistersAsync(_slaveAddress, ADDR_HD_X_TARGET, Int32ToUshorts(X偏移量), 取消令牌);
|
||||
|
||||
@@ -332,6 +332,14 @@ namespace DeviceCommand.Devices
|
||||
{
|
||||
try
|
||||
{
|
||||
string FileDirectory = Path.GetDirectoryName(saveFilePath) ?? ""; // 获取目录
|
||||
string fileNameWithoutExt = Path.GetFileNameWithoutExtension(saveFilePath); // 获取纯文件名
|
||||
string extension = Path.GetExtension(saveFilePath); // 获取后缀名 (如 .png)
|
||||
// 生成时间戳,格式为 年月日_时分秒 (例如 20260817_123045)
|
||||
string timeStamp = DateTime.Now.ToString("yyyyMMdd_HHmmss");
|
||||
|
||||
// 组合成新的路径
|
||||
saveFilePath = Path.Combine(FileDirectory, $"{fileNameWithoutExt}_{timeStamp}{extension}");
|
||||
// 1. 调用我们在基类 Tcp 中全新实现的 ReadRawAsync
|
||||
// 它会在内部下发 ":PRINt? PNG\n",自动接收完整的网络字节流
|
||||
byte[] pureImageBytes = await ReadAllBytesAsync($":PRINt? PNG{ScpiDelimiter}", ct);
|
||||
|
||||
Reference in New Issue
Block a user