Dependencies:   mbed QEI

Committer:
nucho
Date:
Mon Aug 01 14:46:08 2011 +0000
Revision:
1:7f0fc0d1f777
Parent:
0:3c49891bc39d

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nucho 0:3c49891bc39d 1 /*******************************************
nucho 0:3c49891bc39d 2 * OutPort.cpp
nucho 0:3c49891bc39d 3 * @author Yuki Suga
nucho 0:3c49891bc39d 4 * @copyright Yuki Suga (ysuga.net) Nov, 10th, 2010.
nucho 0:3c49891bc39d 5 * @license LGPLv3
nucho 0:3c49891bc39d 6 *****************************************/
nucho 0:3c49891bc39d 7
nucho 0:3c49891bc39d 8 #include <string.h>
nucho 0:3c49891bc39d 9 #include "BasicDataType.h"
nucho 0:3c49891bc39d 10 #include "OutPort.h"
nucho 0:3c49891bc39d 11 #include "SendPacket.h"
nucho 0:3c49891bc39d 12 #include "ReceivePacket.h"
nucho 1:7f0fc0d1f777 13 #include "Serial.h"
nucho 0:3c49891bc39d 14
nucho 0:3c49891bc39d 15 OutPort::OutPort(char* name, TimedBoolean& Data) :
nucho 0:3c49891bc39d 16 OutPortBase(name)
nucho 0:3c49891bc39d 17 {
nucho 0:3c49891bc39d 18 // m_pData = pData;
nucho 0:3c49891bc39d 19 m_pData = &Data;
nucho 0:3c49891bc39d 20 m_TypeCode = 'b';
nucho 0:3c49891bc39d 21 }
nucho 0:3c49891bc39d 22
nucho 0:3c49891bc39d 23 OutPort::OutPort(char* name, TimedChar& Data) :
nucho 0:3c49891bc39d 24 OutPortBase(name)
nucho 0:3c49891bc39d 25 {
nucho 0:3c49891bc39d 26 // m_pData = pData;
nucho 0:3c49891bc39d 27 m_pData = &Data;
nucho 0:3c49891bc39d 28 m_TypeCode = 'c';
nucho 0:3c49891bc39d 29 }
nucho 0:3c49891bc39d 30
nucho 0:3c49891bc39d 31 OutPort::OutPort(char* name, TimedOctet& Data) :
nucho 0:3c49891bc39d 32 OutPortBase(name)
nucho 0:3c49891bc39d 33 {
nucho 0:3c49891bc39d 34 // m_pData = pData;
nucho 0:3c49891bc39d 35 m_pData = &Data;
nucho 0:3c49891bc39d 36 m_TypeCode = 'o';
nucho 0:3c49891bc39d 37 }
nucho 0:3c49891bc39d 38
nucho 0:3c49891bc39d 39 OutPort::OutPort(char* name, TimedLong& Data) :
nucho 0:3c49891bc39d 40 OutPortBase(name)
nucho 0:3c49891bc39d 41 {
nucho 0:3c49891bc39d 42 // m_pData = pData;
nucho 0:3c49891bc39d 43 m_pData = &Data;
nucho 0:3c49891bc39d 44 m_TypeCode = 'l';
nucho 0:3c49891bc39d 45 }
nucho 0:3c49891bc39d 46
nucho 0:3c49891bc39d 47 OutPort::OutPort(char* name, TimedFloat& Data) :
nucho 0:3c49891bc39d 48 OutPortBase(name)
nucho 0:3c49891bc39d 49 {
nucho 0:3c49891bc39d 50 // m_pData = pData;
nucho 0:3c49891bc39d 51 m_pData = &Data;
nucho 0:3c49891bc39d 52 m_TypeCode = 'f';
nucho 0:3c49891bc39d 53 }
nucho 0:3c49891bc39d 54
nucho 0:3c49891bc39d 55 OutPort::OutPort(char* name, TimedDouble& Data) :
nucho 0:3c49891bc39d 56 OutPortBase(name)
nucho 0:3c49891bc39d 57 {
nucho 0:3c49891bc39d 58 // m_pData = pData;
nucho 0:3c49891bc39d 59 m_pData = &Data;
nucho 0:3c49891bc39d 60 m_TypeCode = 'd';
nucho 0:3c49891bc39d 61 }
nucho 0:3c49891bc39d 62
nucho 0:3c49891bc39d 63 OutPort::OutPort(char* name, TimedBooleanSeq& Data) :
nucho 0:3c49891bc39d 64 OutPortBase(name)
nucho 0:3c49891bc39d 65 {
nucho 0:3c49891bc39d 66 // m_pData = pData;
nucho 0:3c49891bc39d 67 m_pData = &Data;
nucho 0:3c49891bc39d 68 m_TypeCode = 'B';
nucho 0:3c49891bc39d 69 }
nucho 0:3c49891bc39d 70
nucho 0:3c49891bc39d 71 OutPort::OutPort(char* name, TimedCharSeq& Data) :
nucho 0:3c49891bc39d 72 OutPortBase(name)
nucho 0:3c49891bc39d 73 {
nucho 0:3c49891bc39d 74 // m_pData = pData;
nucho 0:3c49891bc39d 75 m_pData = &Data;
nucho 0:3c49891bc39d 76 m_TypeCode = 'C';
nucho 0:3c49891bc39d 77 }
nucho 0:3c49891bc39d 78
nucho 0:3c49891bc39d 79 OutPort::OutPort(char* name, TimedOctetSeq& Data) :
nucho 0:3c49891bc39d 80 OutPortBase(name)
nucho 0:3c49891bc39d 81 {
nucho 0:3c49891bc39d 82 // m_pData = pData;
nucho 0:3c49891bc39d 83 m_pData = &Data;
nucho 0:3c49891bc39d 84 m_TypeCode = 'O';
nucho 0:3c49891bc39d 85 }
nucho 0:3c49891bc39d 86
nucho 0:3c49891bc39d 87
nucho 0:3c49891bc39d 88 OutPort::OutPort(char* name, TimedLongSeq& Data) :
nucho 0:3c49891bc39d 89 OutPortBase(name)
nucho 0:3c49891bc39d 90 {
nucho 0:3c49891bc39d 91 // m_pData = pData;
nucho 0:3c49891bc39d 92 m_pData = &Data;
nucho 0:3c49891bc39d 93 m_TypeCode = 'L';
nucho 0:3c49891bc39d 94 }
nucho 0:3c49891bc39d 95
nucho 0:3c49891bc39d 96 OutPort::OutPort(char* name, TimedFloatSeq& Data) :
nucho 0:3c49891bc39d 97 OutPortBase(name)
nucho 0:3c49891bc39d 98 {
nucho 0:3c49891bc39d 99 // m_pData = pData;
nucho 0:3c49891bc39d 100 m_pData = &Data;
nucho 0:3c49891bc39d 101 m_TypeCode = 'F';
nucho 0:3c49891bc39d 102 }
nucho 0:3c49891bc39d 103
nucho 0:3c49891bc39d 104 OutPort::OutPort(char* name, TimedDoubleSeq& Data) :
nucho 0:3c49891bc39d 105 OutPortBase(name)
nucho 0:3c49891bc39d 106 {
nucho 0:3c49891bc39d 107 // m_pData = pData;
nucho 0:3c49891bc39d 108 m_pData = &Data;
nucho 0:3c49891bc39d 109 m_TypeCode = 'D';
nucho 0:3c49891bc39d 110 }
nucho 0:3c49891bc39d 111
nucho 0:3c49891bc39d 112 OutPort::~OutPort()
nucho 0:3c49891bc39d 113 {
nucho 0:3c49891bc39d 114
nucho 0:3c49891bc39d 115 }
nucho 0:3c49891bc39d 116
nucho 0:3c49891bc39d 117 int OutPort::SizeofData() {
nucho 0:3c49891bc39d 118 switch(m_TypeCode) {
nucho 0:3c49891bc39d 119 case 'b':
nucho 0:3c49891bc39d 120 case 'B':
nucho 0:3c49891bc39d 121 case 'o':
nucho 0:3c49891bc39d 122 case 'O':
nucho 0:3c49891bc39d 123 case 'c':
nucho 0:3c49891bc39d 124 case 'C':
nucho 0:3c49891bc39d 125 return 1;
nucho 0:3c49891bc39d 126 default:
nucho 0:3c49891bc39d 127 return 4;
nucho 0:3c49891bc39d 128 }
nucho 0:3c49891bc39d 129 }
nucho 0:3c49891bc39d 130
nucho 0:3c49891bc39d 131 int OutPort::write()
nucho 0:3c49891bc39d 132 {
nucho 0:3c49891bc39d 133 int datalen = GetLength() * SizeofData();
nucho 0:3c49891bc39d 134 int namelen = strlen(GetName());
nucho 1:7f0fc0d1f777 135 char packet_buffer[MAX_PACKET_SIZE];;
nucho 0:3c49891bc39d 136 packet_buffer[0] = namelen;
nucho 0:3c49891bc39d 137 packet_buffer[1] = datalen;
nucho 0:3c49891bc39d 138 memcpy(&(packet_buffer[2]), GetName(), namelen);
nucho 0:3c49891bc39d 139 memcpy(&(packet_buffer[2 + namelen]), GetBuffer(), datalen);
nucho 0:3c49891bc39d 140 SendPacket(OUTPORT_WRITE, 2+namelen+datalen, packet_buffer);
nucho 0:3c49891bc39d 141 ReceivePacket(packet_buffer);
nucho 0:3c49891bc39d 142 return PACKET_HEADER_SIZE+2+namelen+datalen;
nucho 0:3c49891bc39d 143 }