Subversion Repositories LedShow

Rev

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
/**