Rev 2 | Rev 6 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2 | Rev 5 | ||
|---|---|---|---|
| Line 236... | Line 236... | ||
| 236 | break; |
236 | break; |
| 237 | 237 | ||
| 238 | case CDC_SEND_BREAK: |
238 | case CDC_SEND_BREAK: |
| 239 | // in this case we set the DMX break flag |
239 | // in this case we set the DMX break flag |
| 240 | DMX_State = DMX_BREAK; |
240 | DMX_State = DMX_BREAK; |
| - | 241 | DMX_Pointer = 0; |
|
| 241 | break; |
242 | break; |
| 242 | 243 | ||
| 243 | default: |
244 | default: |
| 244 | break; |
245 | break; |
| 245 | } |
246 | } |
| Line 263... | Line 264... | ||
| 263 | * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL |
264 | * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL |
| 264 | */ |
265 | */ |
| 265 | static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len) |
266 | static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len) |
| 266 | { |
267 | { |
| 267 | /* USER CODE BEGIN 6 */ |
268 | /* USER CODE BEGIN 6 */ |
| - | 269 | switch (DMX_State) |
|
| - | 270 | { |
|
| - | 271 | case DMX_IDLE: // nothing happening |
|
| - | 272 | break; |
|
| - | 273 | case DMX_BREAK:// |
|
| - | 274 | if(*Len > 0) |
|
| - | 275 | { |
|
| - | 276 | if( Buf[0] != 0) |
|
| - | 277 | DMX_State = DMX_IDLE; |
|
| - | 278 | else |
|
| - | 279 | { |
|
| - | 280 | memcpy(DMX_Buffer,Buf+1,*Len-1); |
|
| - | 281 | DMX_Pointer = *Len-1; |
|
| - | 282 | DMX_State = DMX_BYTES; |
|
| - | 283 | } |
|
| - | 284 | } |
|
| - | 285 | break; |
|
| - | 286 | case DMX_BYTES: |
|
| - | 287 | { |
|
| - | 288 | int count = *Len; |
|
| - | 289 | int newPointer = DMX_Pointer + count; |
|
| - | 290 | if(newPointer >= 512) |
|
| - | 291 | count = 512-count; |
|
| - | 292 | ||
| - | 293 | memcpy(DMX_Buffer+ DMX_Pointer, Buf, count); |
|
| - | 294 | DMX_Pointer += count; |
|
| - | 295 | if (DMX_Pointer == 512) |
|
| - | 296 | { |
|
| - | 297 | DMX_State = DMX_DATA; |
|
| - | 298 | } |
|
| - | 299 | } |
|
| - | 300 | break; |
|
| - | 301 | case DMX_DATA: |
|
| - | 302 | case DMX_DONE: |
|
| - | 303 | break; |
|
| - | 304 | } |
|
| - | 305 | ||
| 268 | USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]); |
306 | USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]); |
| 269 | USBD_CDC_ReceivePacket(&hUsbDeviceFS); |
307 | Len = USBD_CDC_ReceivePacket(&hUsbDeviceFS); |
| 270 | return (USBD_OK); |
308 | return (USBD_OK); |
| 271 | /* USER CODE END 6 */ |
309 | /* USER CODE END 6 */ |
| 272 | } |
310 | } |
| 273 | 311 | ||
| 274 | /** |
312 | /** |