summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
83d2cda)
The off command can be sent as soon as the current monitor indicates that
the solenoid is no longer drawing power. This allows giving multi-bit
accessories more time to accommodate quirks of the 74465 decoder.
if(active_accessory && off_timeout)
{
if(active_accessory && off_timeout)
{
+ bool success = (monitor.get_peak()>0.35f && monitor.get_current()<monitor.get_peak()-0.2f);
Time::TimeStamp t = Time::now();
Time::TimeStamp t = Time::now();
+ if(t>off_timeout || success)
{
Accessory &acc = *active_accessory;
{
Accessory &acc = *active_accessory;
// Assume success if we were uncertain of the physical setting
if(acc.uncertain&bit)
acc.uncertain &= ~bit;
// Assume success if we were uncertain of the physical setting
if(acc.uncertain&bit)
acc.uncertain &= ~bit;
- else if(acc.kind==Accessory::TURNOUT && monitor.get_peak()<0.5f)
+ else if(acc.kind==Accessory::TURNOUT && !success)
{
if(debug>=1)
IO::print("Peak current only %.2f A\n", monitor.get_peak());
{
if(debug>=1)
IO::print("Peak current only %.2f A\n", monitor.get_peak());
state(0),
uncertain((1<<bits)-1),
target(0),
state(0),
uncertain((1<<bits)-1),
target(0),
- active_time(500*Time::msec)
+ active_time((bits*700)*Time::msec)
{ }
unsigned ArduControl::Accessory::create_state_command(unsigned b, bool c, char *buffer) const
{ }
unsigned ArduControl::Accessory::create_state_command(unsigned b, bool c, char *buffer) const