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