codice:
#ifndef PAK_H
#define PAK_H
#include "include.h"
typedef char bool;
typedef struct
{
char content[PAK_N]; /* the content of pak */
bool flag[FLAG_N]; /* the pak flag */
char sign[10]; /* the verification signature */
} Pak;
void setSign(Pak * ptr, const char sign[10])
{
#ifdef DEBUG
assert(ptr != NULL);
#endif
if((strlen(sign) > 10) || (strlen(sign) < 10))return;
strcpy(ptr->sign, sign);
}
bool cntSign(Pak * ptr)
{
#ifdef DEBUG
assert(ptr != NULL);
#endif
}
void setContent(Pak * ptr, char content[PAK_N])
{
#ifdef DEBUG
assert(ptr != NULL);
#endif
int i;
for(i = 0; i<PAK_N; i++)
{
ptr->content[i] = content[i];
}
}
int send(Pak * ptr, int mode)
{
#ifdef DEBUG
assert(ptr != NULL);
#endif
if(strlen(ptr->content) < PAK_N)
return -1;
setContent(ptr, ptr->content);
ptr->flag[0] = TRUE; /* the dimension OK flag */
switch(mode)
{
case SERVER:
ptr->flag[1] = SERVER; /* the pak type flag */
break;
case CLIENT:
ptr->flag[1] = CLIENT;
break;
case REQUEST:
ptr->flag[1] = REQUEST;
break;
default:
ptr->flag[1] = ERROR;
break;
}
if((ptr->flag[0] == TRUE) && (ptr->flag[1] != ERROR))
{
setSign((Pak *) ptr->sign, CHECK);
}else{
return -1;
}
/*
send to serial port
*/
return 0;
}
void rec(Pak * ptr, char buf[PAK_N])
{
/*
receive to serial port
*/
#ifdef DEBUG
assert(ptr != NULL);
#endif
strcpy(buf, ptr->content);
}
/*
* Log Format:
* # DATE #
* # FLAG #
* # CONTENT #
*/
void log(char * msg)
{
FILE * log = fopen("app.log", "a+");
#ifdef DEBUG
assert(log!= NULL);
#endif
fprintf(log, "#%s#\n", msg);
fclose(log);
}
void controlChecksum(char * ck, bool * control)
{
if(strcmp(ck, CHECK) == 0)
{
control = (bool *) 0;
}else{
control = (bool *) 1;
}
}
#endif
Se provo ad usare la funz send() mi restituisce -123343
Help me