Skip to content

Commit 85b9dac

Browse files
committed
add some comment
1 parent 92ceefe commit 85b9dac

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

src/transmitter.cpp

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ void initMESGB();
4343
void initTimeOut();
4444
string convMESGBtostr(MESGB m);
4545

46-
/* Child process, receiving XON/XOFF signal from receiver*/
46+
//child process
4747
void *childProcess(void *threadid);
4848

4949
int main(int argc, char *argv[]){
@@ -96,7 +96,7 @@ int main(int argc, char *argv[]){
9696
printf("Menunggu XON...\n");
9797
usleep(200000);
9898
}
99-
else{ //NAKnum != -1
99+
else{ // !xoff or NAKnum != -1
100100
if(NAKnum == -1) NAKnum = (lastacked + 1) % NAKnum;
101101
mesg.msgno = NAKnum;
102102
mesg.data = cc[NAKnum % RXQSIZE];
@@ -151,6 +151,7 @@ bool corruptACK(char* s){
151151
}
152152
return checksum != real_c;
153153
}
154+
154155
void createSocket(char* addr, char* port){
155156
//define a client socket
156157
serv_addr.sin_family = AF_INET;
@@ -162,11 +163,15 @@ void createSocket(char* addr, char* port){
162163
printf("Membuat socket untuk koneksi ke %s:%d ...\n", receiverAddress, htons(serv_addr.sin_port));
163164
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
164165
}
166+
167+
//initialize SOH, STX, and ETX value of frame with defined value SOH, STX, dan ETX
165168
void initMESGB(){
166169
mesg.soh = SOH;
167170
mesg.stx = STX;
168171
mesg.etx = ETX;
169172
}
173+
174+
//initialize timeout value
170175
void initTimeOut(){
171176
struct timeval tv;
172177
tv.tv_sec = 3;
@@ -175,6 +180,8 @@ void initTimeOut(){
175180
perror("Error");
176181
}
177182
}
183+
184+
//child process, receiving XON/XOFF and ACK/NAK signal from receiver
178185
void *childProcess(void *threadid){
179186

180187
int now = 0;
@@ -195,9 +202,8 @@ void *childProcess(void *threadid){
195202
xoff = true;
196203
}
197204
else{
198-
if(!corruptACK(c_recvfrom)){
199-
//dia nerima ACK / NAK
200-
if(c_recvfrom[0] == ACK){
205+
if(!corruptACK(c_recvfrom)){ //receive ACK/NAK
206+
if(c_recvfrom[0] == ACK){ //receive ACK
201207
printf("ACK %d\n", c_recvfrom[1]);
202208
lastacked = c_recvfrom[1];
203209
if(lastacked <= lastsent){
@@ -207,17 +213,19 @@ void *childProcess(void *threadid){
207213
countBuf = lastsent + 1 + (RXQSIZE - 1) - lastacked;
208214
}
209215
}
210-
else{
216+
else{ //receive NAK
211217
NAKnum = c_recvfrom[1];
212218
printf("NAK %d\n", NAKnum);
213219
}
214220
}
215-
else{
221+
else{ //data corrupted
216222
puts("CORRUPT!!!!");
217223
}
218224
}
219225
}
220226
}
227+
228+
//convert frame to string and add checksum value
221229
string convMESGBtostr(MESGB m){
222230
string ret = "";
223231
ret += m.soh;

0 commit comments

Comments
 (0)