void Pn5180AnalyzerResults::GenerateExportFile( const char* file, DisplayBase display_base, U32 /*export_type_user_id*/ ) { //export_type_user_id is only important if we have more than one export type. std::stringstream ss; void* f = AnalyzerHelpers::StartFile( file ); U64 trigger_sample = mAnalyzer->GetTriggerSample(); U32 sample_rate = mAnalyzer->GetSampleRate(); ss << "Time [s],Packet ID,MOSI,MISO" << std::endl; bool mosi_used = true; bool miso_used = true; if( mSettings->mMosiChannel == UNDEFINED_CHANNEL ) mosi_used = false; if( mSettings->mMisoChannel == UNDEFINED_CHANNEL ) miso_used = false; U64 num_frames = GetNumFrames(); for( U32 i=0; i < num_frames; i++ ) { Frame frame = GetFrame( i ); if( ( frame.mFlags & Pn5180_ERROR_FLAG ) != 0 ) continue; char time_str[128]; AnalyzerHelpers::GetTimeString( frame.mStartingSampleInclusive, trigger_sample, sample_rate, time_str, 128 ); char mosi_str[128] = ""; if( mosi_used == true ) AnalyzerHelpers::GetNumberString( frame.mData1, display_base, 8, mosi_str, 128 ); char miso_str[128] = ""; if( miso_used == true ) AnalyzerHelpers::GetNumberString( frame.mData2, display_base, 8, miso_str, 128 ); U64 packet_id = GetPacketContainingFrameSequential( i ); if( packet_id != INVALID_RESULT_INDEX ) ss << time_str << "," << packet_id << "," << mosi_str << "," << miso_str << std::endl; else ss << time_str << ",," << mosi_str << "," << miso_str << std::endl; //it's ok for a frame not to be included in a packet. AnalyzerHelpers::AppendToFile( (U8*)ss.str().c_str(), ss.str().length(), f ); ss.str( std::string() ); if( UpdateExportProgressAndCheckForCancel( i, num_frames ) == true ) { AnalyzerHelpers::EndFile( f ); return; } } UpdateExportProgressAndCheckForCancel( num_frames, num_frames ); AnalyzerHelpers::EndFile( f ); }
void J2716AnalyzerResults::GenerateExportFile( const char* file, DisplayBase display_base, U32 export_type_user_id ) { std::ofstream file_stream( file, std::ios::out ); U64 trigger_sample = mAnalyzer->GetTriggerSample(); U32 sample_rate = mAnalyzer->GetSampleRate(); file_stream << "Time [s],Value" << std::endl; U64 num_frames = GetNumFrames(); for( U32 i=0; i < num_frames; i++ ) { Frame frame = GetFrame( i ); char time_str[128]; AnalyzerHelpers::GetTimeString( frame.mStartingSampleInclusive, trigger_sample, sample_rate, time_str, 128 ); char number_str[128]; AnalyzerHelpers::GetNumberString( frame.mData1, display_base, 8, number_str, 128 ); file_stream << time_str << "," << number_str << std::endl; if( UpdateExportProgressAndCheckForCancel( i, num_frames ) == true ) { file_stream.close(); return; } } file_stream.close(); }
void SDIOAnalyzerResults::GenerateExportFile( const char* file, DisplayBase display_base, U32 export_type_user_id ) { std::ofstream file_stream( file, std::ios::out ); U64 trigger_sample = mAnalyzer->GetTriggerSample(); U32 sample_rate = mAnalyzer->GetSampleRate(); file_stream << "Time [s],Value" << std::endl; U64 num_frames = GetNumFrames(); for( U32 i=0; i < num_frames; i++ ) { Frame frame = GetFrame( i ); char time_str[128]; AnalyzerHelpers::GetTimeString( frame.mStartingSampleInclusive, trigger_sample, sample_rate, time_str, 128 ); char number_str[128]; AnalyzerHelpers::GetNumberString( frame.mData1, display_base, 8, number_str, 128 ); file_stream << time_str << ","; if (frame.mType == SDIOAnalyzer::FRAME_DIR){ file_stream << "DIR:"; if (frame.mData1){ file_stream << "from Host"; }else{ file_stream << "from Slave"; } }else if (frame.mType == SDIOAnalyzer::FRAME_CMD){ file_stream << "CMD:" << number_str; }else if (frame.mType == SDIOAnalyzer::FRAME_ARG){ file_stream << "ARG:" << number_str; }else if (frame.mType == SDIOAnalyzer::FRAME_LONG_ARG){ file_stream << "LONG_ARG:" << number_str; }else if (frame.mType == SDIOAnalyzer::FRAME_CRC){ file_stream << "CRC:" << number_str; } file_stream << std::endl; if( UpdateExportProgressAndCheckForCancel( i, num_frames ) == true ) { file_stream.close(); return; } } file_stream.close(); }
void ManchesterAnalyzerResults::GenerateExportFile( const char* file, DisplayBase display_base, U32 /*export_type_user_id*/ ) { std::stringstream ss; void* f = AnalyzerHelpers::StartFile( file ); U64 trigger_sample = mAnalyzer->GetTriggerSample(); U32 sample_rate = mAnalyzer->GetSampleRate(); U64 num_frames = GetNumFrames(); ss << "Time [s],Data" << std::endl; for( U32 i=0; i < num_frames; i++ ) { Frame frame = GetFrame( i ); //static void GetTimeString( U64 sample, U64 trigger_sample, U32 sample_rate_hz, char* result_string, U32 result_string_max_length ); char time_str[128]; AnalyzerHelpers::GetTimeString( frame.mStartingSampleInclusive, trigger_sample, sample_rate, time_str, 128 ); char number_str[128]; AnalyzerHelpers::GetNumberString( frame.mData1, display_base, mSettings->mBitsPerTransfer, number_str, 128); ss << time_str << "," << number_str; ss << std::endl; AnalyzerHelpers::AppendToFile( (U8*)ss.str().c_str(), ss.str().length(), f ); ss.str( std::string() ); if( UpdateExportProgressAndCheckForCancel( i, num_frames ) == true ) { AnalyzerHelpers::EndFile( f ); return; } } UpdateExportProgressAndCheckForCancel( num_frames, num_frames ); AnalyzerHelpers::EndFile( f ); }
void UnioAnalyzerResults::GenerateExportFile( const char* file, DisplayBase display_base, U32 /*export_type_user_id*/ ) { //export_type_user_id is only important if we have more than one export type. std::stringstream ss; void* f = AnalyzerHelpers::StartFile( file ); U64 trigger_sample = mAnalyzer->GetTriggerSample(); U32 sample_rate = mAnalyzer->GetSampleRate(); ss << "Time [s],Packet ID,Address,Data,MAK,SAK" << std::endl; U64 num_frames = GetNumFrames(); char address_str[128] = ""; for( U32 i=0; i < num_frames; i++ ) { Frame frame = GetFrame( i ); if( frame.mType == AddressFrame8 ) { AnalyzerHelpers::GetNumberString( frame.mData1, display_base, 8, address_str, 128 ); if( UpdateExportProgressAndCheckForCancel( i, num_frames ) == true ) { AnalyzerHelpers::EndFile( f ); return; } continue; } if( frame.mType == AddressFrame12 ) { AnalyzerHelpers::GetNumberString( frame.mData1, display_base, 8, address_str, 128 ); if( UpdateExportProgressAndCheckForCancel( i, num_frames ) == true ) { AnalyzerHelpers::EndFile( f ); return; } continue; } if( frame.mType == DataFrame ) { char time_str[128]; AnalyzerHelpers::GetTimeString( frame.mStartingSampleInclusive, trigger_sample, sample_rate, time_str, 128 ); char data_str[128]; AnalyzerHelpers::GetNumberString( frame.mData1, display_base, 8, data_str, 128 ); ss << time_str << ","; U64 packet_id = GetPacketContainingFrameSequential( i ); if( packet_id != INVALID_RESULT_INDEX ) ss << packet_id; ss << "," << address_str << "," << data_str; if( ( frame.mFlags & MASTER_ACK ) != 0 ) ss << ",MAK"; else ss << ",NoMAK"; if( ( frame.mFlags & SLAVE_ACK ) != 0 ) ss << ",SAK"; else ss << ",NoSAK"; ss << std::endl; } AnalyzerHelpers::AppendToFile( (U8*)ss.str().c_str(), ss.str().length(), f ); ss.str( std::string() ); if( UpdateExportProgressAndCheckForCancel( i, num_frames ) == true ) { AnalyzerHelpers::EndFile( f ); return; } } UpdateExportProgressAndCheckForCancel( num_frames, num_frames ); AnalyzerHelpers::EndFile( f ); }
// export_type_user_id is needed if we have more than one export type void MDIOAnalyzerResults::GenerateExportFile( const char* file, DisplayBase display_base, U32 /*export_type_user_id*/ ) { std::ofstream file_stream( file, std::ios::out ); U64 trigger_sample = mAnalyzer->GetTriggerSample(); U32 sample_rate = mAnalyzer->GetSampleRate(); file_stream << "Time [s],Packet ID,MDIOClause,OP,PHYADDR,REGADDR/DEVTYPE,ADDR/DATA" << std::endl; U64 num_packets = GetNumPackets(); for( U32 packet_id=0; packet_id < num_packets; ++packet_id ) { // get the frames contained in packet with index packet_id U64 first_frame_id; U64 last_frame_id; GetFramesContainedInPacket( packet_id, &first_frame_id, &last_frame_id ); U64 frame_id = first_frame_id; // get MDIO_START frame to get the MDIOClause column value Frame frame = GetFrame( frame_id ); char time_str[128]; AnalyzerHelpers::GetTimeString( frame.mStartingSampleInclusive, trigger_sample, sample_rate, time_str, 128 ); // Time [s] and Packet ID column file_stream << time_str << "," << packet_id << ","; if( frame.mType == MDIO_C22_START ) { file_stream << "22,"; } else if( frame.mType == MDIO_C45_START ) { file_stream << "45,"; } else { file_stream << ","; } ++frame_id; if( frame_id > last_frame_id ) { continue; } // OP frame frame = GetFrame( frame_id ); switch( frame.mType ) { case MDIO_OP_W: file_stream << "Write,"; break; case MDIO_OP_R: file_stream << "Read,"; break; case MDIO_C45_OP_ADDR: file_stream << "Address,"; break; case MDIO_C45_OP_READ_INC_ADDR: file_stream << "Read +Addr,"; break; default: file_stream << ","; break; } ++frame_id; if( frame_id > last_frame_id ) { continue; } // PHYADDR frame frame = GetFrame( frame_id ); if( frame.mType != MDIO_PHYADDR ) { file_stream << ","; } char number_str[128]; AnalyzerHelpers::GetNumberString( frame.mData1, display_base, 5, number_str, 128 ); file_stream << number_str << ","; ++frame_id; if( frame_id > last_frame_id ) { continue; } // REGADR or DEVTYPE frame frame = GetFrame( frame_id ); char number_str2[128]; AnalyzerHelpers::GetNumberString( frame.mData1, display_base, 5, number_str2, 128 ); switch( frame.mType ) { case MDIO_C22_REGADDR: file_stream << number_str2 << ","; break; case MDIO_C45_DEVTYPE_RESERVED: file_stream << number_str2 << "(Reserved),"; break; case MDIO_C45_DEVTYPE_PMD_PMA: file_stream << number_str2 << "(PMD/PMA),"; break; case MDIO_C45_DEVTYPE_WIS: file_stream << number_str2 << "(WIS),"; break; case MDIO_C45_DEVTYPE_PCS: file_stream << number_str2 << "(PCS),"; break; case MDIO_C45_DEVTYPE_PHY_XS: file_stream << number_str2 << "(PHY XS),"; break; case MDIO_C45_DEVTYPE_DTE_XS: file_stream << number_str2 << "(DTE XS),"; break; case MDIO_C45_DEVTYPE_OTHER: file_stream << number_str2 << "(Other),"; break; default: file_stream << ","; } ++frame_id; if( frame_id > last_frame_id ) { continue; } // TA frame frame = GetFrame( frame_id ); if( frame.mType != MDIO_TA ) { file_stream << ","; } ++frame_id; if( frame_id > last_frame_id ) { continue; } // MDIO_C22_DATA or MDIO_C45_ADDRDATA frame frame = GetFrame( frame_id ); if( frame.mType == MDIO_C22_DATA || frame.mType == MDIO_C45_ADDR || frame.mType == MDIO_C45_DATA ) { char number_str[128]; AnalyzerHelpers::GetNumberString( frame.mData1, display_base, 16, number_str, 128 ); file_stream << number_str; } else { file_stream << ","; } file_stream << std::endl; // check for cancel and update progress if( UpdateExportProgressAndCheckForCancel( packet_id, num_packets ) ) { return; } } UpdateExportProgressAndCheckForCancel( num_packets, num_packets ); }
void SDIOAnalyzerResults::GenerateExportFile( const char* file, DisplayBase display_base, U32 export_type_user_id ) { std::ofstream file_stream( file, std::ios::out ); U64 trigger_sample = mAnalyzer->GetTriggerSample(); U32 sample_rate = mAnalyzer->GetSampleRate(); double timeStamp = 0.0; if ( (export_type_user_id == SDIO_EXPORT_FULL) ||(export_type_user_id == SDIO_EXPORT_SHORT)) { // if you want sample numbers // file_stream << "Sample Number, Time [s] ,Value ,Description" << std::endl; file_stream << "Time [s] ,Value ,Description" << std::endl; } else { // if you want sample numbers file_stream << "Sample Number, Time [s] ,Value ,Description" << std::endl; // file_stream << "Time [s] ,Value"<< std::endl; } U64 num_frames = GetNumFrames(); for( U32 i=0; i < num_frames; i++ ) { Frame frame = GetFrame( i ); U64 cmdType = frame.mData1; char time_str[128]; timeStamp = (double)frame.mStartingSampleInclusive; timeStamp -= trigger_sample; timeStamp /= sample_rate; if ( (export_type_user_id == SDIO_EXPORT_FULL) ||(export_type_user_id == SDIO_EXPORT_SHORT)) { // only if we want sample numbers // sprintf(time_str, "%012lld %0.10f", frame.mStartingSampleInclusive,timeStamp); sprintf(time_str, "%0.10f", timeStamp); } else { // only if we want sample numbers // sprintf(time_str, "%012lld %0.10f", frame.mStartingSampleInclusive,timeStamp); sprintf(time_str, "%0.10f", timeStamp); } // if regular CMD line data if (frame.mType == FRAME_TYPE_CMD_DATA) { SdioCmd *tmp = SdioCmd::CreateSdioCmd(frame.mData1); if (tmp->getCmd() == 52) { // set up the CCCR for exporting // the cccr will be static, so no need to free it CCCR *cccr = CCCR::BuildCCCR(frame.mData1); } if (export_type_user_id == SDIO_EXPORT_FULL) { // const char* detail = tmp->getDetailedString(); string *s = tmp->getDetailedString(); file_stream << time_str << "," << "\t" << s->c_str() << endl; delete s; } else if (export_type_user_id == SDIO_EXPORT_SHORT) { string *s = tmp->getShortString(); file_stream << time_str << "," << "\t" << s->c_str() << endl; delete s; } else { // just data char number_str[128]; sprintf(number_str, "0x%012llX", frame.mData1); file_stream << time_str << "," << "\t" << number_str << endl; } } else { char number_str[128]; // this is DATA Line Data sprintf(number_str, "0x%02llX", frame.mData1); file_stream << time_str << "," << "\t"<<number_str <<std::endl; } if( UpdateExportProgressAndCheckForCancel( i, num_frames ) == true ) { file_stream.close(); return; } } CCCR::DumpCCCRTable(file_stream); CCCR::DumpFBRTable(file_stream); CCCR::CleanupCCCR(); file_stream.close(); }
void AtmelSWIAnalyzerResults::GenerateExportFile(const char* file, DisplayBase display_base, U32 export_type_user_id) { std::ofstream file_stream(file, std::ios::out); U64 trigger_sample = mAnalyzer->GetTriggerSample(); U32 sample_rate = mAnalyzer->GetSampleRate(); Frame f; char time_str[128], number_str[128]; const U64 num_frames = GetNumFrames(); std::vector<std::string> texts; for (U64 fcnt = 0; fcnt < num_frames; fcnt++) { // get the frame f = GetFrame(fcnt); // make the time string AnalyzerHelpers::GetTimeString(f.mStartingSampleInclusive, trigger_sample, sample_rate, time_str, sizeof(time_str)); switch (f.mType) { case FrameToken: file_stream << "Token "; if (f.mData1 == SWI_Wake) file_stream << "Wake"; else if (f.mData1 == SWI_One) file_stream << "One"; else if (f.mData1 == SWI_Zero) file_stream << "Zero"; file_stream << " at " << time_str << std::endl << std::endl; break; case FrameByte: AnalyzerHelpers::GetNumberString(f.mData1, display_base, 8, number_str, sizeof(number_str)); file_stream << "Byte (" << number_str << ") at " << time_str << std::endl; break; case FrameFlag: AnalyzerHelpers::GetNumberString(f.mData1, display_base, 8, number_str, sizeof(number_str)); file_stream << "Flag " << GetFlagName(static_cast<SWI_Flag>(f.mData1)) << " (" << number_str << ") at " << time_str << std::endl << std::endl; break; case FrameCount: // start the IO block section and write the count byte AnalyzerHelpers::GetNumberString(f.mData1, display_base, 8, number_str, sizeof(number_str)); file_stream << "I/O Block at " << time_str << std::endl; file_stream << "Count (" << number_str << ")" << std::endl; break; case FramePacketSegment: // get the packet segment texts GetTextsForPacketSegmentFrame(f, display_base, texts); file_stream << texts.front() << std::endl; break; case FrameChecksum: // get the checksum texts GetTextsForChecksumFrame(f, display_base, texts); file_stream << texts.front() << std::endl << std::endl; break; } if (UpdateExportProgressAndCheckForCancel(fcnt, num_frames)) return; } // end UpdateExportProgressAndCheckForCancel(num_frames, num_frames); }
void CanAnalyzerResults::GenerateExportFile( const char* file, DisplayBase display_base, U32 /*export_type_user_id*/ ) { //export_type_user_id is only important if we have more than one export type. std::stringstream ss; void* f = AnalyzerHelpers::StartFile( file ); U64 trigger_sample = mAnalyzer->GetTriggerSample(); U32 sample_rate = mAnalyzer->GetSampleRate(); ss << "Time [s],Packet,Type,Identifier,Control,Data,CRC,ACK" << std::endl; U64 num_frames = GetNumFrames(); U64 num_packets = GetNumPackets(); for( U32 i=0; i < num_packets; i++ ) { if( i != 0 ) { //below, we "continue" the loop rather than run to the end. So we need to save to the file here. ss << std::endl; AnalyzerHelpers::AppendToFile( (U8*)ss.str().c_str(), ss.str().length(), f ); ss.str( std::string() ); if( UpdateExportProgressAndCheckForCancel( i, num_packets ) == true ) { AnalyzerHelpers::EndFile( f ); return; } } U64 first_frame_id; U64 last_frame_id; GetFramesContainedInPacket( i, &first_frame_id, &last_frame_id ); Frame frame = GetFrame( first_frame_id ); //static void GetTimeString( U64 sample, U64 trigger_sample, U32 sample_rate_hz, char* result_string, U32 result_string_max_length ); char time_str[128]; AnalyzerHelpers::GetTimeString( frame.mStartingSampleInclusive, trigger_sample, sample_rate, time_str, 128 ); char packet_str[128]; AnalyzerHelpers::GetNumberString( i, Decimal, 0, packet_str, 128 ); if( frame.HasFlag( REMOTE_FRAME ) == false ) ss << time_str << "," << packet_str << ",DATA"; else ss << time_str << "," << packet_str << ",REMOTE"; U64 frame_id = first_frame_id; frame = GetFrame( frame_id ); char number_str[128]; if( frame.mType == IdentifierField ) { AnalyzerHelpers::GetNumberString( frame.mData1, display_base, 12, number_str, 128); ss << "," << number_str; ++frame_id; } else if( frame.mType == IdentifierFieldEx ) { AnalyzerHelpers::GetNumberString( frame.mData1, display_base, 32, number_str, 128 ); ss << "," << number_str; ++frame_id; } else { ss << ","; } if( frame_id > last_frame_id ) continue; frame = GetFrame( frame_id ); if( frame.mType == ControlField ) { AnalyzerHelpers::GetNumberString( frame.mData1, display_base, 4, number_str, 128); ss << "," << number_str; ++frame_id; } else { ss << ","; } ss << ","; if( frame_id > last_frame_id ) continue; for( ; ; ) { frame = GetFrame( frame_id ); if( frame.mType != DataField ) break; AnalyzerHelpers::GetNumberString( frame.mData1, display_base, 8, number_str, 128 ); ss << number_str; if( frame_id == last_frame_id ) break; ++frame_id; if( GetFrame( frame_id ).mType == DataField ) ss << " "; } if( frame_id > last_frame_id ) continue; frame = GetFrame( frame_id ); if( frame.mType == CrcField ) { AnalyzerHelpers::GetNumberString( frame.mData1, display_base, 15, number_str, 128); ss << "," << number_str; ++frame_id; }else { ss << ","; } if( frame_id > last_frame_id ) continue; frame = GetFrame( frame_id ); if( frame.mType == AckField ) { if( bool( frame.mData1 ) == true ) ss << "," << "ACK"; else ss << "," << "NAK"; ++frame_id; }else { ss << ","; } } UpdateExportProgressAndCheckForCancel( num_frames, num_frames ); AnalyzerHelpers::EndFile( f ); }