Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.stsci.edu/~sontag/spicedocs/cspice/pcpool_c.html
Дата изменения: Sat Dec 17 06:09:26 2005 Дата индексирования: Mon Apr 11 00:06:11 2016 Кодировка: |
This entry point provides toolkit programmers a method for programmatically inserting character data into the kernel pool.
None.
VARIABLE I/O DESCRIPTION -------- --- -------------------------------------------------- name I The kernel pool name to associate with cvals. n I The number of values to insert. lenvals I The lengths of the strings in the array cvals. cvals I An array of strings to insert into the kernel pool.
name is the name of the kernel pool variable to associate with the values supplied in the array cvals. n is the number of values to insert into the kernel pool. lenvals is the length of the strings in the array cvals, including the null terminators. cvals is an array of strings to insert into the kernel pool. cvals should be declared as follows: char cvals[n][lenvals];
None.
None.
This entry point provides a programmatic interface for inserting character data into the SPICE kernel pool without reading an external file.
The following example program shows how a topocentric frame for a point on the surface of the earth may be defined at run time using pcpool_c, pdpool_c, and pipool_c. In this example, the surface point is associated with the body code 300000. To facilitate testing, the location of the surface point coincides with that of the DSN station DSS-12; the reference frame MYTOPO defined here coincides with the reference frame DSS-12_TOPO. #include <stdio.h> #include "SpiceUsr.h" int main() { /. The first angle is the negative of the longitude of the surface point; the second angle is the negative of the point's colatitude. ./ SpiceDouble angles [3] = { -243.1945102442646, -54.7000629043147, 180.0 }; SpiceDouble et = 0.0; SpiceDouble rmat [3][3]; SpiceInt axes [3] = { 3, 2, 3 }; SpiceInt center = 300000; SpiceInt frclass = 4; SpiceInt frclsid = 1500000; SpiceInt frcode = 1500000; /. Define the MYTOPO reference frame. Note that the third argument in the pcpool_c calls is the length of the final string argument, including the terminating null character. ./ pipool_c ( "FRAME_MYTOPO", 1, &frcode ); pcpool_c ( "FRAME_1500000_NAME", 1, 7, "MYTOPO" ); pipool_c ( "FRAME_1500000_CLASS", 1, &frclass ); pipool_c ( "FRAME_1500000_CLASS_ID", 1, &frclsid ); pipool_c ( "FRAME_1500000_CENTER", 1, ¢er ); pcpool_c ( "OBJECT_300000_FRAME", 1, 7, "MYTOPO" ); pcpool_c ( "TKFRAME_MYTOPO_RELATIVE", 1, 7, "ITRF93" ); pcpool_c ( "TKFRAME_MYTOPO_SPEC", 1, 7, "ANGLES" ); pcpool_c ( "TKFRAME_MYTOPO_UNITS", 1, 8, "DEGREES" ); pipool_c ( "TKFRAME_MYTOPO_AXES", 3, axes ); pdpool_c ( "TKFRAME_MYTOPO_ANGLES", 3, angles ); /. Load a high precision binary earth PCK. Also load a topocentric frame kernel for DSN stations. The file names shown here are simply examples; users should replace these with the names of appropriate kernels. ./ furnsh_c ( "earth_000101_060207_051116.bpc" ); furnsh_c ( "earth_topo_050714.tf" ); /. Look up transformation from DSS-12_TOPO frame to MYTOPO frame. This transformation should differ by round-off error from the identity matrix. ./ pxform_c ( "DSS-12_TOPO", "MYTOPO", et, rmat ); printf ( "\n" "DSS-12_TOPO to MYTOPO transformation at " "et %23.16e = \n" "\n" " %25.16f %25.16f %25.16f\n" " %25.16f %25.16f %25.16f\n" " %25.16f %25.16f %25.16f\n", et, rmat[0][0], rmat[0][1], rmat[0][2], rmat[1][0], rmat[1][1], rmat[1][2], rmat[2][0], rmat[2][1], rmat[2][2] ); return ( 0 ); }
None.
1) If name is already present in the kernel pool and there is sufficient room to hold all values supplied in values, the old values associated with name will be overwritten. 2) If there is not sufficient room to insert a new variable into the kernel pool and name is not already present in the kernel pool, the error SPICE(KERNELPOOLFULL) is signaled by a routine in the call tree to this routine. 3) If there is not sufficient room to insert the values associated with name, the error SPICE(NOMOREROOM) will be signaled. 4) If either input string pointer is null, the error SPICE(NULLPOINTER) will be signaled. 5) If the input string name has length zero, the error SPICE(EMPTYSTRING) will be signaled. 6) If the input cvals string length is less than 2, the error SPICE(STRINGTOOSHORT) will be signaled.
None.
N.J. Bachman (JPL) W.L. Taber (JPL)
None.
-CSPICE Version 1.3.1, 17-NOV-2005 (NJB) Replaced code fragment in Examples section of header with smaller, complete program. -CSPICE Version 1.3.0, 12-JUL-2002 (NJB) Call to C2F_CreateStrArr_Sig replaced with call to C2F_MapStrArr. -CSPICE Version 1.2.0, 28-AUG-2001 (NJB) Const-qualified input array cvals. -CSPICE Version 1.1.0, 14-FEB-2000 (NJB) Calls to C2F_CreateStrArr replaced with calls to error-signaling version of this routine: C2F_CreateStrArr_Sig. -CSPICE Version 1.0.0, 18-JUN-1999 (NJB) (WLT)
Set the value of a character kernel pool variable