fix: 修复由于基本的通信协议更改不完全导致的无法控制电源与jtag的问题
This commit is contained in:
parent
8ab55f411d
commit
e3b7cc4f63
|
@ -183,7 +183,7 @@ public class JtagController : ControllerBase
|
|||
logger.Info($"User {username} processing bitstream file of size: {fileBytes.Length} bytes");
|
||||
|
||||
// 定义进度跟踪
|
||||
var taskId = _tracker.CreateTask(10000);
|
||||
var taskId = _tracker.CreateTask(8000);
|
||||
_tracker.AdvanceProgress(taskId, 10);
|
||||
|
||||
_ = Task.Run(async () =>
|
||||
|
|
|
@ -756,7 +756,7 @@ public class Jtag
|
|||
|
||||
logger.Trace("Jtag ready to write bitstream");
|
||||
|
||||
ret = await IdleDelay(100000);
|
||||
ret = await IdleDelay(1000);
|
||||
if (!ret.IsSuccessful) return new(ret.Error);
|
||||
else if (!ret.Value) return new(new Exception("Jtag IDLE Delay Failed"));
|
||||
_progressTracker.AdvanceProgress(progressId, 10);
|
||||
|
@ -784,7 +784,7 @@ public class Jtag
|
|||
|
||||
logger.Trace("Jtag reset device");
|
||||
|
||||
ret = await IdleDelay(10000);
|
||||
ret = await IdleDelay(1000);
|
||||
if (!ret.IsSuccessful) return new(ret.Error);
|
||||
else if (!ret.Value) return new(new Exception("Jtag IDLE Delay Failed"));
|
||||
_progressTracker.AdvanceProgress(progressId, 10);
|
||||
|
|
|
@ -436,7 +436,7 @@ public class UDPServer
|
|||
}
|
||||
|
||||
var udpDataObj = await RecordUDPData(data, endPoint, time, Convert.ToInt32(data[1 + 4]));
|
||||
// PrintData(udpDataObj);
|
||||
PrintData(udpDataObj);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
|
|
@ -131,7 +131,7 @@ namespace WebProtocol
|
|||
readonly byte sign = (byte)PackSign.SendAddr;
|
||||
readonly byte commandType;
|
||||
readonly byte burstLength;
|
||||
readonly byte _reserved = 0;
|
||||
readonly byte commandID;
|
||||
readonly UInt32 address;
|
||||
|
||||
/// <summary>
|
||||
|
@ -140,10 +140,10 @@ namespace WebProtocol
|
|||
/// <param name="opts"> 地址包选项 </param>
|
||||
public SendAddrPackage(SendAddrPackOptions opts)
|
||||
{
|
||||
byte byteBurstType = Convert.ToByte((byte)opts.BurstType << 6);
|
||||
byte byteCommandID = Convert.ToByte((opts.CommandID & 0x03) << 4);
|
||||
byte byteBurstType = Convert.ToByte((byte)opts.BurstType << 4);
|
||||
byte byteIsWrite = (opts.IsWrite ? (byte)0x01 : (byte)0x00);
|
||||
this.commandType = Convert.ToByte(byteBurstType | byteCommandID | byteIsWrite);
|
||||
this.commandType = Convert.ToByte(byteBurstType | byteIsWrite);
|
||||
this.commandID = opts.CommandID;
|
||||
this.burstLength = opts.BurstLength;
|
||||
this.address = opts.Address;
|
||||
}
|
||||
|
@ -158,10 +158,10 @@ namespace WebProtocol
|
|||
/// <param name="address"> 设备地址 </param>
|
||||
public SendAddrPackage(BurstType burstType, byte commandID, bool isWrite, byte burstLength, UInt32 address)
|
||||
{
|
||||
byte byteBurstType = Convert.ToByte((byte)burstType << 6);
|
||||
byte byteCommandID = Convert.ToByte((commandID & 0x03) << 4);
|
||||
byte byteBurstType = Convert.ToByte((byte)burstType << 4);
|
||||
byte byteIsWrite = (isWrite ? (byte)0x01 : (byte)0x00);
|
||||
this.commandType = Convert.ToByte(byteBurstType | byteCommandID | byteIsWrite);
|
||||
this.commandType = Convert.ToByte(byteBurstType | byteIsWrite);
|
||||
this.commandID = commandID;
|
||||
this.burstLength = burstLength;
|
||||
this.address = address;
|
||||
}
|
||||
|
@ -172,9 +172,10 @@ namespace WebProtocol
|
|||
/// <param name="commandType">二进制命令类型</param>
|
||||
/// <param name="burstLength">突发长度</param>
|
||||
/// <param name="address">写入或读取的地址</param>
|
||||
public SendAddrPackage(byte commandType, byte burstLength, UInt32 address)
|
||||
public SendAddrPackage(byte commandType, byte burstLength, byte commandID, UInt32 address)
|
||||
{
|
||||
this.commandType = commandType;
|
||||
this.commandID = commandID;
|
||||
this.burstLength = burstLength;
|
||||
this.address = address;
|
||||
}
|
||||
|
@ -190,8 +191,8 @@ namespace WebProtocol
|
|||
{
|
||||
Address = this.address,
|
||||
BurstLength = this.burstLength,
|
||||
BurstType = (BurstType)(this.commandType >> 6),
|
||||
CommandID = Convert.ToByte((this.commandType >> 4) & 0b11),
|
||||
BurstType = (BurstType)(this.commandType >> 4),
|
||||
CommandID = this.commandID,
|
||||
IsWrite = Convert.ToBoolean(this.commandType & 1)
|
||||
};
|
||||
}
|
||||
|
@ -207,7 +208,7 @@ namespace WebProtocol
|
|||
arr[0] = sign;
|
||||
arr[1] = commandType;
|
||||
arr[2] = burstLength;
|
||||
arr[3] = _reserved;
|
||||
arr[3] = commandID;
|
||||
|
||||
var bytesAddr = Common.Number.NumberToBytes(address, 4).Value;
|
||||
Array.Copy(bytesAddr, 0, arr, 4, bytesAddr.Length);
|
||||
|
@ -223,8 +224,8 @@ namespace WebProtocol
|
|||
{
|
||||
var opts = new SendAddrPackOptions()
|
||||
{
|
||||
BurstType = (BurstType)(commandType >> 6),
|
||||
CommandID = Convert.ToByte((commandType >> 4) & 0b0011),
|
||||
BurstType = (BurstType)(commandType >> 4),
|
||||
CommandID = this.commandID,
|
||||
IsWrite = Convert.ToBoolean(commandType & 0x01),
|
||||
BurstLength = burstLength,
|
||||
Address = address,
|
||||
|
@ -258,7 +259,7 @@ namespace WebProtocol
|
|||
}
|
||||
|
||||
var address = Common.Number.BytesToUInt64(bytes[4..]).Value;
|
||||
return new SendAddrPackage(bytes[1], bytes[2], Convert.ToUInt32(address));
|
||||
return new SendAddrPackage(bytes[1], bytes[2], bytes[3], Convert.ToUInt32(address));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -316,7 +317,7 @@ namespace WebProtocol
|
|||
readonly byte[] bodyData;
|
||||
|
||||
/// <summary>
|
||||
/// FPGA->Server 读响应包
|
||||
/// FPGA->Server 读响应包
|
||||
/// 构造函数
|
||||
/// </summary>
|
||||
/// <param name="timestamp"> 时间戳 </param>
|
||||
|
|
Loading…
Reference in New Issue