Satellite Observers Workbench. NOT yet complete, just published for forum posters to \"cherry pick\" pieces of code as requiered as an example.

Dependencies:   mbed

Committer:
AjK
Date:
Mon Oct 11 10:34:55 2010 +0000
Revision:
0:0a841b89d614
Totally Alpha quality as this project isn\t completed. Just publishing it as it answers many questions asked in the forums

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AjK 0:0a841b89d614 1 /****************************************************************************
AjK 0:0a841b89d614 2 * Copyright 2010 Andy Kirkham, Stellar Technologies Ltd
AjK 0:0a841b89d614 3 *
AjK 0:0a841b89d614 4 * This file is part of the Satellite Observers Workbench (SOWB).
AjK 0:0a841b89d614 5 *
AjK 0:0a841b89d614 6 * SOWB is free software: you can redistribute it and/or modify
AjK 0:0a841b89d614 7 * it under the terms of the GNU General Public License as published by
AjK 0:0a841b89d614 8 * the Free Software Foundation, either version 3 of the License, or
AjK 0:0a841b89d614 9 * (at your option) any later version.
AjK 0:0a841b89d614 10 *
AjK 0:0a841b89d614 11 * SOWB is distributed in the hope that it will be useful,
AjK 0:0a841b89d614 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
AjK 0:0a841b89d614 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
AjK 0:0a841b89d614 14 * GNU General Public License for more details.
AjK 0:0a841b89d614 15 *
AjK 0:0a841b89d614 16 * You should have received a copy of the GNU General Public License
AjK 0:0a841b89d614 17 * along with SOWB. If not, see <http://www.gnu.org/licenses/>.
AjK 0:0a841b89d614 18 *
AjK 0:0a841b89d614 19 * $Id: main.cpp 5 2010-07-12 20:51:11Z ajk $
AjK 0:0a841b89d614 20 *
AjK 0:0a841b89d614 21 ***************************************************************************/
AjK 0:0a841b89d614 22
AjK 0:0a841b89d614 23 #ifndef USBEH_ENDPOINT_H
AjK 0:0a841b89d614 24 #define USBEH_ENDPOINT_H
AjK 0:0a841b89d614 25
AjK 0:0a841b89d614 26 #ifndef USBEH_H
AjK 0:0a841b89d614 27 #include "usbeh.h"
AjK 0:0a841b89d614 28 #endif
AjK 0:0a841b89d614 29
AjK 0:0a841b89d614 30 class USBEH_Endpoint {
AjK 0:0a841b89d614 31
AjK 0:0a841b89d614 32 public:
AjK 0:0a841b89d614 33 USBEH_HCED endpointDescriptor;
AjK 0:0a841b89d614 34 USBEH_HCTD tdHead;
AjK 0:0a841b89d614 35
AjK 0:0a841b89d614 36 // State definitions.
AjK 0:0a841b89d614 37 enum state {
AjK 0:0a841b89d614 38 free, // 0
AjK 0:0a841b89d614 39 notQueued, // 1
AjK 0:0a841b89d614 40 idle, // 2
AjK 0:0a841b89d614 41 setupQueued, // 3
AjK 0:0a841b89d614 42 dataQueued, // 4
AjK 0:0a841b89d614 43 statusQueued, // 5
AjK 0:0a841b89d614 44 callbackPending // 6
AjK 0:0a841b89d614 45 };
AjK 0:0a841b89d614 46
AjK 0:0a841b89d614 47 // Local data.
AjK 0:0a841b89d614 48 volatile USBEH_U08 currentState;
AjK 0:0a841b89d614 49 USBEH_U08 flags;
AjK 0:0a841b89d614 50 USBEH_U16 length;
AjK 0:0a841b89d614 51 USBEH_U08 *data;
AjK 0:0a841b89d614 52 USBEH_callback callback;
AjK 0:0a841b89d614 53 void *userData;
AjK 0:0a841b89d614 54
AjK 0:0a841b89d614 55 // Member functions.
AjK 0:0a841b89d614 56 int address(void);
AjK 0:0a841b89d614 57 int device(void);
AjK 0:0a841b89d614 58 int status(void);
AjK 0:0a841b89d614 59 USBEH_U32 queue(USBEH_U32);
AjK 0:0a841b89d614 60 };
AjK 0:0a841b89d614 61
AjK 0:0a841b89d614 62 // END #ifndef USBEH_ENDPOINT_H
AjK 0:0a841b89d614 63 #endif