(At least honking the horn doesn't incur permanent state change; unlocking the doors is obviously not safe.)
Edit: idempotency vs safety... I knew I was being stupid.
(At least honking the horn doesn't incur permanent state change; unlocking the doors is obviously not safe.)
Edit: idempotency vs safety... I knew I was being stupid.
Or, on the other hand, it's a zen koan. If a car honks in a parking garage and no-one is there to hear it, has it even made a sound?
It doesn't matter how many times you apply the 'unlock' operation, it has the same effect as applying it once[1]. However, the 'unlock' operation is not safe[2].
Always treat mechanical devices in a non-deterministic fashion.
Salesmen have to remind every new customer about this, since sooner or later someone locks themself or someone else in the car and the remote has walked away...
There are techniques to monitor the health of the switch and know when the sensor is failing/has failed. THEN you can whack the solenoid to your heart's content if you believe the sensor is damaged. But if you have a working sensor, there's no need to overstress the solenoid and mechanical linkage.
But if you're locking/unlocking your car over the internet with this funky API and want to be sure it's locked, how do you do it? You don't hit the solenoid 20 times and say "well, good enough".
Wait, perhaps I am understanding it wrong, but if I were to consider a lock sensor as non-deterministic, wouldn't that imply that I always have to send the unlock signal, regardless of lock state, because you don't trust the sensor?
You do not trust that because your boolean in RAM says "locked" that the door is locked.
Now whether you trust the sensor to be functional or not is another story.
Ultimately, I decided that I'm unlikely to lose the key. But I don't like the idea that someone could still scan the parking lot, unlocking cars by radio.
Opening up more data/control wirelessly isn't necessarily a good thing. You CERTAINLY don't want someone to be able to make your car segfault while you're driving down the highway.
That could make for a great scene in some futuristic hacker movie.
On a more serious note, there are many possible solutions to the problem of losing a wireless car entry key. Off the top of my head:
1) Have the user tap out a simple rhythm with the button to unlock the car. Downsides: kind of involved and the rhythm would have to be long to be secure.
2) Put a fingerprint scanner on the key. The one in my laptop is a tiny self-contained module, so I expect it to be possible to fit one inside a wireless car key. Downsides: the scanner can break; can't use in gloves.
3) Have the cars mesh network to detect the "trawling for the right car with a key" behavior. Downsides: complexity; the thief could exploit this to lock you out of your own car.
4) Make the key a wristwatch or a wristband. I think this is the best cheap solution. Downsides: might disagree with your fashion sense.