Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ngscopeclient/scopehal
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: bad5a4221892
Choose a base ref
...
head repository: ngscopeclient/scopehal
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0a5b90532174
Choose a head ref
  • 1 commit
  • 2 files changed
  • 1 contributor

Commits on Apr 17, 2021

  1. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    0a5b905 View commit details
Showing with 89 additions and 2 deletions.
  1. +87 −2 scopeprotocols/ESPIDecoder.cpp
  2. +2 −0 scopeprotocols/ESPIDecoder.h
89 changes: 87 additions & 2 deletions scopeprotocols/ESPIDecoder.cpp
Original file line number Diff line number Diff line change
@@ -499,6 +499,11 @@ void ESPIDecoder::Refresh()
pack->m_headers["Info"] = Trim(GetText(cap->m_samples.size()-1));
break;

case 0x30:
cap->m_samples.push_back(ESPISymbol(ESPISymbol::TYPE_CH2_CAPS_WR, data));
pack->m_headers["Info"] = Trim(GetText(cap->m_samples.size()-1));
break;

default:
cap->m_samples.push_back(ESPISymbol(ESPISymbol::TYPE_COMMAND_DATA_32, data));
}
@@ -517,7 +522,7 @@ void ESPIDecoder::Refresh()
case TXN_STATE_COMMAND_CRC8:

cap->m_offsets.push_back(bytestart);
cap->m_durations.push_back(timestamp - bytestart);pack->m_headers["Info"] = Trim(GetText(cap->m_samples.size()-1));
cap->m_durations.push_back(timestamp - bytestart);
if(current_byte == crc)
cap->m_samples.push_back(ESPISymbol(ESPISymbol::TYPE_COMMAND_CRC_GOOD, current_byte));
else
@@ -595,7 +600,6 @@ void ESPIDecoder::Refresh()
count = current_byte;

txn_state = TXN_STATE_VWIRE_INDEX;
pack->m_headers["Info"] = "";
break; //end TXN_STATE_VWIRE_COUNT

case TXN_STATE_VWIRE_INDEX:
@@ -769,6 +773,11 @@ void ESPIDecoder::Refresh()
pack->m_headers["Info"] = Trim(GetText(cap->m_samples.size()-1));
break;

case 0x30:
cap->m_samples.push_back(ESPISymbol(ESPISymbol::TYPE_CH2_CAPS_RD, data));
pack->m_headers["Info"] = Trim(GetText(cap->m_samples.size()-1));
break;

default:
cap->m_samples.push_back(ESPISymbol(ESPISymbol::TYPE_RESPONSE_DATA_32, data));
break;
@@ -920,6 +929,8 @@ Gdk::Color ESPIDecoder::GetColor(int i)
case ESPISymbol::TYPE_GENERAL_CAPS:
case ESPISymbol::TYPE_CH1_CAPS_RD:
case ESPISymbol::TYPE_CH1_CAPS_WR:
case ESPISymbol::TYPE_CH2_CAPS_RD:
case ESPISymbol::TYPE_CH2_CAPS_WR:
case ESPISymbol::TYPE_VWIRE_DATA:
case ESPISymbol::TYPE_COMMAND_DATA_32:
case ESPISymbol::TYPE_RESPONSE_DATA_32:
@@ -1194,6 +1205,80 @@ string ESPIDecoder::GetText(int i)

return stmp; //end TYPE_CH1_CAPS_WR

case ESPISymbol::TYPE_CH2_CAPS_RD:

stmp += "Max OOB payload selected: ";
switch( (s.m_data >> 8) & 0x7)
{
case 1:
stmp += "64 bytes\n";
break;
case 2:
stmp += "128 bytes\n";
break;
case 3:
stmp += "256 bytes\n";
break;
default:
stmp += "Reserved\n";
break;
}

stmp += "Max OOB payload supported: ";
switch( (s.m_data >> 4) & 0x7)
{
case 1:
stmp += "64 bytes\n";
break;
case 2:
stmp += "128 bytes\n";
break;
case 3:
stmp += "256 bytes\n";
break;
default:
stmp += "Reserved\n";
break;
}

if(s.m_data & 2)
stmp += "OOB channel ready\n";
else
stmp += "OOB channel not ready\n";

if(s.m_data & 1)
stmp += "OOB channel enabled\n";
else
stmp += "OOB channel disabled\n";

return stmp; //end TYPE_CH2_CAPS_RD

case ESPISymbol::TYPE_CH2_CAPS_WR:

stmp += "Max OOB payload selected: ";
switch( (s.m_data >> 8) & 0x7)
{
case 1:
stmp += "64 bytes\n";
break;
case 2:
stmp += "128 bytes\n";
break;
case 3:
stmp += "256 bytes\n";
break;
default:
stmp += "Reserved\n";
break;
}

if(s.m_data & 1)
stmp += "OOB channel enabled\n";
else
stmp += "OOB channel disabled\n";

return stmp; //end TYPE_CH2_CAPS_WR

case ESPISymbol::TYPE_COMMAND_DATA_32:
snprintf(tmp, sizeof(tmp), "%08lx", s.m_data);
return tmp;
2 changes: 2 additions & 0 deletions scopeprotocols/ESPIDecoder.h
Original file line number Diff line number Diff line change
@@ -69,6 +69,8 @@ class ESPISymbol
TYPE_GENERAL_CAPS,
TYPE_CH1_CAPS_RD,
TYPE_CH1_CAPS_WR,
TYPE_CH2_CAPS_RD,
TYPE_CH2_CAPS_WR,

TYPE_ERROR
} m_type;