Changeset 15:1c0347ed41c6 in xplra
- Timestamp:
- 01/28/13 18:37:00 (12 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/client/c/hu/varadiistvan/xplra/XPlane.cc
r14 r15 132 132 //------------------------------------------------------------------------------ 133 133 134 int XPlane::getInt(const char* name) throw(Exception)134 void XPlane::getScalar(const char* name, uint8_t type) throw(Exception) 135 135 { 136 136 checkStream(); … … 138 138 stream->writeU8(Protocol::COMMAND_GET_SINGLE); 139 139 stream->writeString(name, strlen(name)); 140 stream->writeU8( Protocol::TYPE_INT);140 stream->writeU8(type); 141 141 if (!stream->flush()) checkStream(); 142 142 … … 144 144 checkStream(); 145 145 checkResult(result); 146 } 147 148 //------------------------------------------------------------------------------ 149 150 int XPlane::getInt(const char* name) throw(Exception) 151 { 152 getScalar(name, Protocol::TYPE_INT); 146 153 147 154 int value = stream->readS32(); 155 checkStream(); 156 return value; 157 } 158 159 //------------------------------------------------------------------------------ 160 161 float XPlane::getFloat(const char* name) throw(Exception) 162 { 163 getScalar(name, Protocol::TYPE_FLOAT); 164 165 float value = stream->readFloat(); 166 checkStream(); 167 return value; 168 } 169 170 //------------------------------------------------------------------------------ 171 172 double XPlane::getDouble(const char* name) throw(Exception) 173 { 174 getScalar(name, Protocol::TYPE_DOUBLE); 175 176 double value = stream->readDouble(); 148 177 checkStream(); 149 178 return value; -
src/client/c/hu/varadiistvan/xplra/XPlane.h
r14 r15 108 108 int getInt(const char* name) throw(Exception); 109 109 110 /** 111 * Get a float value. 112 */ 113 float getFloat(const char* name) throw(Exception); 114 115 /** 116 * Get a double value. 117 */ 118 double getDouble(const char* name) throw(Exception); 119 110 120 private: 111 121 /** … … 119 129 */ 120 130 void checkResult(uint8_t result) throw(ProtocolException); 131 132 /** 133 * Issue the command to get a single, scalar value. The result is 134 * also checked, but the value should be read by the caller. 135 */ 136 void getScalar(const char* name, uint8_t type) throw(Exception); 121 137 }; 122 138 -
test/basictest.cc
r14 r15 37 37 using hu::varadiistvan::xplra::XPlane; 38 38 using hu::varadiistvan::xplra::Exception; 39 using hu::varadiistvan::xplra::ProtocolException; 39 40 40 41 //------------------------------------------------------------------------------ … … 47 48 printf("Connecting to X-Plane...\n"); 48 49 xplane.connect(); 49 printf("Connected to X-Plane.\n ");50 printf("Connected to X-Plane.\n\n"); 50 51 51 52 printf("Querying the number of the engines...\n"); 52 53 int numEngines = xplane.getInt("sim/aircraft/engine/acf_num_engines"); 53 printf("The number of engines: %d\n ", numEngines);54 printf("The number of engines: %d\n\n", numEngines); 54 55 55 printf("Querying an invalid dataref...\n"); 56 xplane.getInt("sim/aircraft/engine/num_engines"); 56 try { 57 printf("Querying an invalid dataref...\n"); 58 xplane.getInt("sim/aircraft/engine/num_engines"); 59 printf("\n>>>>>>>>>>>> Succeeded!!!!!!!!!!!!!!!!!!!!!!\n\n"); 60 } catch(const ProtocolException& exception) { 61 printf("Exception caugth: %s\n\n", exception.what()); 62 } 63 64 printf("Querying the spool time of a jet engine...\n"); 65 float spoolTime = xplane.getFloat("sim/aircraft/engine/acf_spooltime_jet"); 66 printf("The spool time: %f\n\n", spoolTime); 67 68 printf("Querying the spool time of a propeller...\n"); 69 spoolTime = xplane.getFloat("sim/aircraft/engine/acf_spooltime_prop"); 70 printf("The spool time: %f\n\n", spoolTime); 71 72 printf("Querying the coordinates...\n"); 73 double latitude = xplane.getDouble("sim/flightmodel/position/latitude"); 74 double longitude = xplane.getDouble("sim/flightmodel/position/longitude"); 75 printf("The coordinates: %f, %f\n\n", latitude, longitude); 57 76 58 77 return 0; 59 78 } catch(const Exception& exception) { 60 printf(" Exception caugth: %s\n", exception.what());79 printf("\n>>>>>>>>>>>>>>>>> Exception caugth: %s\n", exception.what()); 61 80 62 81 return 1;
Note:
See TracChangeset
for help on using the changeset viewer.