pvtools: combine separator and fieldSeparator
both always have the same value anyway...
This commit is contained in:
@ -36,8 +36,6 @@ using namespace epics::pvAccess;
|
|||||||
enum PrintMode { ValueOnlyMode, StructureMode, TerseMode };
|
enum PrintMode { ValueOnlyMode, StructureMode, TerseMode };
|
||||||
PrintMode mode = ValueOnlyMode;
|
PrintMode mode = ValueOnlyMode;
|
||||||
|
|
||||||
char fieldSeparator = ' ';
|
|
||||||
|
|
||||||
bool columnMajor = false;
|
bool columnMajor = false;
|
||||||
|
|
||||||
bool transpose = false;
|
bool transpose = false;
|
||||||
@ -242,7 +240,7 @@ void formatTable(std::ostream& o,
|
|||||||
{
|
{
|
||||||
for (size_t i = 0; i < numColumns; i++)
|
for (size_t i = 0; i < numColumns; i++)
|
||||||
{
|
{
|
||||||
if (separator == ' ')
|
if (fieldSeparator == ' ')
|
||||||
{
|
{
|
||||||
int width = std::max(labels[i].size()+padding, maxColumnLength);
|
int width = std::max(labels[i].size()+padding, maxColumnLength);
|
||||||
o << std::setw(width) << std::right;
|
o << std::setw(width) << std::right;
|
||||||
@ -250,7 +248,7 @@ void formatTable(std::ostream& o,
|
|||||||
}
|
}
|
||||||
else if (i > 0)
|
else if (i > 0)
|
||||||
{
|
{
|
||||||
o << separator;
|
o << fieldSeparator;
|
||||||
}
|
}
|
||||||
|
|
||||||
o << labels[i];
|
o << labels[i];
|
||||||
@ -263,7 +261,7 @@ void formatTable(std::ostream& o,
|
|||||||
{
|
{
|
||||||
for (size_t i = 0; i < numColumns; i++)
|
for (size_t i = 0; i < numColumns; i++)
|
||||||
{
|
{
|
||||||
if (separator == ' ' && (showHeader || numColumns > 1))
|
if (fieldSeparator == ' ' && (showHeader || numColumns > 1))
|
||||||
{
|
{
|
||||||
int width = std::max(labels[i].size()+padding, maxColumnLength);
|
int width = std::max(labels[i].size()+padding, maxColumnLength);
|
||||||
o << setw(width) << std::right;
|
o << setw(width) << std::right;
|
||||||
@ -271,7 +269,7 @@ void formatTable(std::ostream& o,
|
|||||||
}
|
}
|
||||||
else if (i > 0)
|
else if (i > 0)
|
||||||
{
|
{
|
||||||
o << separator;
|
o << fieldSeparator;
|
||||||
}
|
}
|
||||||
|
|
||||||
PVScalarArrayPtr array = columnData[i];
|
PVScalarArrayPtr array = columnData[i];
|
||||||
@ -297,7 +295,7 @@ void formatTable(std::ostream& o,
|
|||||||
{
|
{
|
||||||
if (showHeader && labels.size())
|
if (showHeader && labels.size())
|
||||||
{
|
{
|
||||||
if (separator == ' ')
|
if (fieldSeparator == ' ')
|
||||||
{
|
{
|
||||||
o << std::setw(maxLabelColumnLength) << std::left;
|
o << std::setw(maxLabelColumnLength) << std::left;
|
||||||
}
|
}
|
||||||
@ -306,12 +304,12 @@ void formatTable(std::ostream& o,
|
|||||||
|
|
||||||
for (size_t r = 0; r < maxValues; r++)
|
for (size_t r = 0; r < maxValues; r++)
|
||||||
{
|
{
|
||||||
if (separator == ' ' && (showHeader || numColumns > 1))
|
if (fieldSeparator == ' ' && (showHeader || numColumns > 1))
|
||||||
{
|
{
|
||||||
o << std::setw(maxColumnLength) << std::right;
|
o << std::setw(maxColumnLength) << std::right;
|
||||||
}
|
}
|
||||||
else if (showHeader || r > 0)
|
else if (showHeader || r > 0)
|
||||||
o << separator;
|
o << fieldSeparator;
|
||||||
|
|
||||||
PVScalarArrayPtr array = columnData[i];
|
PVScalarArrayPtr array = columnData[i];
|
||||||
if (array.get() && r < array->getLength())
|
if (array.get() && r < array->getLength())
|
||||||
@ -433,10 +431,10 @@ void formatNTMatrix(std::ostream& o, PVStructurePtr const & pvStruct)
|
|||||||
{
|
{
|
||||||
for (int32 c = 0; c < cols; c++)
|
for (int32 c = 0; c < cols; c++)
|
||||||
{
|
{
|
||||||
if (separator == ' ' && cols > 1)
|
if (fieldSeparator == ' ' && cols > 1)
|
||||||
o << std::setw(maxColumnLength) << std::right;
|
o << std::setw(maxColumnLength) << std::right;
|
||||||
else if (c > 0)
|
else if (c > 0)
|
||||||
o << separator;
|
o << fieldSeparator;
|
||||||
|
|
||||||
if (columnMajor)
|
if (columnMajor)
|
||||||
value->dumpValue(o, r + c * rows);
|
value->dumpValue(o, r + c * rows);
|
||||||
@ -459,10 +457,10 @@ void formatNTMatrix(std::ostream& o, PVStructurePtr const & pvStruct)
|
|||||||
{
|
{
|
||||||
for (int32 r = 0; r < rows; r++)
|
for (int32 r = 0; r < rows; r++)
|
||||||
{
|
{
|
||||||
if (separator == ' ' && rows > 1)
|
if (fieldSeparator == ' ' && rows > 1)
|
||||||
o << std::setw(maxColumnLength) << std::right;
|
o << std::setw(maxColumnLength) << std::right;
|
||||||
else if (r > 0)
|
else if (r > 0)
|
||||||
o << separator;
|
o << fieldSeparator;
|
||||||
|
|
||||||
if (columnMajor)
|
if (columnMajor)
|
||||||
value->dumpValue(o, ix++);
|
value->dumpValue(o, ix++);
|
||||||
@ -540,7 +538,7 @@ void formatNTNameValue(std::ostream& o, PVStructurePtr const & pvStruct)
|
|||||||
{
|
{
|
||||||
for (size_t i = 0; i < numColumns; i++)
|
for (size_t i = 0; i < numColumns; i++)
|
||||||
{
|
{
|
||||||
if (separator == ' ')
|
if (fieldSeparator == ' ')
|
||||||
{
|
{
|
||||||
int width = std::max(nameData[i].size()+padding, maxColumnLength);
|
int width = std::max(nameData[i].size()+padding, maxColumnLength);
|
||||||
o << std::setw(width) << std::right;
|
o << std::setw(width) << std::right;
|
||||||
@ -548,7 +546,7 @@ void formatNTNameValue(std::ostream& o, PVStructurePtr const & pvStruct)
|
|||||||
}
|
}
|
||||||
else if (i > 0)
|
else if (i > 0)
|
||||||
{
|
{
|
||||||
o << separator;
|
o << fieldSeparator;
|
||||||
}
|
}
|
||||||
|
|
||||||
o << nameData[i];
|
o << nameData[i];
|
||||||
@ -559,7 +557,7 @@ void formatNTNameValue(std::ostream& o, PVStructurePtr const & pvStruct)
|
|||||||
// then values
|
// then values
|
||||||
for (size_t i = 0; i < numColumns; i++)
|
for (size_t i = 0; i < numColumns; i++)
|
||||||
{
|
{
|
||||||
if (separator == ' ' && showHeader)
|
if (fieldSeparator == ' ' && showHeader)
|
||||||
{
|
{
|
||||||
int width = std::max(nameData[i].size()+padding, maxColumnLength);
|
int width = std::max(nameData[i].size()+padding, maxColumnLength);
|
||||||
o << std::setw(width) << std::right;
|
o << std::setw(width) << std::right;
|
||||||
@ -567,7 +565,7 @@ void formatNTNameValue(std::ostream& o, PVStructurePtr const & pvStruct)
|
|||||||
}
|
}
|
||||||
else if (i > 0)
|
else if (i > 0)
|
||||||
{
|
{
|
||||||
o << separator;
|
o << fieldSeparator;
|
||||||
}
|
}
|
||||||
array->dumpValue(o, i);
|
array->dumpValue(o, i);
|
||||||
}
|
}
|
||||||
@ -586,20 +584,20 @@ void formatNTNameValue(std::ostream& o, PVStructurePtr const & pvStruct)
|
|||||||
{
|
{
|
||||||
if (showHeader)
|
if (showHeader)
|
||||||
{
|
{
|
||||||
if (separator == ' ')
|
if (fieldSeparator == ' ')
|
||||||
{
|
{
|
||||||
o << std::setw(maxLabelColumnLength) << std::left;
|
o << std::setw(maxLabelColumnLength) << std::left;
|
||||||
}
|
}
|
||||||
o << nameData[i];
|
o << nameData[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (separator == ' ' && showHeader)
|
if (fieldSeparator == ' ' && showHeader)
|
||||||
{
|
{
|
||||||
o << std::setw(maxColumnLength) << std::right;
|
o << std::setw(maxColumnLength) << std::right;
|
||||||
}
|
}
|
||||||
else if (showHeader)
|
else if (showHeader)
|
||||||
{
|
{
|
||||||
o << separator;
|
o << fieldSeparator;
|
||||||
}
|
}
|
||||||
|
|
||||||
array->dumpValue(o, i);
|
array->dumpValue(o, i);
|
||||||
@ -899,7 +897,7 @@ void printValue(std::string const & channelName, PVStructure::shared_pointer con
|
|||||||
if (forceTerseWithName)
|
if (forceTerseWithName)
|
||||||
{
|
{
|
||||||
if (!channelName.empty())
|
if (!channelName.empty())
|
||||||
std::cout << channelName << separator;
|
std::cout << channelName << fieldSeparator;
|
||||||
terseStructure(std::cout, pv) << std::endl;
|
terseStructure(std::cout, pv) << std::endl;
|
||||||
}
|
}
|
||||||
else if (mode == ValueOnlyMode)
|
else if (mode == ValueOnlyMode)
|
||||||
@ -1044,7 +1042,7 @@ void usage (void)
|
|||||||
" -p <provider>: Set default provider name, default is '%s'\n"
|
" -p <provider>: Set default provider name, default is '%s'\n"
|
||||||
" -q: Quiet mode, print only error messages\n"
|
" -q: Quiet mode, print only error messages\n"
|
||||||
" -d: Enable debug output\n"
|
" -d: Enable debug output\n"
|
||||||
" -F <ofs>: Use <ofs> as an alternate output field separator\n"
|
" -F <ofs>: Use <ofs> as an alternate output field fieldSeparator\n"
|
||||||
" -f <input file>: Use <input file> as an input that provides a list PV name(s) to be read, use '-' for stdin\n"
|
" -f <input file>: Use <input file> as an input that provides a list PV name(s) to be read, use '-' for stdin\n"
|
||||||
" -c: Wait for clean shutdown and report used instance count (for expert users)\n"
|
" -c: Wait for clean shutdown and report used instance count (for expert users)\n"
|
||||||
" enum format:\n"
|
" enum format:\n"
|
||||||
@ -1525,7 +1523,6 @@ int main (int argc, char *argv[])
|
|||||||
SET_LOG_LEVEL(debug ? logLevelDebug : logLevelError);
|
SET_LOG_LEVEL(debug ? logLevelDebug : logLevelError);
|
||||||
|
|
||||||
std::cout << std::boolalpha;
|
std::cout << std::boolalpha;
|
||||||
terseSeparator(fieldSeparator);
|
|
||||||
arrayCountFlag = false;
|
arrayCountFlag = false;
|
||||||
|
|
||||||
bool allOK = true;
|
bool allOK = true;
|
||||||
|
@ -48,8 +48,6 @@ string defaultProvider("pva");
|
|||||||
enum PrintMode { ValueOnlyMode, StructureMode, TerseMode };
|
enum PrintMode { ValueOnlyMode, StructureMode, TerseMode };
|
||||||
PrintMode mode = ValueOnlyMode;
|
PrintMode mode = ValueOnlyMode;
|
||||||
|
|
||||||
char fieldSeparator = ' ';
|
|
||||||
|
|
||||||
void usage (void)
|
void usage (void)
|
||||||
{
|
{
|
||||||
fprintf (stderr, "\nUsage: pvget [options] <PV name>...\n\n"
|
fprintf (stderr, "\nUsage: pvget [options] <PV name>...\n\n"
|
||||||
@ -531,7 +529,6 @@ int main (int argc, char *argv[])
|
|||||||
SET_LOG_LEVEL(debugFlag ? logLevelDebug : logLevelError);
|
SET_LOG_LEVEL(debugFlag ? logLevelDebug : logLevelError);
|
||||||
|
|
||||||
std::cout << std::boolalpha;
|
std::cout << std::boolalpha;
|
||||||
terseSeparator(fieldSeparator);
|
|
||||||
|
|
||||||
// ================ Connect channels and start operations
|
// ================ Connect channels and start operations
|
||||||
|
|
||||||
|
@ -490,7 +490,6 @@ int main (int argc, char *argv[])
|
|||||||
int opt; /* getopt() current option */
|
int opt; /* getopt() current option */
|
||||||
bool debug = false;
|
bool debug = false;
|
||||||
double timeOut = DEFAULT_TIMEOUT;
|
double timeOut = DEFAULT_TIMEOUT;
|
||||||
// char fieldSeparator = ' ';
|
|
||||||
bool printInfo = false;
|
bool printInfo = false;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -51,8 +51,6 @@ const string noAddress;
|
|||||||
enum PrintMode { ValueOnlyMode, StructureMode, TerseMode };
|
enum PrintMode { ValueOnlyMode, StructureMode, TerseMode };
|
||||||
PrintMode mode = ValueOnlyMode;
|
PrintMode mode = ValueOnlyMode;
|
||||||
|
|
||||||
char fieldSeparator = ' ';
|
|
||||||
|
|
||||||
bool debug = false;
|
bool debug = false;
|
||||||
|
|
||||||
void usage (bool details=false)
|
void usage (bool details=false)
|
||||||
@ -609,7 +607,6 @@ int main (int argc, char *argv[])
|
|||||||
SET_LOG_LEVEL(debug ? logLevelDebug : logLevelError);
|
SET_LOG_LEVEL(debug ? logLevelDebug : logLevelError);
|
||||||
|
|
||||||
std::cout << std::boolalpha;
|
std::cout << std::boolalpha;
|
||||||
terseSeparator(fieldSeparator);
|
|
||||||
|
|
||||||
epics::pvAccess::ca::CAClientFactory::start();
|
epics::pvAccess::ca::CAClientFactory::start();
|
||||||
|
|
||||||
|
@ -43,11 +43,7 @@ std::ostream& operator<<(std::ostream& o, const dump_stack_only_on_debug& d)
|
|||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
|
|
||||||
char separator = ' ';
|
char fieldSeparator = ' ';
|
||||||
void terseSeparator(char c)
|
|
||||||
{
|
|
||||||
separator = c;
|
|
||||||
}
|
|
||||||
|
|
||||||
char arrayCountFlag = true;
|
char arrayCountFlag = true;
|
||||||
|
|
||||||
@ -132,7 +128,7 @@ std::ostream& printTimeT(std::ostream& o, epics::pvData::PVStructure::const_shar
|
|||||||
epicsTimeToStrftime(timeText, sizeof(timeText), "%Y-%m-%dT%H:%M:%S.%03f", &epicsTS);
|
epicsTimeToStrftime(timeText, sizeof(timeText), "%Y-%m-%dT%H:%M:%S.%03f", &epicsTS);
|
||||||
o << timeText;
|
o << timeText;
|
||||||
if (printUserTagFlag && tagf)
|
if (printUserTagFlag && tagf)
|
||||||
o << separator << tagf->getAs<int32>();
|
o << fieldSeparator << tagf->getAs<int32>();
|
||||||
|
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
@ -175,14 +171,14 @@ std::ostream& printAlarmT(std::ostream& o, epics::pvData::PVStructure::const_sha
|
|||||||
o << v;
|
o << v;
|
||||||
else
|
else
|
||||||
o << severityNames[v];
|
o << severityNames[v];
|
||||||
o << separator;
|
o << fieldSeparator;
|
||||||
|
|
||||||
v = pvStatus->get();
|
v = pvStatus->get();
|
||||||
if (v < 0 || v > 7)
|
if (v < 0 || v > 7)
|
||||||
o << v;
|
o << v;
|
||||||
else
|
else
|
||||||
o << statusNames[v];
|
o << statusNames[v];
|
||||||
o << separator;
|
o << fieldSeparator;
|
||||||
if (pvMessage->get().empty())
|
if (pvMessage->get().empty())
|
||||||
o << "<no message>";
|
o << "<no message>";
|
||||||
else
|
else
|
||||||
@ -249,7 +245,7 @@ std::ostream& terseStructure(std::ostream& o, PVStructure::const_shared_pointer
|
|||||||
if (first)
|
if (first)
|
||||||
first = false;
|
first = false;
|
||||||
else
|
else
|
||||||
o << separator;
|
o << fieldSeparator;
|
||||||
|
|
||||||
terse(o, fieldsData[i]);
|
terse(o, fieldsData[i]);
|
||||||
}
|
}
|
||||||
@ -277,7 +273,7 @@ std::ostream& terseScalarArray(std::ostream& o, const PVScalarArray::const_share
|
|||||||
o << '0';
|
o << '0';
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
o << length << separator;
|
o << length << fieldSeparator;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool first = true;
|
bool first = true;
|
||||||
@ -285,7 +281,7 @@ std::ostream& terseScalarArray(std::ostream& o, const PVScalarArray::const_share
|
|||||||
if (first)
|
if (first)
|
||||||
first = false;
|
first = false;
|
||||||
else
|
else
|
||||||
o << separator;
|
o << fieldSeparator;
|
||||||
|
|
||||||
pvArray->dumpValue(o, i);
|
pvArray->dumpValue(o, i);
|
||||||
}
|
}
|
||||||
@ -308,7 +304,7 @@ std::ostream& terseStructureArray(std::ostream& o, PVStructureArray::const_share
|
|||||||
o << '0';
|
o << '0';
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
o << length << separator;
|
o << length << fieldSeparator;
|
||||||
}
|
}
|
||||||
|
|
||||||
PVStructureArray::const_svector data = pvArray->view();
|
PVStructureArray::const_svector data = pvArray->view();
|
||||||
@ -317,7 +313,7 @@ std::ostream& terseStructureArray(std::ostream& o, PVStructureArray::const_share
|
|||||||
if (first)
|
if (first)
|
||||||
first = false;
|
first = false;
|
||||||
else
|
else
|
||||||
o << separator;
|
o << fieldSeparator;
|
||||||
|
|
||||||
terseStructure(o, data[i]);
|
terseStructure(o, data[i]);
|
||||||
}
|
}
|
||||||
@ -334,7 +330,7 @@ std::ostream& terseUnionArray(std::ostream& o, PVUnionArray::const_shared_pointe
|
|||||||
o << '0';
|
o << '0';
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
o << length << separator;
|
o << length << fieldSeparator;
|
||||||
}
|
}
|
||||||
|
|
||||||
PVUnionArray::const_svector data = pvArray->view();
|
PVUnionArray::const_svector data = pvArray->view();
|
||||||
@ -343,7 +339,7 @@ std::ostream& terseUnionArray(std::ostream& o, PVUnionArray::const_shared_pointe
|
|||||||
if (first)
|
if (first)
|
||||||
first = false;
|
first = false;
|
||||||
else
|
else
|
||||||
o << separator;
|
o << fieldSeparator;
|
||||||
|
|
||||||
terseUnion(o, data[i]);
|
terseUnion(o, data[i]);
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ void convertStructure(std::string* buffer, epics::pvData::PVStructure *data, int
|
|||||||
void convertArray(std::string*, epics::pvData::PVScalarArray * pv, int notFirst);
|
void convertArray(std::string*, epics::pvData::PVScalarArray * pv, int notFirst);
|
||||||
void convertStructureArray(std::string*, epics::pvData::PVStructureArray * pvdata, int notFirst);
|
void convertStructureArray(std::string*, epics::pvData::PVStructureArray * pvdata, int notFirst);
|
||||||
|
|
||||||
void terseSeparator(char c);
|
|
||||||
std::ostream& terse(std::ostream& o, epics::pvData::PVField::const_shared_pointer const & pv);
|
std::ostream& terse(std::ostream& o, epics::pvData::PVField::const_shared_pointer const & pv);
|
||||||
std::ostream& terseUnion(std::ostream& o, epics::pvData::PVUnion::const_shared_pointer const & pvUnion);
|
std::ostream& terseUnion(std::ostream& o, epics::pvData::PVUnion::const_shared_pointer const & pvUnion);
|
||||||
std::ostream& terseStructure(std::ostream& o, const epics::pvData::PVStructure::const_shared_pointer &pvStructure);
|
std::ostream& terseStructure(std::ostream& o, const epics::pvData::PVStructure::const_shared_pointer &pvStructure);
|
||||||
|
Reference in New Issue
Block a user