From 8459432067055759bd1d9b04f0e7943f1cf35d2d Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Thu, 10 Nov 2011 20:22:54 -0800 Subject: usrp: basically working iq cal on tx --- host/lib/utils/csv.cpp | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 host/lib/utils/csv.cpp (limited to 'host/lib/utils/csv.cpp') diff --git a/host/lib/utils/csv.cpp b/host/lib/utils/csv.cpp new file mode 100644 index 000000000..2ffa70196 --- /dev/null +++ b/host/lib/utils/csv.cpp @@ -0,0 +1,52 @@ +// +// Copyright 2011 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// + +#include +#include + +using namespace uhd; + +csv::rows_type csv::to_rows(std::istream &input){ + csv::rows_type rows; + std::string line; + //for each line in the input stream + while (std::getline(input, line)){ + csv::row_type row(1, ""); + bool in_quote = false; + char last_ch, next_ch = ' '; + //for each character in the line + BOOST_FOREACH(char ch, line){ + last_ch = next_ch; + next_ch = ch; + //catch a quote character and change the state + //we handle double quotes by checking last_ch + if (ch == '"'){ + in_quote = not in_quote; + if (last_ch != '"') continue; + } + //a comma not inside quotes is a column delimiter + if (not in_quote and ch == ','){ + row.push_back(""); + continue; + } + //if we got here we record the character + row.back() += ch; + } + rows.push_back(row); + } + return rows; +} -- cgit v1.2.3