#define MIN_CREDITS 10 #define MAX_CREDITS 40 void rcv_cb(u_char dlci, u_char * payload, u_short len, void *arg) { u_short idx; if (len > 0) { printf("\n"); for (idx = 0; idx < len; idx++) printf("%c ", payload[idx]); } } void con_cb(u_char dlci, u_char type, void *arg) { if (type == BT_RFCOMM_CONNECT) { printf("RFCOMM Connect on dlci %d...\n", dlci); bt_rfcomm_send_credits(dlci, MAX_CREDITS - BT_RFCOMM_DEF_CREDITS); } else { printf("RFCOMM Disconnect on dlci %d...\n", dlci); } } void line_cb(u_char dlci, u_char flags, void *arg) { printf("rfcomm Line status has changed: dlci: %d, flags: %02x\n", dlci, flags); } void credit_cb(u_char dlci, u_char credits, void *arg) { printf("rfcomm Credits running low for dlci %d. Credits remaining: %d\n", dlci, credits); printf("rfcomm Send new credits: %d\n", MAX_CREDITS - credits); bt_rfcomm_send_credits(dlci, MAX_CREDITS - credits); }