📄 slave.cpp
字号:
#include "comunic.h"
#include "comunic.cpp"
#include <conio.h>
#define COM 1
#define TS 1
int file;
int master;
char *gata = "gata";
char *eu = "Eu_1";
void main()
{
clrscr();
TEL *tel;
TEL telr;
char *name;
int pos = 0;
int type;
int error;
unsigned char *s;
int len;
init_port(COM);
while(1)
{
telr.sa = TS;
//printf("again\n");
tel = recv(COM, &type);
//printf("%s\n",tel->data);
printf("tipul %d\n",type);
if(tel->da!=TS&&tel->da!=127)
{
printf("Ignor pachet adresa diferita\n");
}
else
switch(type)
{
case TI_LF_CU_DATE:
tel->data = decode(tel->data, tel->length, &tel->length, &error);
printf("info = %s %d\n", tel->data,tel->length);
if(error != -1)
if(strcmp(tel->data, "cine") == 0)
{
telr.data = strdup(eu);
telr.length = strlen(eu);
//telr.data[telr.length] = '\0';
telr.data = encode(telr.data, telr.length+1, &telr.length);
send(COM, &telr, TR_LF_CU_DATE);
free(telr.data);
free(tel);
exit(1);
}
else
{
master = atoi(tel->data);
telr.da = master;
free(tel);
printf("Master este %d\n", master);
}
break;
case TI_FARA_DATE:
telr.data = NULL;
telr.length = 0;
send(COM, &telr, TR_FARA_DATE);
free(tel);
//exit(1);
break;
case TI_LV_CU_DATE:
tel->data = decode(tel->data, tel->length, &tel->length, &error);
if(pos == 0)
{
char *name;
name = strdup(tel->data);
//name[tel->length]='\0';
printf("nume %s\n",name);
file = open(name,O_RDONLY);
free(name);
}
if(!eof(file))
{
if(pos == 0) pos++;
else
lseek(file, atol(tel->data), SEEK_SET);
char *buff;
buff=(char*)malloc(20);
int i=read(file,buff, sizeof(char)*20);
telr.data = strdup(buff);
telr.length=i;
telr.data[i]='\0';
for(i=0;i<telr.length;i++)
printf("%d ",telr.data[i]);
free(buff);
telr.data = encode(telr.data, telr.length, &telr.length);
//telr.length=strlen(telr.data);
send(COM, &telr, TR_LV_CU_DATE);
free(telr.data);
free(tel);
}
else
{
telr.data = strdup(gata);
telr.length=strlen(gata);
telr.data = encode(telr.data, telr.length+1, &telr.length);
send(COM, &telr, TR_LV_CU_DATE);
close(file);
free(telr.data);
free(tel);
}
break;
case 21:
printf("Telegrama necunoscuta\n");
free(tel);
break;
}
}
}
/*if(type == TI_LF_CU_DATE && tel->da == 127)
//la broadcast
{
// s = decode(tel->data, tel->length, &len, &error);
// strcpy(tel->data, s);
// tel->length = len;
// if(error != -1)
// {
master = atoi(tel->data);
telr.da = master;
printf("Master este %d\n", master);
// }
// else telr.da = 0;
}
if (type==21)
{
telr.data = NULL;
telr.length = 0;
send(COM, &telr, TR_FARA_DATE);
}
else
if(tel->da == TS)
{
if(type == TI_FARA_DATE)//la verificare stare de functionare
{
telr.data = NULL;
telr.length = 0;
send(COM, &telr, TR_FARA_DATE);
}
if(type == TI_LV_CU_DATE)//mi se cere fisierul
{
// s = decode(tel->data, tel->length, &len, &error);
// strcpy(tel->data, s);
// tel->length = len;
// if(error != -1)
// {
if(pos == 0)
{
pos++;
file = fopen(tel->data, "r");
}
///else
if(!feof(file))
{
fseek(file, atoi(tel->data), SEEK_SET);
telr.length = fread(telr.data, sizeof(char), 20, file);
//pos+=telr.length;
// telr.data = encode(telr.data, telr.length, &telr.length);
printf("%s\n",telr.data);
send(COM, &telr, TR_LV_CU_DATE);
}
else
{
strcpy(telr.data,gata);
// telr.data = encode(gata, 4, &telr.length);
send(COM, &telr, TR_LV_CU_DATE);
}
// }
/* else
{
telr.data = NULL;
telr.length = 0;
send(COM, &telr, TR_FARA_DATE);
}*/
/* }
if(type == TI_LF_CU_DATE)
{
//s = decode(tel->data, tel->length, &len, &error);
//strcpy(tel->data, s);
//tel->length = len;
//tel->data = decode(tel->data, tel->length, &(tel->length), &error);
// if(error != -1)
// {
if(strcmp(tel->data, "Cine esti?") == 0)
{
strcpy(telr.data,eu);
// telr.data = encode(eu, 9, &telr.length);
send(COM, &telr, TR_LF_CU_DATE);
}
/* }
else
{
telr.data = NULL;
telr.length = 0;
send(COM, &telr, TR_FARA_DATE);
}
}
}
}
} */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -