mirror of
https://github.com/nasa/trick.git
synced 2025-01-11 15:32:52 +00:00
79 lines
1.8 KiB
C++
79 lines
1.8 KiB
C++
#include <unistd.h>
|
|
#include <iostream>
|
|
#include "SatGraphicsComm.hh"
|
|
|
|
SatGraphicsComm::SatGraphicsComm() {
|
|
|
|
syscmd = "Scene &";
|
|
connection.port = 9000;
|
|
connection.hostname = "localhost";
|
|
|
|
}
|
|
|
|
int SatGraphicsComm::connect() {
|
|
|
|
int ret, num_attempts;
|
|
|
|
system(syscmd);
|
|
std::cout << "SatGraphicsComm: Starting graphics server using: \"" << syscmd << "\"" << std::endl;
|
|
|
|
tc_error( &connection, 0);
|
|
|
|
num_attempts = 0;
|
|
while(1) {
|
|
ret = tc_connect( &connection);
|
|
if (ret == TC_SUCCESS) {
|
|
std::cerr << "SatGraphicsComm: CONNECT." << std::endl;
|
|
break;
|
|
} else {
|
|
num_attempts ++;
|
|
if ( num_attempts == 30 ) {
|
|
std::cerr << "SatGraphicsComm: Couldn't connect to graphics server." << std::endl;
|
|
return 1;
|
|
}
|
|
}
|
|
sleep(1);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
int SatGraphicsComm::send_packet(Satellite* sat) {
|
|
|
|
double packet[15];
|
|
// double packet[24];
|
|
|
|
packet[0] = sat->pos[0];
|
|
packet[1] = sat->pos[1];
|
|
packet[2] = sat->pos[2];
|
|
|
|
packet[3] = sat->vel[0];
|
|
packet[4] = sat->vel[1];
|
|
packet[5] = sat->vel[2];
|
|
|
|
packet[6] = sat->R[0][0];
|
|
packet[7] = sat->R[0][1];
|
|
packet[8] = sat->R[0][2];
|
|
packet[9] = sat->R[1][0];
|
|
packet[10] = sat->R[1][1];
|
|
packet[11] = sat->R[1][2];
|
|
packet[12] = sat->R[2][0];
|
|
packet[13] = sat->R[2][1];
|
|
packet[14] = sat->R[2][2];
|
|
|
|
// packet[15] = sat->Rplat[0][0];
|
|
// packet[16] = sat->Rplat[0][1];
|
|
// packet[17] = sat->Rplat[0][2];
|
|
// packet[18] = sat->Rplat[1][0];
|
|
// packet[19] = sat->Rplat[1][1];
|
|
// packet[20] = sat->Rplat[1][2];
|
|
// packet[21] = sat->Rplat[2][0];
|
|
// packet[22] = sat->Rplat[2][1];
|
|
// packet[23] = sat->Rplat[2][2];
|
|
|
|
tc_write(&connection, (char*)&packet, sizeof(packet));
|
|
|
|
return 0;
|
|
}
|