com
This commit is contained in:
parent
0cd965969e
commit
26c316f47a
@ -12,6 +12,11 @@ bool FLAG_FILL_BUFFER2 = false;
|
|||||||
bool FLAG_FILL_BUFFER3 = false;
|
bool FLAG_FILL_BUFFER3 = false;
|
||||||
bool FLAG_FILL_BUFFER4 = false;
|
bool FLAG_FILL_BUFFER4 = false;
|
||||||
|
|
||||||
|
bool FLAG_SEND_BUFFER1 = false;
|
||||||
|
bool FLAG_SEND_BUFFER2 = false;
|
||||||
|
bool FLAG_SEND_BUFFER3 = false;
|
||||||
|
bool FLAG_SEND_BUFFER4 = false;
|
||||||
|
|
||||||
#define ERR_INVALID_DATA_SIZE -1
|
#define ERR_INVALID_DATA_SIZE -1
|
||||||
#define ERR_ALL_BUFFERS_FILL -2
|
#define ERR_ALL_BUFFERS_FILL -2
|
||||||
|
|
||||||
@ -69,23 +74,47 @@ int get_frame(struct Client* client, uint8_t buffer[], size_t lenBuffer){
|
|||||||
switch (client->state) {
|
switch (client->state) {
|
||||||
case CONNECTING:
|
case CONNECTING:
|
||||||
if (client->connecting_frame_timeout <= 0){
|
if (client->connecting_frame_timeout <= 0){
|
||||||
control_send.frame = HDLC_FRAME_ACK;
|
control_send.frame = S_FRAME;
|
||||||
control_send.seq_no = 1;
|
control_send.seq_no = 1;
|
||||||
|
|
||||||
int ret = hdlc_frame_data(&control_send, NULL, 0, buffer, &lenBuffer);
|
int ret = hdlc_frame_data(&control_send, NULL, 0, buffer, &lenBuffer);
|
||||||
if (ret < 0){
|
if (ret < 0){
|
||||||
printf("err in get_frame ACK: %d\n", ret);
|
printf("err in get_frame S_FRAME: %d\n", ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
client->connecting_frame_timeout = CONNECT_FRAME_PERIOD;
|
client->connecting_frame_timeout = CONNECT_FRAME_PERIOD;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case READY_STATE:
|
case READY_STATE:
|
||||||
control_send.frame = HDLC_FRAME_DATA;
|
control_send.frame = I_FRAME;
|
||||||
control_send.seq_no = 1;
|
control_send.seq_no = 1;
|
||||||
|
if (FLAG_FILL_BUFFER1 && !FLAG_SEND_BUFFER1){
|
||||||
int ret = hdlc_frame_data(&control_send, buffer_data[0], SIZE_DATA_BUFFER, buffer, &lenBuffer);
|
int ret = hdlc_frame_data(&control_send, buffer_data[0], SIZE_DATA_BUFFER, buffer, &lenBuffer);
|
||||||
if (ret < 0){
|
if (ret < 0){
|
||||||
printf("err in get_frame DATA: %d\n", ret);
|
printf("err in get_frame I_FRAME: %d\n", ret);
|
||||||
|
}
|
||||||
|
FLAG_SEND_BUFFER1 = true;
|
||||||
|
}
|
||||||
|
if (FLAG_FILL_BUFFER2 && !FLAG_SEND_BUFFER2){
|
||||||
|
int ret = hdlc_frame_data(&control_send, buffer_data[1], SIZE_DATA_BUFFER, buffer, &lenBuffer);
|
||||||
|
if (ret < 0){
|
||||||
|
printf("err in get_frame I_FRAME: %d\n", ret);
|
||||||
|
}
|
||||||
|
FLAG_SEND_BUFFER2 = true;
|
||||||
|
}
|
||||||
|
if (FLAG_FILL_BUFFER3 && !FLAG_SEND_BUFFER3){
|
||||||
|
int ret = hdlc_frame_data(&control_send, buffer_data[2], SIZE_DATA_BUFFER, buffer, &lenBuffer);
|
||||||
|
if (ret < 0){
|
||||||
|
printf("err in get_frame I_FRAME: %d\n", ret);
|
||||||
|
}
|
||||||
|
FLAG_SEND_BUFFER3 = true;
|
||||||
|
}
|
||||||
|
if (FLAG_FILL_BUFFER4 && !FLAG_SEND_BUFFER4){
|
||||||
|
int ret = hdlc_frame_data(&control_send, buffer_data[3], SIZE_DATA_BUFFER, buffer, &lenBuffer);
|
||||||
|
if (ret < 0){
|
||||||
|
printf("err in get_frame I_FRAME: %d\n", ret);
|
||||||
|
}
|
||||||
|
FLAG_SEND_BUFFER4 = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user