Skip to content

Commit

Permalink
X8: fix xtrx subdevice initialization due to gateware not having rese…
Browse files Browse the repository at this point in the history
…t command
  • Loading branch information
rjonaitis committed Sep 10, 2024
1 parent 0f1007f commit bf6642a
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 5 deletions.
3 changes: 2 additions & 1 deletion src/boards/LimeSDR_XTRX/LimeSDR_XTRX.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,8 @@ OpStatus LimeSDR_XTRX::Init()
// CustomParameterWrite(&paramId,&dacVal,1,"");

OpStatus status = LMS64CProtocol::DeviceReset(*mSerialPort, 0);
if (status != OpStatus::Success)
// XTRX on X8 board don't have Reset command, returns Unknown
if (status != OpStatus::Success && status != OpStatus::NotImplemented)
return status;

const bool skipTune = true;
Expand Down
24 changes: 20 additions & 4 deletions src/protocols/LMS64CProtocol.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -159,10 +159,26 @@ static OpStatus RunControlCommand(ISerialPort& port, uint8_t* request, uint8_t*
if (status != OpStatus::Success)
return status;

if (reinterpret_cast<LMS64CPacket*>(response)->status != CommandStatus::Completed)
return OpStatus::IOFailure;

return OpStatus::Success;
switch (reinterpret_cast<LMS64CPacket*>(response)->status)
{
case CommandStatus::Completed:
return OpStatus::Success;
case CommandStatus::Busy:
return OpStatus::Busy;
case CommandStatus::Unknown:
return OpStatus::NotImplemented;
case CommandStatus::TooManyBlocks:
return OpStatus::OutOfRange;
case CommandStatus::Error:
return OpStatus::Error;
case CommandStatus::WrongOrder:
return OpStatus::InvalidValue;
case CommandStatus::ResourceDenied:
return OpStatus::PermissionDenied;
case CommandStatus::Undefined:
default:
return OpStatus::Error;
}
}

static OpStatus RunControlCommand(ISerialPort& port, uint8_t* data, size_t length, int timeout_ms = 100)
Expand Down

0 comments on commit bf6642a

Please sign in to comment.