Skip to content
Snippets Groups Projects
Commit 334b290d authored by Israel Barreto Sant'Anna's avatar Israel Barreto Sant'Anna
Browse files

Size changed to actual data size,without counting the zero filling bytes; cdr sending OK back

parent 7a6d2d21
No related branches found
No related tags found
1 merge request!1Lento
...@@ -64,7 +64,7 @@ char* Message::getMessageAsCharPointer(){ ...@@ -64,7 +64,7 @@ char* Message::getMessageAsCharPointer(){
} }
int Message::getMessageSize(){ int Message::getMessageSize(){
return size.to_ulong()+4; return size.to_ulong() < MINSIZE ? MINSIZE+4 : size.to_ulong()+4;
} }
int Message::dataToInt() { int Message::dataToInt() {
......
...@@ -72,10 +72,11 @@ int Protocol::setData(vector<BYTE> data, int type){ ...@@ -72,10 +72,11 @@ int Protocol::setData(vector<BYTE> data, int type){
last = data.begin()+i+size+1; last = data.begin()+i+size+1;
vector<BYTE> subvector(first, last); vector<BYTE> subvector(first, last);
msg.data = subvector; msg.data = subvector;
msg.size = bitset<SIZE_S>(size);
msg.calcParity();
if(size < MINSIZE){ if(size < MINSIZE){
BYTE zero = 0x00; BYTE zero = 0x00;
msg.data.insert(msg.data.end(), MINSIZE-size, zero); msg.data.insert(msg.data.end(), MINSIZE-size, zero);
size = MINSIZE;
} }
msg.size = bitset<SIZE_S>(size); msg.size = bitset<SIZE_S>(size);
msg.calcParity(); msg.calcParity();
...@@ -95,7 +96,8 @@ int Protocol::recvMessage(int sockt){ ...@@ -95,7 +96,8 @@ int Protocol::recvMessage(int sockt){
Message msg = Message(); Message msg = Message();
int size = (int)(dataRec[1]>>2); int size = (int)(dataRec[1]>>2);
cout << "Tamanho:" << size << "\t"; cout << "Tamanho:" << size << "\t";
msg.setBitFields(dataRec[0], dataRec[1], dataRec[2], dataRec[size+3]); int dataSize = size < MINSIZE ? MINSIZE : size;
msg.setBitFields(dataRec[0], dataRec[1], dataRec[2], dataRec[dataSize+3]);
cout << "Sequence:" << msg.sequence.to_ulong() << "\t"; cout << "Sequence:" << msg.sequence.to_ulong() << "\t";
BYTE msgData[size]; BYTE msgData[size];
......
...@@ -18,6 +18,9 @@ int main(){ ...@@ -18,6 +18,9 @@ int main(){
if(status == CD){ if(status == CD){
cout << "Recebeu CD\n"; cout << "Recebeu CD\n";
cd(receiveProtocol.getDataAsString()); cd(receiveProtocol.getDataAsString());
vector<BYTE> val(1,(BYTE)0);
sendProtocol.setData(val, OK);
sendProtocol.sendMessage(sockt,0);
}else if(status == LS){ }else if(status == LS){
cout << "protocol data: " << receiveProtocol.getDataAsString() << endl; cout << "protocol data: " << receiveProtocol.getDataAsString() << endl;
cout << "message data: " << receiveProtocol.getMessages().back().getDataAsString() << endl; cout << "message data: " << receiveProtocol.getMessages().back().getDataAsString() << endl;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment