mbed Phone Platform

Dependencies:   ulaw mbed ConfigFile

Committer:
okini3939
Date:
Fri Jan 21 16:06:15 2011 +0000
Revision:
6:bd62b12de751
Parent:
5:30e2847d241b

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 1:0f82c574096f 1 #include "phone.h"
okini3939 1:0f82c574096f 2 #include "mbed.h"
okini3939 1:0f82c574096f 3 #include "EthernetNetIf.h"
okini3939 1:0f82c574096f 4 #include "UDPSocket.h"
okini3939 1:0f82c574096f 5 #include "RingBuffer.h"
okini3939 1:0f82c574096f 6 #include "ulaw.h"
okini3939 1:0f82c574096f 7
okini3939 1:0f82c574096f 8 struct ipline_header {
okini3939 4:41a3534d085f 9 unsigned long ident;
okini3939 1:0f82c574096f 10 unsigned short num;
okini3939 1:0f82c574096f 11 enum PhoneType target;
okini3939 1:0f82c574096f 12 enum Mode mode;
okini3939 1:0f82c574096f 13 enum Status status;
okini3939 1:0f82c574096f 14 };
okini3939 1:0f82c574096f 15
okini3939 1:0f82c574096f 16 struct ipline_packet {
okini3939 1:0f82c574096f 17 struct ipline_header header;
okini3939 1:0f82c574096f 18 unsigned short len;
okini3939 1:0f82c574096f 19 char data[DATA_SIZE];
okini3939 1:0f82c574096f 20 };
okini3939 1:0f82c574096f 21
okini3939 1:0f82c574096f 22
okini3939 3:1d5dc4107558 23 /**
okini3939 3:1d5dc4107558 24 * @brief IpLine class
okini3939 3:1d5dc4107558 25 */
okini3939 1:0f82c574096f 26 class IpLine {
okini3939 1:0f82c574096f 27 public:
okini3939 6:bd62b12de751 28 IpLine (EthernetNetIf *, AnalogOut, AnalogIn);
okini3939 1:0f82c574096f 29
okini3939 2:e37117117e79 30 void intr ();
okini3939 1:0f82c574096f 31 void poll ();
okini3939 1:0f82c574096f 32 int enter (enum Mode);
okini3939 1:0f82c574096f 33 int scan (enum Scan);
okini3939 1:0f82c574096f 34 void settarget (enum PhoneType, char *);
okini3939 1:0f82c574096f 35
okini3939 1:0f82c574096f 36 private:
okini3939 6:bd62b12de751 37 volatile enum PhoneType remotetarget;
okini3939 6:bd62b12de751 38 volatile enum Mode mode;
okini3939 6:bd62b12de751 39 volatile enum Status status;
okini3939 6:bd62b12de751 40 volatile int hook, packet_num, dataskip, timeout, dialconut, wait, timerled;
okini3939 1:0f82c574096f 41 EthernetNetIf *eth;
okini3939 1:0f82c574096f 42 UDPSocket *udpsock;
okini3939 1:0f82c574096f 43 Host remote;
okini3939 1:0f82c574096f 44 AnalogOut dac;
okini3939 1:0f82c574096f 45 AnalogIn adc;
okini3939 1:0f82c574096f 46 RingBuffer dial, dabuf, adbuf;
okini3939 1:0f82c574096f 47 struct ipline_header last;
okini3939 5:30e2847d241b 48 DigitalOut led_y, led_g;
okini3939 5:30e2847d241b 49 DigitalIn eth_link, eth_speed;
okini3939 1:0f82c574096f 50
okini3939 1:0f82c574096f 51 void onLisnerEvent (UDPSocketEvent);
okini3939 2:e37117117e79 52 void send (struct ipline_header *);
okini3939 2:e37117117e79 53 void send (struct ipline_packet *);
okini3939 4:41a3534d085f 54 unsigned long xor128 ();
okini3939 4:41a3534d085f 55 int gaussian ();
okini3939 1:0f82c574096f 56 };