|
|
|
@ -10,6 +10,9 @@
|
|
|
|
|
USB Missle Launcher Demo
|
|
|
|
|
Copyright (C) Dave Fletcher, 2009.
|
|
|
|
|
fletch at fletchtronics dot net
|
|
|
|
|
|
|
|
|
|
Based on research by Scott Weston at
|
|
|
|
|
http://code.google.com/p/pymissle
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -50,23 +53,49 @@
|
|
|
|
|
|
|
|
|
|
#include "MissileLauncher.h"
|
|
|
|
|
|
|
|
|
|
/** Command constants */
|
|
|
|
|
uint8_t CMD_INITA[8] = { 85, 83, 66, 67, 0, 0, 4, 0 };
|
|
|
|
|
uint8_t CMD_INITB[8] = { 85, 83, 66, 67, 0, 64, 2, 0 };
|
|
|
|
|
uint8_t CMD_STOP[8] = { 0, 0, 0, 0, 0, 0, 8, 8 };
|
|
|
|
|
uint8_t CMD_LEFT[8] = { 0, 1, 0, 0, 0, 0, 8, 8 };
|
|
|
|
|
uint8_t CMD_RIGHT[8] = { 0, 0, 1, 0, 0, 0, 8, 8 };
|
|
|
|
|
uint8_t CMD_UP[8] = { 0, 0, 0, 1, 0, 0, 8, 8 };
|
|
|
|
|
uint8_t CMD_DOWN[8] = { 0, 0, 0, 0, 1, 0, 8, 8 };
|
|
|
|
|
uint8_t CMD_LEFTUP[8] = { 0, 1, 0, 1, 0, 0, 8, 8 };
|
|
|
|
|
uint8_t CMD_RIGHTUP[8] = { 0, 0, 1, 1, 0, 0, 8, 8 };
|
|
|
|
|
uint8_t CMD_LEFTDOWN[8] = { 0, 1, 0, 0, 1, 0, 8, 8 };
|
|
|
|
|
uint8_t CMD_RIGHTDOWN[8] = { 0, 0, 1, 0, 1, 0, 8, 8 };
|
|
|
|
|
uint8_t CMD_FIRE[8] = { 0, 0, 0, 0, 0, 1, 8, 8 };
|
|
|
|
|
/** Launcher first init command report data sequence */
|
|
|
|
|
static const uint8_t CMD_INITA[8] = { 85, 83, 66, 67, 0, 0, 4, 0 };
|
|
|
|
|
|
|
|
|
|
/** Launcher second init command report data sequence */
|
|
|
|
|
static const uint8_t CMD_INITB[8] = { 85, 83, 66, 67, 0, 64, 2, 0 };
|
|
|
|
|
|
|
|
|
|
/** Launcher command report data sequence to stop all movement */
|
|
|
|
|
static const uint8_t CMD_STOP[8] = { 0, 0, 0, 0, 0, 0, 8, 8 };
|
|
|
|
|
|
|
|
|
|
/** Launcher command report data sequence to move left */
|
|
|
|
|
static const uint8_t CMD_LEFT[8] = { 0, 1, 0, 0, 0, 0, 8, 8 };
|
|
|
|
|
|
|
|
|
|
/** Launcher command report data sequence to move right */
|
|
|
|
|
static const uint8_t CMD_RIGHT[8] = { 0, 0, 1, 0, 0, 0, 8, 8 };
|
|
|
|
|
|
|
|
|
|
/** Launcher command report data sequence to move up */
|
|
|
|
|
static const uint8_t CMD_UP[8] = { 0, 0, 0, 1, 0, 0, 8, 8 };
|
|
|
|
|
|
|
|
|
|
/** Launcher command report data sequence to move down */
|
|
|
|
|
static const uint8_t CMD_DOWN[8] = { 0, 0, 0, 0, 1, 0, 8, 8 };
|
|
|
|
|
|
|
|
|
|
/** Launcher command report data sequence to move left and up */
|
|
|
|
|
static const uint8_t CMD_LEFTUP[8] = { 0, 1, 0, 1, 0, 0, 8, 8 };
|
|
|
|
|
|
|
|
|
|
/** Launcher command report data sequence to move right and up */
|
|
|
|
|
static const uint8_t CMD_RIGHTUP[8] = { 0, 0, 1, 1, 0, 0, 8, 8 };
|
|
|
|
|
|
|
|
|
|
/** Launcher command report data sequence to move left and down */
|
|
|
|
|
static const uint8_t CMD_LEFTDOWN[8] = { 0, 1, 0, 0, 1, 0, 8, 8 };
|
|
|
|
|
|
|
|
|
|
/** Launcher command report data sequence to move right and down */
|
|
|
|
|
static const uint8_t CMD_RIGHTDOWN[8] = { 0, 0, 1, 0, 1, 0, 8, 8 };
|
|
|
|
|
|
|
|
|
|
/** Launcher command report data sequence to fire a missle */
|
|
|
|
|
static const uint8_t CMD_FIRE[8] = { 0, 0, 0, 0, 0, 1, 8, 8 };
|
|
|
|
|
|
|
|
|
|
/** Last command sent to the launcher, to determine what new command (if any) must be sent */
|
|
|
|
|
uint8_t* CmdState;
|
|
|
|
|
|
|
|
|
|
/** Buffer to hold a command to send to the launcher */
|
|
|
|
|
uint8_t CmdBuffer[LAUNCHER_CMD_BUFFER_SIZE];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** Main program entry point. This routine configures the hardware required by the application, then
|
|
|
|
|
* starts the scheduler to run the application tasks.
|
|
|
|
|
*/
|
|
|
|
|