Update to spec

This commit is contained in:
Nils Faerber 2011-11-12 00:15:16 +01:00
parent f9db4e2e61
commit c0807b3785
4 changed files with 22 additions and 8 deletions

View file

@ -428,6 +428,7 @@ void mw_set_get_battery_voltage_response_cb(mwdevice_t *mwdevice, void (*mw_get_
mwdevice->mw_gbatvrsp_data = user_data; mwdevice->mw_gbatvrsp_data = user_data;
} }
#if 0
int mw_read_button_config_response(mwdevice_t *mwdevice, unsigned char *btnrsp, int len) int mw_read_button_config_response(mwdevice_t *mwdevice, unsigned char *btnrsp, int len)
{ {
#ifdef DEBUG #ifdef DEBUG
@ -447,6 +448,7 @@ int mw_read_button_config_response(mwdevice_t *mwdevice, unsigned char *btnrsp,
return 0; return 0;
} }
#endif
void mw_set_read_button_config_response_cb(mwdevice_t *mwdevice, void (*mw_read_button_config_response_cb) (mwdevice_t *mwdevice, void *user_data), void *user_data) void mw_set_read_button_config_response_cb(mwdevice_t *mwdevice, void (*mw_read_button_config_response_cb) (mwdevice_t *mwdevice, void *user_data), void *user_data)
{ {
@ -459,7 +461,7 @@ void mw_set_read_button_config_response_cb(mwdevice_t *mwdevice, void (*mw_read_
int mw_button_event_message(mwdevice_t *mwdevice, unsigned char *btnevt, int len, unsigned char opts) int mw_button_event_message(mwdevice_t *mwdevice, unsigned char *btnevt, int len, unsigned char opts)
{ {
#ifdef DEBUG #ifdef DEBUG
fprintf(stderr, " button %d options %d\n", btnevt[0], opts); fprintf(stderr, "Button event message, button %d options %d\n", btnevt[0], opts);
#endif #endif
if (mwdevice->mw_button_event_message_cb != NULL) if (mwdevice->mw_button_event_message_cb != NULL)
@ -522,8 +524,11 @@ void mw_set_status_change_event_cb(mwdevice_t *mwdevice, void (*mw_status_change
mwdevice->mw_stchev_data = user_data; mwdevice->mw_stchev_data = user_data;
} }
int mw_low_battery_warning_message(mwdevice_t *mwdevice, unsigned char option, unsigned char *statrsp, int len) int mw_low_battery_warning_message(mwdevice_t *mwdevice)
{ {
#ifdef DEBUG
fprintf(stderr, "Watch battery low, please connect charger\n");
#endif
if (mwdevice->mw_low_battery_warning_message_cb != NULL) if (mwdevice->mw_low_battery_warning_message_cb != NULL)
mwdevice->mw_low_battery_warning_message_cb(mwdevice, mwdevice->mw_lbatwarnmsg_data); mwdevice->mw_low_battery_warning_message_cb(mwdevice, mwdevice->mw_lbatwarnmsg_data);
@ -538,8 +543,11 @@ void mw_set_low_battery_warning_message_cb(mwdevice_t *mwdevice, void (*mw_low_b
mwdevice->mw_lbatwarnmsg_data = user_data; mwdevice->mw_lbatwarnmsg_data = user_data;
} }
int mw_low_battery_bt_off_message(mwdevice_t *mwdevice, unsigned char option, unsigned char *statrsp, int len) int mw_low_battery_bt_off_message(mwdevice_t *mwdevice)
{ {
#ifdef DEBUG
fprintf(stderr, "Watch battery extremely low - radio will turn off\n");
#endif
if (mwdevice->mw_low_battery_bt_off_message_cb != NULL) if (mwdevice->mw_low_battery_bt_off_message_cb != NULL)
mwdevice->mw_low_battery_bt_off_message_cb(mwdevice, mwdevice->mw_lbatbtoff_data); mwdevice->mw_low_battery_bt_off_message_cb(mwdevice, mwdevice->mw_lbatbtoff_data);
@ -601,18 +609,19 @@ int mw_decode_frame(mwdevice_t *mwdevice, unsigned char *buf, int len)
case MW_READ_LIGHT_SENSOR_RSP: case MW_READ_LIGHT_SENSOR_RSP:
mw_read_light_sensor_response(mwdevice, msgdata, msgdatalen); mw_read_light_sensor_response(mwdevice, msgdata, msgdatalen);
break; break;
#if 0
case MW_READ_BUTTON_CONFIG_RSP: case MW_READ_BUTTON_CONFIG_RSP:
mw_read_button_config_response(mwdevice, msgdata, msgdatalen); mw_read_button_config_response(mwdevice, msgdata, msgdatalen);
break; break;
#endif
case MW_BUTTON_EVENT_MESSAGE: case MW_BUTTON_EVENT_MESSAGE:
fprintf(stderr, "Button event message\n");
mw_button_event_message(mwdevice, msgdata, msgdatalen, msgopt); mw_button_event_message(mwdevice, msgdata, msgdatalen, msgopt);
break; break;
case MW_LOW_BATTERY_WARNING_MSG: case MW_LOW_BATTERY_WARNING_MSG:
fprintf(stderr, "Watch battery low, please connect charger\n"); mw_low_battery_warning_message(mwdevice);
break; break;
case MW_LOW_BATTERY_BT_OFF_MSG: case MW_LOW_BATTERY_BT_OFF_MSG:
fprintf(stderr, "Watch battery extremely low - radio will turn off\n"); mw_low_battery_bt_off_message(mwdevice);
break; break;
case MW_NVAL_OPERATION_RSP: case MW_NVAL_OPERATION_RSP:
fprintf(stderr, "NVAL operation response - "); fprintf(stderr, "NVAL operation response - ");
@ -641,7 +650,9 @@ int mw_decode_frame(mwdevice_t *mwdevice, unsigned char *buf, int len)
mw_status_change_event(mwdevice, msgopt, msgdata, msgdatalen); mw_status_change_event(mwdevice, msgopt, msgdata, msgdatalen);
break; break;
default: default:
#ifdef DEBUG
fprintf(stderr, "Unkown msgtype 0x%02x\n", msgtype); fprintf(stderr, "Unkown msgtype 0x%02x\n", msgtype);
#endif
break; break;
}; };

View file

@ -89,10 +89,10 @@ void mw_set_read_light_sensor_response_cb(mwdevice_t *mwdevice, void (*mw_read_l
int mw_status_change_event(mwdevice_t *mwdevice, unsigned char option, unsigned char *statrsp, int len); int mw_status_change_event(mwdevice_t *mwdevice, unsigned char option, unsigned char *statrsp, int len);
void mw_set_status_change_event_cb(mwdevice_t *mwdevice, void (*mw_status_change_event_cb) (mwdevice_t *mwdevice, unsigned char *scrmode, unsigned char *status, void *user_data), void *user_data); void mw_set_status_change_event_cb(mwdevice_t *mwdevice, void (*mw_status_change_event_cb) (mwdevice_t *mwdevice, unsigned char *scrmode, unsigned char *status, void *user_data), void *user_data);
int mw_low_battery_warning_message(mwdevice_t *mwdevice, unsigned char option, unsigned char *statrsp, int len); int mw_low_battery_warning_message(mwdevice_t *mwdevice);
void mw_set_low_battery_warning_message_cb(mwdevice_t *mwdevice, void (*mw_low_battery_warning_message_cb) (mwdevice_t *mwdevice, void *user_data), void *user_data); void mw_set_low_battery_warning_message_cb(mwdevice_t *mwdevice, void (*mw_low_battery_warning_message_cb) (mwdevice_t *mwdevice, void *user_data), void *user_data);
int mw_low_battery_bt_off_message(mwdevice_t *mwdevice, unsigned char option, unsigned char *statrsp, int len); int mw_low_battery_bt_off_message(mwdevice_t *mwdevice);
void mw_set_low_battery_bt_off_message_cb(mwdevice_t *mwdevice, void (*mw_low_battery_bt_off_message_cb) (mwdevice_t *mwdevice, void *user_data), void *user_data); void mw_set_low_battery_bt_off_message_cb(mwdevice_t *mwdevice, void (*mw_low_battery_bt_off_message_cb) (mwdevice_t *mwdevice, void *user_data), void *user_data);
int mw_enable_button(mwdevice_t *mwdevice, unsigned char mode, unsigned char button_index, unsigned char press_type, unsigned char callback_type, unsigned char callback_option); int mw_enable_button(mwdevice_t *mwdevice, unsigned char mode, unsigned char button_index, unsigned char press_type, unsigned char callback_type, unsigned char callback_option);

View file

@ -75,6 +75,7 @@
#define MW_RESERVED2 0x45 #define MW_RESERVED2 0x45
#define MW_ENABLE_BUTTON 0x46 #define MW_ENABLE_BUTTON 0x46
#define MW_DISABLE_BUTTON 0x47 #define MW_DISABLE_BUTTON 0x47
/* READ_BUTTON_* have been removed from the spec */
#define MW_READ_BUTTON_CONFIG 0x48 #define MW_READ_BUTTON_CONFIG 0x48
#define MW_READ_BUTTON_CONFIG_RSP 0x49 #define MW_READ_BUTTON_CONFIG_RSP 0x49
#define MW_RESERVED3 0x4a #define MW_RESERVED3 0x4a

View file

@ -533,6 +533,7 @@ void process_cmd(char *cmdline, int clinep, mwdata_t *mwdata)
mw_configure_watch_mode(&mwdata->mwdevice, MW_SCREEN_MODE_IDLE, 0, 4, 1); mw_configure_watch_mode(&mwdata->mwdevice, MW_SCREEN_MODE_IDLE, 0, 4, 1);
mw_update_display(&mwdata->mwdevice, MW_SCREEN_MODE_IDLE, 0); mw_update_display(&mwdata->mwdevice, MW_SCREEN_MODE_IDLE, 0);
} }
#if 0
if (strncmp(cmdline, "rbtcfg", 6) == 0) { if (strncmp(cmdline, "rbtcfg", 6) == 0) {
intopt = cmdline[7]-0x30; intopt = cmdline[7]-0x30;
mdata[0] = 0; /* idle screen */ mdata[0] = 0; /* idle screen */
@ -543,6 +544,7 @@ void process_cmd(char *cmdline, int clinep, mwdata_t *mwdata)
mdata[4] = 0; /* callback message option */ mdata[4] = 0; /* callback message option */
mw_send_frame(&mwdata->mwdevice, MW_READ_BUTTON_CONFIG, 0, mdata, 5); mw_send_frame(&mwdata->mwdevice, MW_READ_BUTTON_CONFIG, 0, mdata, 5);
} }
#endif
if (strncmp(cmdline, "svib", 4) == 0) { if (strncmp(cmdline, "svib", 4) == 0) {
mw_set_vibrate_mode(&mwdata->mwdevice, 1, 300, 300, 5); mw_set_vibrate_mode(&mwdata->mwdevice, 1, 300, 300, 5);
} }