Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: CDC.cpp
- Revision:
- 3:b76c74783d0d
- Parent:
- 2:10c60edc8573
- Child:
- 6:c454f88524d6
--- a/CDC.cpp Mon Jan 04 23:36:50 2016 +0000 +++ b/CDC.cpp Tue Jan 05 21:32:11 2016 +0000 @@ -42,7 +42,24 @@ bool cdc_active = false; // True while our module, the simulated CDC, is active. bool mute = false; int toggle_shuffle = 1; -int ninefive_cmd[] = {0x32,0x00,0x00,0x16,0x01,0x02,0x00,0x00,-1}; +int ninefive_poweron_cmd[4][9] = { + {0x32,0x00,0x00,0x03,0x01,0x02,0x00,0x00,-1}, + {0x42,0x00,0x00,0x22,0x00,0x00,0x00,0x00,-1}, + {0x52,0x00,0x00,0x22,0x00,0x00,0x00,0x00,-1}, + {0x62,0x00,0x00,0x22,0x00,0x00,0x00,0x00,-1} +}; +int ninefive_active_cmd[4][9] = { + {0x32,0x00,0x00,0x16,0x01,0x02,0x00,0x00,-1}, + {0x42,0x00,0x00,0x36,0x00,0x00,0x00,0x00,-1}, + {0x52,0x00,0x00,0x36,0x00,0x00,0x00,0x00,-1}, + {0x62,0x00,0x00,0x36,0x00,0x00,0x00,0x00,-1}, +}; +int ninefive_powerdown_cmd[4][9] = { + {0x32,0x00,0x00,0x19,0x01,0x00,0x00,0x00,-1}, + {0x42,0x00,0x00,0x38,0x01,0x00,0x00,0x00,-1}, + {0x52,0x00,0x00,0x38,0x01,0x00,0x00,0x00,-1}, + {0x62,0x00,0x00,0x38,0x01,0x00,0x00,0x00,-1} +}; int beep_cmd[] = {0x80,0x04,0x00,0x00,0x00,0x00,0x00,0x00,-1}; int cdc_status_cmd[] = {0xE0,0x00,0x01,0x41,0x01,0x00,0x00,0xD0,-1}; int display_request_cmd[] = {CDC_APL_ADR,0x02,0x05,CDC_SID_FUNCTION_ID,0x00,0x00,0x00,0x00,-1}; @@ -119,7 +136,23 @@ led1 = !led1; break; case NODE_STATUS_RX: - send_can_frame(NODE_STATUS_TX, ninefive_cmd); + switch (CAN_RxMsg.data[3] & 0x0F){ + case (0x3): + for (int i = 0; i < 4; i++) { + send_can_frame(NODE_STATUS_TX, ninefive_poweron_cmd[i]); + } + break; + case (0x2): + for (int i = 0; i < 4; i++) { + send_can_frame(NODE_STATUS_TX, ninefive_active_cmd[i]); + } + break; + case (0x8): + for (int i = 0; i < 4; i++) { + send_can_frame(NODE_STATUS_TX, ninefive_powerdown_cmd[i]); + } + break; + } break; case IHU_BUTTONS: return get_ihu_cmd();