[Ovmsdev] Duktape Persistent Function References

Michael Balzer dexter at expeedo.de
Sat Sep 12 05:12:11 HKT 2020


Mark,

Am 11.09.20 um 18:11 schrieb Michael Balzer:
>> I agree it is not necessary; my suggestion is purely to clean it up
>> and enhance functionality. The problem at the moment is that
>> OvmsCommand execute callbacks can only be to function callbacks (not
>> objects). It doesn’t even use the c++ bind function callback
>> mechanism (like notification, etc, for example). It is what it is,
>> and changing now is very hard.
>
> That slipped my attention, but upgrading OvmsCommand to accept any
> function type should be simply changing m_execute and m_validate to
> std::function, or do I miss something?

Just did this locally, works perfectly. Shall I push the change or have
you begun working on ovms_command?

If so, it's really just exchanging the function signatures for these types:

typedef std::function<void(int, OvmsWriter*, OvmsCommand*, int, const
char* const*)> OvmsCommandExecuteCallback_t;
typedef std::function<int(OvmsWriter*, OvmsCommand*, int, const char*
const*, bool)> OvmsCommandValidateCallback_t;

Patch attached.

Regards,
Michael

-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26

-------------- next part --------------
A non-text attachment was scrubbed...
Name: ovmscommand.patch
Type: text/x-patch
Size: 5128 bytes
Desc: not available
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20200911/8003dfdb/attachment.bin>


More information about the OvmsDev mailing list