29#include <nlohmann/json.hpp>
34 std::shared_ptr<RC_ITEMS_PROVIDER> aMarkersProvider,
35 std::shared_ptr<RC_ITEMS_PROVIDER> aRatsnestProvider,
36 std::shared_ptr<RC_ITEMS_PROVIDER> aFpWarningsProvider) :
38 m_reportUnits( aReportUnits ),
39 m_markersProvider( aMarkersProvider ),
40 m_ratsnestProvider( aRatsnestProvider ),
41 m_fpWarningsProvider( aFpWarningsProvider )
49 FILE* fp = wxFopen( aFullFileName, wxT(
"w" ) );
54 std::map<KIID, EDA_ITEM*> itemMap;
67 fprintf( fp,
"\n** Found %d DRC violations **\n", count );
69 for(
int i = 0; i < count; ++i )
72 SEVERITY severity = item->GetParent()->GetSeverity();
77 fprintf( fp,
"%s",
TO_UTF8( item->ShowReport( &unitsProvider, severity, itemMap ) ) );
82 fprintf( fp,
"\n** Found %d unconnected pads **\n", count );
84 for(
int i = 0; i < count; ++i )
89 fprintf( fp,
"%s",
TO_UTF8( item->ShowReport( &unitsProvider, severity, itemMap ) ) );
94 fprintf( fp,
"\n** Found %d Footprint errors **\n", count );
96 for(
int i = 0; i < count; ++i )
101 fprintf( fp,
"%s",
TO_UTF8( item->ShowReport( &unitsProvider, severity, itemMap ) ) );
105 fprintf( fp,
"\n** End of Report **\n" );
115 std::ofstream jsonFileStream( aFullFileName.fn_str() );
119 std::map<KIID, EDA_ITEM*> itemMap;
131 SEVERITY severity = item->GetParent()->GetSeverity();
134 severity = bds.
GetSeverity( item->GetErrorCode() );
137 item->GetJsonViolation( violation, &unitsProvider, severity, itemMap );
148 item->GetJsonViolation( violation, &unitsProvider, severity, itemMap );
160 item->GetJsonViolation( violation, &unitsProvider, severity, itemMap );
166 nlohmann::json saveJson = nlohmann::json( reportHead );
167 jsonFileStream << std::setw( 4 ) << saveJson << std::endl;
168 jsonFileStream.flush();
169 jsonFileStream.close();
constexpr EDA_IU_SCALE pcbIUScale
wxString GetMajorMinorPatchVersion()
Get the major, minor and patch version in a string major.minor.patch This is extracted by CMake from ...
Container for design settings for a BOARD object.
SEVERITY GetSeverity(int aDRCErrorCode)
Information pertinent to a Pcbnew printed circuit board.
const wxString & GetFileName() const
void FillItemMap(std::map< KIID, EDA_ITEM * > &aMap)
BOARD_DESIGN_SETTINGS & GetDesignSettings() const
std::shared_ptr< RC_ITEMS_PROVIDER > m_ratsnestProvider
bool WriteJsonReport(const wxString &aFullFileName)
std::shared_ptr< RC_ITEMS_PROVIDER > m_markersProvider
bool WriteTextReport(const wxString &aFullFileName)
DRC_REPORT(BOARD *aBoard, EDA_UNITS aReportUnits, std::shared_ptr< RC_ITEMS_PROVIDER > aMarkersProvider, std::shared_ptr< RC_ITEMS_PROVIDER > aRatsnestProvider, std::shared_ptr< RC_ITEMS_PROVIDER > aFpWarningsProvider)
std::shared_ptr< RC_ITEMS_PROVIDER > m_fpWarningsProvider
This file contains miscellaneous commonly used macros and functions.
KICOMMON_API wxString GetLabel(EDA_UNITS aUnits, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
Get the units string for a given units type.
wxString GetISO8601CurrentDateTime()
#define TO_UTF8(wxstring)
Convert a wxString to a UTF8 encoded C string for all wxWidgets build modes.
std::vector< VIOLATION > unconnected_items
std::vector< VIOLATION > violations
std::vector< VIOLATION > schematic_parity
wxString coordinate_units