using Quartz;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using WIDESEAWCS_Communicator;
|
using WIDESEAWCS_IBasicInfoRepository;
|
using WIDESEAWCS_ISystemServices;
|
using WIDESEAWCS_ITaskInfoRepository;
|
using WIDESEAWCS_ITaskInfoService;
|
using WIDESEAWCS_QuartzJob;
|
|
namespace WIDESEAWCS_Tasks
|
{
|
/// <summary>
|
/// 任务获取 后底板1 的任务
|
/// </summary>
|
///
|
[DisallowConcurrentExecution]
|
public class TaskAcquisition_Back1_Job : JobBase, IJob
|
{
|
private readonly ITaskRepository _taskRepository;
|
private readonly ITaskService _taskService;
|
private readonly ISys_ConfigService _sys_ConfigService;
|
private readonly IDt_StationManagerRepository _stationManagerRepository;
|
public TaskAcquisition_Back1_Job(ITaskRepository taskRepository, ITaskService taskService, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository)
|
{
|
_taskRepository = taskRepository;
|
_taskService = taskService;
|
_sys_ConfigService = configService;
|
_stationManagerRepository = stationManagerRepository;
|
}
|
public Task Execute(IJobExecutionContext context)
|
{
|
string ip = "127.0.0.1";
|
int port = 502;
|
string name = "后底板1";
|
ModbusTcp modbusTcp = new ModbusTcp(ip, port, name);
|
modbusTcp.Connect();
|
//var a = modbusTcp.Read("40002", 20);
|
//string barcode = Encoding.UTF8.GetString(a).Replace("\0", "").Replace("\\0", "");
|
|
// 读取指定的地址读到10进制的ascii码转成16进制
|
byte[] rawBytes = modbusTcp.Read("10", 20);
|
string originalDecimalStr = Encoding.ASCII.GetString(rawBytes).TrimEnd('\0');
|
Console.WriteLine($"读取到的原始十进制字符串:{originalDecimalStr}");
|
// 下面这一段就是你要的:转 16 进制
|
ulong number = ulong.Parse(originalDecimalStr); // 转成数字
|
string hexStr = number.ToString("X"); // 转大写16进制
|
Console.WriteLine("转换成16进制:" + hexStr);
|
|
// 16进制转成10进制
|
// 2. 16进制 → 转回十进制(你要的功能)
|
ulong decimalResult = Convert.ToUInt64(hexStr, 16);
|
Console.WriteLine("16进制转回十进制:" + decimalResult);
|
bool flag = modbusTcp.Write("30", decimalResult.ToString());
|
|
modbusTcp.Disconnect();
|
Console.WriteLine("进入了TaskAcquisition_Back1_Job");
|
return Task.CompletedTask;
|
}
|
}
|
}
|