?? tsip_8c-source.html
字號:
00167 <a class="code" href="rprintf_8h.html#a13">rprintfu08</a>(TsipPacket[k]);00168 <a class="code" href="rprintf_8h.html#a7">rprintfChar</a>(<span class="charliteral">' '</span>);00169 }00170 <span class="comment">//rprintfu08(bufferGetFromFront(rxBuffer)); rprintfChar(' ');</span>00171 <span class="comment">//rprintfu08(bufferGetFromFront(rxBuffer)); rprintfChar(' ');</span>00172 00173 <a class="code" href="rprintf_8c.html#a9">rprintfCRLF</a>();00174 }00175 <span class="comment">// done with this processing session</span>00176 foundpacket = TRUE;00177 <span class="keywordflow">break</span>;00178 }00179 }00180 }00181 00182 <span class="keywordflow">if</span>(foundpacket)00183 {00184 <span class="comment">// switch on the packet type</span>00185 <span class="keywordflow">switch</span>(TsipPacket[0])00186 {00187 <span class="keywordflow">case</span> TSIPTYPE_GPSTIME: tsipProcessGPSTIME(TsipPacket); <span class="keywordflow">break</span>;00188 <span class="keywordflow">case</span> TSIPTYPE_POSFIX_XYZ_SP: tsipProcessPOSFIX_XYZ_SP(TsipPacket); <span class="keywordflow">break</span>;00189 <span class="keywordflow">case</span> TSIPTYPE_VELFIX_XYZ: tsipProcessVELFIX_XYZ(TsipPacket); <span class="keywordflow">break</span>;00190 00191 <span class="keywordflow">case</span> TSIPTYPE_POSFIX_LLA_SP: tsipProcessPOSFIX_LLA_SP(TsipPacket); <span class="keywordflow">break</span>;00192 <span class="keywordflow">case</span> TSIPTYPE_VELFIX_ENU: tsipProcessVELFIX_ENU(TsipPacket); <span class="keywordflow">break</span>;00193 00194 <span class="keywordflow">case</span> TSIPTYPE_RAWDATA: <span class="keywordflow">break</span>;00195 <span class="keywordflow">default</span>:00196 <span class="comment">//if(debug) rprintf("Unhandled TSIP packet type: 0x%x\r\n",TsipPacket[0]);</span>00197 <span class="keywordflow">break</span>;00198 }00199 }00200 00201 <span class="keywordflow">return</span> foundpacket;00202 }00203 00204 <span class="keywordtype">void</span> tsipProcessGPSTIME(u08* packet)00205 {00206 <span class="comment">// NOTE: check endian-ness if porting to processors other than the AVR</span>00207 GpsInfo.TimeOfWeek.b[3] = packet[1];00208 GpsInfo.TimeOfWeek.b[2] = packet[2];00209 GpsInfo.TimeOfWeek.b[1] = packet[3];00210 GpsInfo.TimeOfWeek.b[0] = packet[4];00211 00212 GpsInfo.WeekNum = ((u16)packet[5]<<8)|((u16)packet[6]);00213 00214 GpsInfo.UtcOffset.b[3] = packet[7];00215 GpsInfo.UtcOffset.b[2] = packet[8];00216 GpsInfo.UtcOffset.b[1] = packet[9];00217 GpsInfo.UtcOffset.b[0] = packet[10];00218 }00219 00220 <span class="keywordtype">void</span> tsipProcessPOSFIX_XYZ_SP(u08* packet)00221 {00222 <span class="comment">// NOTE: check endian-ness if porting to processors other than the AVR</span>00223 GpsInfo.PosECEF.x.b[3] = packet[1];00224 GpsInfo.PosECEF.x.b[2] = packet[2];00225 GpsInfo.PosECEF.x.b[1] = packet[3];00226 GpsInfo.PosECEF.x.b[0] = packet[4];00227 00228 GpsInfo.PosECEF.y.b[3] = packet[5];00229 GpsInfo.PosECEF.y.b[2] = packet[6];00230 GpsInfo.PosECEF.y.b[1] = packet[7];00231 GpsInfo.PosECEF.y.b[0] = packet[8];00232 00233 GpsInfo.PosECEF.z.b[3] = packet[9];00234 GpsInfo.PosECEF.z.b[2] = packet[10];00235 GpsInfo.PosECEF.z.b[1] = packet[11];00236 GpsInfo.PosECEF.z.b[0] = packet[12];00237 00238 GpsInfo.PosECEF.TimeOfFix.b[3] = packet[13];00239 GpsInfo.PosECEF.TimeOfFix.b[2] = packet[14];00240 GpsInfo.PosECEF.TimeOfFix.b[1] = packet[15];00241 GpsInfo.PosECEF.TimeOfFix.b[0] = packet[16];00242 00243 GpsInfo.PosECEF.updates++;00244 00245 <span class="comment">// GpsInfo.TimeOfFix_ECEF.f = *((float*)&packet[13]);</span>00246 }00247 00248 <span class="keywordtype">void</span> tsipProcessVELFIX_XYZ(u08* packet)00249 {00250 }00251 00252 <span class="keywordtype">void</span> tsipProcessPOSFIX_LLA_SP(u08* packet)00253 {00254 <span class="comment">// NOTE: check endian-ness if porting to processors other than the AVR</span>00255 GpsInfo.PosLLA.lat.b[3] = packet[1];00256 GpsInfo.PosLLA.lat.b[2] = packet[2];00257 GpsInfo.PosLLA.lat.b[1] = packet[3];00258 GpsInfo.PosLLA.lat.b[0] = packet[4];00259 00260 GpsInfo.PosLLA.lon.b[3] = packet[5];00261 GpsInfo.PosLLA.lon.b[2] = packet[6];00262 GpsInfo.PosLLA.lon.b[1] = packet[7];00263 GpsInfo.PosLLA.lon.b[0] = packet[8];00264 00265 GpsInfo.PosLLA.alt.b[3] = packet[9];00266 GpsInfo.PosLLA.alt.b[2] = packet[10];00267 GpsInfo.PosLLA.alt.b[1] = packet[11];00268 GpsInfo.PosLLA.alt.b[0] = packet[12];00269 00271 GpsInfo.PosLLA.TimeOfFix.b[2] = packet[18];00272 GpsInfo.PosLLA.TimeOfFix.b[1] = packet[18];00273 GpsInfo.PosLLA.TimeOfFix.b[0] = packet[20];00274 00275 GpsInfo.PosLLA.updates++;00276 }00277 00278 <span class="keywordtype">void</span> tsipProcessVELFIX_ENU(u08* packet)00279 {00280 <span class="comment">// NOTE: check endian-ness if porting to processors other than the AVR</span>00281 GpsInfo.VelENU.east.b[3] = packet[1];00282 GpsInfo.VelENU.east.b[2] = packet[2];00283 GpsInfo.VelENU.east.b[1] = packet[3];00284 GpsInfo.VelENU.east.b[0] = packet[4];00285 00286 GpsInfo.VelENU.north.b[3] = packet[5];00288 GpsInfo.VelENU.north.b[1] = packet[7];00289 GpsInfo.VelENU.north.b[0] = packet[8];00290 00291 GpsInfo.VelENU.up.b[3] = packet[9];00292 GpsInfo.VelENU.up.b[2] = packet[10];00293 GpsInfo.VelENU.up.b[1] = packet[11];00294 GpsInfo.VelENU.up.b[0] = packet[12];00295 00296 GpsInfo.VelENU.TimeOfFix.b[3] = packet[17];00297 GpsInfo.VelENU.TimeOfFix.b[2] = packet[18];00298 GpsInfo.VelENU.TimeOfFix.b[1] = packet[19];00299 GpsInfo.VelENU.TimeOfFix.b[0] = packet[20];00300 00301 GpsInfo.VelENU.updates++;00302 }00303 00304 <span class="keywordtype">void</span> tsipProcessRAWDATA(cBuffer* packet)00305 {00306 <span class="comment">/*</span>00307 <span class="comment"> char oft = 1;</span>00308 <span class="comment"> // process the data in TSIPdata</span>00309 <span class="comment"> unsigned char SVnum = TSIPdata[oft];</span>00310 <span class="comment"> unsigned __int32 SNR32 = (TSIPdata[oft+5] << 24) + (TSIPdata[oft+6] << 16) + (TSIPdata[oft+7] << 8) + (TSIPdata[oft+8]);</span>00311 <span class="comment"> unsigned __int32 codephase32 = (TSIPdata[oft+9] << 24) + (TSIPdata[oft+10] << 16) + (TSIPdata[oft+11] << 8) + (TSIPdata[oft+12]);</span>00312 <span class="comment"> unsigned __int32 doppler32 = (TSIPdata[oft+13] << 24) + (TSIPdata[oft+14] << 16) + (TSIPdata[oft+15] << 8) + (TSIPdata[oft+16]);</span>00313 <span class="comment"> </span>00314 <span class="comment"> unsigned __int64 meastimeH32 = (TSIPdata[oft+17] << 24) | (TSIPdata[oft+18] << 16) | (TSIPdata[oft+19] << 8) | (TSIPdata[oft+20]);</span>00315 <span class="comment"> unsigned __int64 meastimeL32 = (TSIPdata[oft+21] << 24) | (TSIPdata[oft+22] << 16) | (TSIPdata[oft+23] << 8) | (TSIPdata[oft+24]);</span>00316 <span class="comment"> unsigned __int64 meastime64 = (meastimeH32 << 32) | (meastimeL32);</span>00317 <span class="comment"> </span>00318 <span class="comment"> float SNR = *((float*) &SNR32);</span>00319 <span class="comment"> float codephase = *((float*) &codephase32);</span>00320 <span class="comment"> float doppler = *((float*) &doppler32);</span>00321 <span class="comment"> double meastime = *((double*) &meastime64);</span>00322 <span class="comment"> </span>00323 <span class="comment"> // output to screen</span>00324 <span class="comment"> printf("SV%2d SNR: %5.2f PH: %11.4f DOP: %11.4f TIME: %5.0I64f EPOCH: %7.2I64f\n",SVnum,SNR,codephase,doppler,meastime,meastime/1.5);</span>00325 <span class="comment"> //printf("SV%2d SNR: %5.2f PH: %10.4f DOP: %10.4f TIME: %I64x\n",SVnum,SNR,codephase,doppler,meastime64);</span>00326 <span class="comment"></span>00327 <span class="comment"> // output to file</span>00328 <span class="comment"> fprintf( logfile, "%2d %5.2f %11.4f %11.4f %5.0I64f %7.2I64f\n",SVnum,SNR,codephase,doppler,meastime,meastime/1.5);</span>00329 <span class="comment">*/</span>00330 }00331 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Oct 15 03:50:22 2004 for Procyon AVRlib by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.6 </small></address></body></html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -