class library to access fischertechnik interfaces via USB

Dependencies:   FatFileSystem mbed myBlueUSB neigbourhood rfcomm sdp

ftlib/ftlibclasstxcbt.h

Committer:
networker
Date:
2013-03-11
Revision:
1:4676e8b9b357
Parent:
0:7da612835693

File content as of revision 1:4676e8b9b357:

#ifndef FTLIBCLASSTXCBT_H
#define FTLIBCLASSTXCBT_H
#include "ftlibclasstxc.h"
#include "ftusb.h"
//#include <string.h>
//#define FT_TXC  300

//#include "ROBO_TX_FW.h" //"../PC_programming_RoboTXC_V1-2_11_Dec_2009/PC_Programming_RoboTXC/Demo_Static_Lib_C/Inc/"
#include "ROBO_TX_FW_1_24.h" //"../PC_programming_RoboTXC/PC_Programming_RoboTXC/Demo_Static_Lib_C/Inc/"

class ftusbdevtxbt: public ftusbdevtx {
    friend ftusbdev;
    BD_ADDR btaddr;
    char *name;
    enum { idle, ping, serial, info, slaves, slaves_info, ready} init;
    int message_pending;
    int parseState;
    unsigned short X1_crc, X1_len, X1_pos, X1_cmd;
    unsigned char *X1_pkt;
    //ftusbdevtxbt() {}
    ftusbdevtxbt(BTDevice *bd);
    //virtual void FtThreadInit() ;
    virtual void FtThreadBegin() ;
    virtual void FtThreadEnd() ;
    //unsigned set_baudrate(unsigned br);
    //unsigned send_msg(unsigned cmd, unsigned set=0, bool sync = true);
    //unsigned rec_msg();
    //static void read_finished_cb(int device, int endpoint, int status, unsigned char* data, int len, void* userData);
    //static void write_finished_cb(int device, int endpoint, int status, unsigned char* data, int len, void* userData);
    virtual int read_data(unsigned char *data, int size, USBCallback callback = 0, void* userData = 0);// { return USBBulkTransfer(device, 0x82, data, size, callback, userData);}
    virtual int write_data(unsigned char *data, int size, USBCallback callback = 0, void* userData = 0);// { return USBBulkTransfer(device, 0x03, data, size, callback, userData);}
    static void recv(int socket, SocketState state, const u8* data, int len, void* userData) {
        if (userData) ((ftusbdevtxbt*)userData)->receive(socket, state, data, len);
    }
    void receive(int socket, SocketState state, const u8* data, int len);// {printf("ftdev::receive was called: socket %d, state=%d, length=%d\n", socket, state, len);}
    void parse (const unsigned char *buf, unsigned len);
public:
    //virtual ~ftusbdevtxbt() ;
//public API: These functions match those of the original ftlib
    virtual unsigned set_baudrate(unsigned br) {
        return 0;
    }
    static unsigned InitFtUsbDeviceList();//overrides ftusbdev (also adds BT devices)
    virtual unsigned OpenFtUsbDevice(); //ftxOpenComDevice, we regard a TXC as a USB device
    virtual unsigned CloseFtDevice(); //ftxCloseDevice, ftxCloseAllDevices (ftlibclass)
    //virtual unsigned IsFtTransferActiv();
    //virtual unsigned GetFtFirmware() ;
    virtual unsigned GetFtSerialNr();
    virtual char*     GetFtLongNameStrg() {
        return strdup(name);
    }
    //TA*  GetFtTransferAreaAddress(int i) ;
    //virtual unsigned      StartFtTransferArea(NOTIFICATION_EVENTS* sNEvent );
};
 
#endif