fixed bug of converting twice, added asserts to avoid double conversion

This commit is contained in:
Mario Fink 2020-02-17 14:08:35 +00:00
parent a08fab03ba
commit fe5aae4e83
3 changed files with 14 additions and 11 deletions

View File

@ -1,7 +1,7 @@
import raw_eater
eatraw = raw_eater.raweater(b"/home/mario/raw_eater/sample/VehicleSpeed_HS.raw")
eatraw = raw_eater.raweater(b"sample/pressure_Vacuum.raw")
print(eatraw.channel_name())
print(eatraw.unit())

View File

@ -33,12 +33,6 @@ int main(int argc, char* argv[])
//eatraw.show_markers();
// determine position of markers in buffer and read data
eatraw.find_markers();
// split data segments into elements
eatraw.split_segments();
// std::cout<<"\n";
// std::map<std::string,std::vector<unsigned char>> marks = eatraw.get_markers();
// for ( auto mrk: marks )
@ -57,9 +51,6 @@ int main(int argc, char* argv[])
// //for ( auto el: segvec ) std::cout<<el<<"\n";
// }
// convert unsigned char data in buffer to desired data type
eatraw.convert_data();
// get array of encoded data
// std::vector<double> maindata = eatraw.get_data();
// std::cout<<"\nsize of data array: "<<maindata.size()<<"\n\n";

View File

@ -127,6 +127,9 @@ public:
// find predefined markers in data buffer
void find_markers()
{
assert( datasec_.size() == 0 );
assert( segments_.size() == 0 );
for (std::pair<std::string,std::vector<unsigned char>> mrk : markers_ )
{
assert( mrk.second.size() > 0 && "please don't define any empty marker" );
@ -200,6 +203,9 @@ public:
// split data segments into arrays
void split_segments()
{
assert( datasec_.size() > 0 );
assert( segments_.size() == 0 );
// split segments of all markers
for (std::pair<std::string,std::vector<unsigned char>> mrk : markers_ )
{
@ -245,9 +251,10 @@ public:
//---------------------------------------------------------------------------//
// convert actual measurement data
void convert_data()
void convert_data(bool showlog = false)
{
assert( segments_.size() > 0 && "extract markers and separate into segments before conversion!" );
assert( datmes_.size() == 0 );
// by convention, the actual data is the 4th element in respective segment
std::string datstr = segments_["datas marker"][3];
@ -298,6 +305,11 @@ public:
break;
}
// show excerpt of result
if ( showlog )
{
std::cout<<"length of data: "<<datmes_.size()<<"\n";
}
}
// convert bytes to specific datatype