mirror of
https://github.com/eddyem/BTA_utils.git
synced 2025-12-06 10:45:14 +03:00
leave tests for future
This commit is contained in:
parent
419ee2f237
commit
d0d0f4dfc1
@ -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"));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user