Advanced Operating Systems - Final Project A @ Tokyo Tech ////////////// Author: Chu Van Thiem and Sidik Soleman ////////////// A WAVE file player on the MBED Application Board with an interface to a software on PC via a TCP connection. ////////////// Main functions: 1. Browse files of an attached USB flash 2. The list of the files of the attached USB are displayed on the LCD 3. Use an joystick to select a WAVE file and give an instruction to play that file 4. Adjust the volume using a potentiometer 5. Output audio to the analog audio out jack ////////////// Software (https://github.com/thiemcv/VS/tree/master/Terminal): 1. Connect with the MBED application board via Ethernet connection 2. Read the list of files stored on the USB flash 3. Write files to the USB flash

Dependencies:   C12832_lcd EthernetInterface USBHost mbed-rtos mbed wave_player

src/tcp_task.h

Committer:
aos
Date:
2014-02-13
Revision:
5:12a48b7c41bf
Parent:
2:5bc47e544b8d

File content as of revision 5:12a48b7c41bf:

/* FILE: tcp_task.h by Chu Van Thiem
*/
#ifndef __TCP_TASK_H__
#define __TCP_TASK_H__

#include "mbed.h"
#include "rtos.h"
#include "Queue.h"
#include "EthernetInterface.h"
#include "usb.h"

// Ethernet config
#define IP_ADDR "192.168.5.123"
#define IP_MASK "255.255.255.0"
#define GW_ADDR "192.168.5.1"
#define TCP_PORT 8001

// FSM states
#define STATE_IDLE  0
#define STATE_1     1
#define STATE_2     2
#define STATE_CMD   3
#define STATE_READ  4
#define STATE_WFILE 5
#define STATE_WDATA 6

// CMD
#define CMD_1     0xAA
#define CMD_2     0x55
#define CMD_PC    0x00
#define CMD_READ  0x00
#define CMD_WFILE 0x01
#define CMD_WDATA 0x02

// ACK
#define ACK_1     0xAA
#define ACK_2     0x55
#define ACK_MBED  0x01
#define ACK_READ  0x00
#define ACK_WFILE 0x01
#define ACK_WDATA 0x02
#define SPR_CHAR  0xFF

#define QUEUE_MAX_LEN 256
#define ACK_MAX_LEN   128
#define NAME_MAX_LEN  32
#define DATA_MAX_LEN  256

void tcp_thread(void const *args);
void cmd_thread(void const *args);

#endif