00001 #include "FreqTripListener.h" 00002 using namespace std; 00003 using namespace adevs; 00004 00005 FreqTripListener::FreqTripListener(ElectricalModel* model, string model_name): 00006 fout(string(model_name+"_freq_trip.dat").c_str()), 00007 src(model) 00008 { 00009 } 00010 00011 void FreqTripListener::stateChange(adevs::Atomic<adevs::PortValue<BasicEvent*> >* model, double t) 00012 { 00013 if (model == src) 00014 { 00015 for (unsigned i = 0; i < src->getElectricalData()->getGenrCount(); i++) 00016 { 00017 if (src->genrOffLine(i) && tripped.find(i) == tripped.end()) 00018 { 00019 fout << t << " " << i << endl; 00020 tripped.insert(i); 00021 } 00022 } 00023 } 00024 } 00025 00026 FreqTripListener::~FreqTripListener() 00027 { 00028 fout.close(); 00029 } 00030