void MCP::publish() { DEBUG4_PRINT("MCP.publish"); for (byte i = 0; i < appSettings.msw_cnt; i++) { MCP23017::digitalWrite(appSettings.msw[i], actStates.getMsw(i)); String strState = (actStates.getMsw(i)?"ON":"OFF"); if (mqtt) mqtt->publish(appSettings.topMSW,i+1, OUT, strState); DEBUG1_PRINTF("sw[%d]=", i); DEBUG1_PRINT(strState); DEBUG1_PRINTLN(); } PRINT_MEM(); DEBUG4_PRINTLN(); interruptReset(); }
void Print_Memory( void ) { /* create glyph */ error = TT_New_Glyph( face, &glyph ); if ( error ) { fprintf( stderr, gettext( "Could not create glyph container.\n" ) ); goto Failure; } FOOTPRINT( glyph_object ); /* create instance */ error = TT_New_Instance( face, &instance ); if ( error ) { fprintf( stderr, gettext( "Could not create instance.\n" ) ); goto Failure; } FOOTPRINT( first_instance ); error = TT_New_Instance( face, &instance ); if ( error ) { fprintf( stderr, gettext( "Could not create second instance.\n" ) ); goto Failure; } FOOTPRINT( second_instance ); printf( gettext( "Memory footprint statistics:\n" ) ); separator_line( stdout, 78 ); /* NOTE: In our current implementation, the face's execution */ /* context object is created lazily with the first */ /* instance. However, all later instances share the */ /* the same context. */ PRINT_MEM( face_object, gettext( "face object" ) ); PRINT_MEM( glyph_object, gettext( "glyph object" ) ); PRINT_MEM( second_instance, gettext( "instance object" ) ); Print_Mem( memory_footprint.first_instance - memory_footprint.second_instance, gettext( "exec. context object" ) ); separator_line( stdout, 78 ); Print_Mem( memory_footprint.face_object + memory_footprint.glyph_object + memory_footprint.first_instance, gettext( "total memory usage" ) ); printf( "\n" ); return; Failure: fprintf( stderr, " " ); Panic( gettext( "FreeType error message: %s\n" ), TT_ErrToString18( error ) ); }