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