Hi all,
I am also confused about how Frozen Counters should be implemented by the Outstation.
Can anyone please explain when should the Outstation application call the UpdateBuilder::FreezeCounter method?
Based on the below declaration, I understand the UpdateBuilder::FreezeCounter() freezes and maybe clears (resets?) a counter. How is the counter unfrozen after that?
/**
* Freeze a Counter measurement
* @param index index of the measurement
* @param clear clear the original counter
* @param mode Describes how event generation is handled for this method
* @return true if the value exists and it was updated
*/
virtual bool FreezeCounter(uint16_t index, bool clear = false, EventMode mode = EventMode::Detect) = 0;
DatabaseConfig::DatabaseConfig(uint16_t all_types)
{
...
initialize(this->counter, all_types);
initialize(this->frozen_counter, all_types);
...
};
initializes a collection of this->frozen_counter , which I assume must match (same size and same indexes) as the associated collection of counters.
What values get loaded in the collection of frozen_counter? who loads them? when? and how?
Does the Opnednp3_3.x_3.0.1 library implement the IMMED_FREEZE request? How?
If so how does the library address the conflict between the IMMED_FREEZE request and the UpdateBuilder::FreezeCounter () call from the Outstation application?
Thank you,
Ovidiu Adam