8 double htond (double x)
25 SOCKET sendSocket = -1;
26 struct sockaddr_in sendAddr;
28 // IP and port where FG is listening
29 char * fg_ip = "127.0.0.1";
32 // update period. controls how often updates are
33 // sent to FG. in seconds.
34 int update_period = 1000;
38 int main(int argc, char ** argv)
41 if (WSAStartup(MAKEWORD(2,0),&wd) == 0)
43 memset(&sendAddr,0,sizeof(sendAddr));
44 sendAddr.sin_family = AF_INET;
45 sendAddr.sin_port = htons(fg_port);
46 sendAddr.sin_addr.S_un.S_addr = inet_addr(fg_ip);
48 sendSocket = socket(AF_INET,SOCK_DGRAM,0);
49 if (sendSocket != INVALID_SOCKET)
55 cout << "socket() failed" << endl;
60 cout << "WSAStartup() failed" << endl;
66 #define D2R (3.14159 / 180.0)
70 double latitude = 45.59823; // degs
71 double longitude = -120.69202; // degs
72 double altitude = 150.0; // meters above sea level
74 float roll = 0.0; // degs
75 float pitch = 0.0; // degs
76 float yaw = 0.0; // degs
78 float visibility = 5000.0; // meters
85 memset(&fdm,0,sizeof(fdm));
86 fdm.version = htonl(FG_NET_FDM_VERSION);
88 fdm.latitude = htond(latitude * D2R);
89 fdm.longitude = htond(longitude * D2R);
90 fdm.altitude = htond(altitude);
92 fdm.phi = htonf(roll * D2R);
93 fdm.theta = htonf(pitch * D2R);
94 fdm.psi = htonf(yaw * D2R);
96 fdm.num_engines = htonl(1);
98 fdm.num_tanks = htonl(1);
99 fdm.fuel_quantity[0] = htonf(100.0);
101 fdm.num_wheels = htonl(3);
103 fdm.cur_time = htonl(time(0));
106 fdm.visibility = htonf(visibility);
108 sendto(sendSocket,(char *)&fdm,sizeof(fdm),0,(struct sockaddr *)&sendAddr,sizeof(sendAddr));
110 static bool flag = true;