So würde das für mich tun:
--- bricklet_io16.c.old 2012-05-09 22:22:28.000000000 +0200
+++ bricklet_io16.c.new 2012-05-10 08:48:08.000000000 +0200
@@ -20,7 +20,11 @@
#define TYPE_GET_PORT_INTERRUPT 8
#define TYPE_INTERRUPT 9
-typedef void (*interrupt_func_t)(char, uint8_t, uint8_t);
+#ifndef MAX_BASE58_STR_SIZE
+ #define MAX_BASE58_STR_SIZE 13
+#endif
+
+typedef void (*interrupt_func_t)(char*, char, uint8_t, uint8_t);
#ifdef _MSC_VER
#pragma pack(push)
@@ -353,8 +357,10 @@
}
int io16_callback_interrupt(IO16 *io16, const unsigned char *buffer) {
+ char str_uid[MAX_BASE58_STR_SIZE];
+ ipcon_base58encode(io16->uid, str_uid);
InterruptCallback_ *ic = (InterruptCallback_ *)buffer;
- ((interrupt_func_t)io16->callbacks[ic->type])(ic->port, ic->interrupt_mask, ic->value_mask);
+ ((interrupt_func_t)io16->callbacks[ic->type])(str_uid, ic->port, ic->interrupt_mask, ic->value_mask);
return sizeof(InterruptCallback_);
}
Besteht Hoffnung, dass ihr das in die offiziellen C-Bindings übernehmen könnt?