leave tests for future

This commit is contained in:
eddyem 2015-11-03 17:42:44 +03:00
parent 419ee2f237
commit d0d0f4dfc1
2 changed files with 41 additions and 14 deletions

View File

@ -154,35 +154,61 @@ typedef struct __attribute__((__packed__)){
int32_t status; int32_t status;
} outdata; } outdata;
void proc_data(uint8_t *data, ssize_t len){ #define ACS_CMD(a) do{green(#a); printf("\n");}while(0)
/**
* send input RA/Decl (j2000!) coordinates to tel
* both coords are in seconds (ra in time, dec in angular)
*/
int setCoords(double ra, double dec){
double r, d;
calc_AP(ra, dec, &r, &d);
DBG("Set RA/Decl to %g, %g", r/3600, d/3600);
ACS_CMD(SetRADec(r, d));
int i;
for(i = 0; i < 10; ++i){
if(InpAlpha == r && InpDelta == d) break;
usleep(100000);
}
if(InpAlpha != r || InpDelta != d){
WARNX(_("Can't send data to system!"));
return 0;
}
return 1;
}
int proc_data(uint8_t *data, ssize_t len){
FNAME(); FNAME();
if(len != sizeof(indata)){ if(len != sizeof(indata)){
WARN("Bad data size: got %zd instead of %zd!", len, sizeof(indata)); WARN("Bad data size: got %zd instead of %zd!", len, sizeof(indata));
return; return 0;
} }
indata *dat = (indata*)data; indata *dat = (indata*)data;
uint16_t L, T; uint16_t L, T;
uint64_t tim; //uint64_t tim;
uint32_t ra; uint32_t ra;
int32_t dec; int32_t dec;
#if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__ #if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__
L = le16toh(dat->len); T = le16toh(dat->type); L = le16toh(dat->len); T = le16toh(dat->type);
tim = le64toh(dat->time); //tim = le64toh(dat->time);
ra = le32toh(dat->ra); ra = le32toh(dat->ra);
dec = (int32_t)le32toh((uint32_t)dat->dec); dec = (int32_t)le32toh((uint32_t)dat->dec);
#else #else
L = dat->len; T = dat->type; L = dat->len; T = dat->type;
tim = dat->time; //tim = dat->time;
ra = dat->ra; dec = dat->dec; ra = dat->ra; dec = dat->dec;
#endif #endif
WARN("got message with len %u & type %u", L, T); WARN("got message with len %u & type %u", L, T);
double tagRA = RA2HRS(ra), tagDec = DEC2DEG(dec); double tagRA = RA2HRS(ra), tagDec = DEC2DEG(dec);
WARN("RA: %u (%g), DEC: %d (%g)", ra, tagRA, WARN("RA: %u (%g), DEC: %d (%g)", ra, tagRA,
dec, tagDec); dec, tagDec);
if(!setCoords(tagRA, tagDec)) return 0;
return 1;
/*
time_t z = time(NULL); time_t z = time(NULL);
time_t tm = (time_t)(tim/1000000); time_t tm = (time_t)(tim/1000000);
WARN("time: %ju (local: %ju)", (uintmax_t)tm, (uintmax_t)z); WARN("time: %ju (local: %ju)", (uintmax_t)tm, (uintmax_t)z);
WARN("time: %zd -- %s local: %s", tim, ctime(&tm), ctime(&z)); WARN("time: %zd -- %s local: %s", tim, ctime(&tm), ctime(&z));
*/
} }
/** /**
@ -193,15 +219,15 @@ void handle_socket(int sock){
if(global_quit) return; if(global_quit) return;
ssize_t readed; ssize_t readed;
outdata dout; outdata dout;
dout.len = sizeof(outdata); dout.len = htole16(sizeof(outdata));
dout.type = 0; dout.type = 0;
dout.status = 0; dout.status = 0;
while(!global_quit){ while(!global_quit){
double r, d, ca, cd; double r, d, ca, cd;
calc_AD(val_A, val_Z, S_time, &ca, &cd); // calculate current telescope polar coordinates calc_AD(val_A, val_Z, S_time, &ca, &cd); // calculate current telescope polar coordinates
calc_mean(ca, cd, &r, &d); calc_mean(ca, cd, &r, &d);
dout.ra = HRS2RA(r); dout.ra = htole32(HRS2RA(r));
dout.dec = DEG2DEC(d); dout.dec = (int32_t)htole32(DEG2DEC(d));
if(!send_data((uint8_t*)&dout, sizeof(outdata), sock)) break; if(!send_data((uint8_t*)&dout, sizeof(outdata), sock)) break;
DBG("sent ra = %g, dec = %g", RA2HRS(dout.ra), DEC2DEG(dout.dec)); DBG("sent ra = %g, dec = %g", RA2HRS(dout.ra), DEC2DEG(dout.dec));
fd_set readfds; fd_set readfds;
@ -227,12 +253,12 @@ void handle_socket(int sock){
/************************************** /**************************************
* DO SOMETHING WITH DATA * * DO SOMETHING WITH DATA *
**************************************/ **************************************/
proc_data(buff, readed); if(!proc_data(buff, readed)) dout.status = -1;
else dout.status = 0;
} }
close(sock); close(sock);
} }
#define ACS_CMD(a) do{green(#a); printf("\n");}while(0)
typedef struct{ typedef struct{
uint32_t keylev; uint32_t keylev;
uint32_t codelev; uint32_t codelev;
@ -271,8 +297,6 @@ void get_passhash(passhash *p){
static inline void main_proc(){ static inline void main_proc(){
int sock; int sock;
int reuseaddr = 1; int reuseaddr = 1;
//get_cmd_queue(&ucmd, ClientSide);
//get_passhash(&pass);
// open socket // open socket
struct sockaddr_in myaddr; struct sockaddr_in myaddr;
myaddr.sin_family = AF_INET; myaddr.sin_family = AF_INET;
@ -335,6 +359,9 @@ int main(_U_ int argc, char **argv){
printf("\n"); printf("\n");
if(fabs(M_time - last) < 0.02) if(fabs(M_time - last) < 0.02)
ERRX(_("Data stale!")); ERRX(_("Data stale!"));
//get_cmd_queue(&ucmd, ClientSide);
//passhash pass = {0,0};
//get_passhash(&pass);
printf(_("All OK, start socket\n")); printf(_("All OK, start socket\n"));
/* /*