6 #include "jorte/4all.h"
7 #include "jorte/jorte_protos_api.h"
9 int setRecvInfo(JNIEnv *env, const ORTERecvInfo *rinfo, jobject obj)
25 cls = findClass(env, "org.ocera.orte.types.RecvInfo");
29 printf(":!c: cls = NULL \n");
34 fid = (*env)->GetFieldID(env,cls,"status","B");
38 printf(":!c: fid = NULL \n");
43 printf(":c: rinfo.status = %d \n",
46 (*env)->SetByteField(env,
49 (jbyte) rinfo->status);
50 /////////////////////////////////////////////////
52 if(!setTopic(env,cls,obj,rinfo->topic))
55 printf(":!c: seTopic() failed! \n");
60 if(!setType(env,cls,obj,rinfo->type))
63 printf(":!c: seType() failed! \n");
67 /////////////////////////////////////////////////
68 // find cls - GUID_RTPS
69 cls_tmp = findClass(env, "org.ocera.orte.types.GUID_RTPS");
73 printf(":!c: cls_tmp = NULL \n");
77 // call object constructor
78 mid = (*env)->GetMethodID(env,
85 printf(":!c: constructor failed! \n");
90 obj_tmp = (*env)->NewObject(env,
93 (jlong)rinfo->senderGUID.hid,
94 (jlong)rinfo->senderGUID.aid,
95 (jlong)rinfo->senderGUID.oid);
99 printf(":!c: obj = NULL \n");
103 // set AppInfo's field
104 fid = (*env)->GetFieldID(env,
107 "Lorg/ocera/orte/types/GUID_RTPS;");
111 printf(":!c: fid = NULL \n");
116 printf(":c: rinfo.senderGUID: hid = %#"PRIx32", aid = %#"PRIx32", oid = %#"PRIx32" \n",
117 rinfo->senderGUID.hid,rinfo->senderGUID.aid,rinfo->senderGUID.oid);
119 (*env)->SetObjectField(env,
123 /////////////////////////////////////////////////
124 // find cls - NtpTime
125 cls_tmp = findClass(env, "org.ocera.orte.types.NtpTime");
129 printf(":!c: cls_tmp = NULL \n");
133 // call object constructor
134 mid = (*env)->GetMethodID(env,
141 printf(":!c: constructor failed! \n");
146 obj_tmp = (*env)->NewObject(env,
149 (jint)rinfo->localTimeReceived.seconds,
150 (jlong)rinfo->localTimeReceived.fraction);
154 printf(":!c: obj = NULL \n");
158 // set AppInfo's field
159 fid = (*env)->GetFieldID(env,
162 "Lorg/ocera/orte/types/NtpTime;");
166 printf(":!c: fid = NULL \n");
171 NtpTimeDisAssembToUs(sec, us, rinfo->localTimeReceived);
172 printf(":c: rinfo.NtpTime: %"PRId32".%"PRIu32" (sec = %"PRId32" fract = %"PRIu32") \n",
174 rinfo->localTimeReceived.seconds,rinfo->localTimeReceived.fraction);
176 (*env)->SetObjectField(env,
180 /////////////////////////////////////////////////
181 // find cls - NtpTime
183 cls_tmp = (*env)->FindClass(env, "org/ocera/orte/types/NtpTime");
187 printf(":!c: cls_tmp = NULL \n");
191 // call object constructor
192 mid = (*env)->GetMethodID(env,
199 printf(":!c: constructor failed! \n");
205 obj_tmp = (*env)->NewObject(env,
208 (jint)rinfo->remoteTimePublished.seconds,
209 (jlong)rinfo->remoteTimePublished.fraction);
213 printf(":!c: obj = NULL \n");
217 // set AppInfo's field
218 fid = (*env)->GetFieldID(env,
221 "Lorg/ocera/orte/types/NtpTime;");
225 printf(":!c: fid = NULL \n");
230 NtpTimeDisAssembToUs(sec, us, rinfo->remoteTimePublished);
231 printf(":c: rinfo.remoteTimePub: %"PRId32".%"PRIu32" (sec = %"PRId32" fract = %"PRIu32") \n",
233 rinfo->remoteTimePublished.seconds,rinfo->remoteTimePublished.fraction);
235 (*env)->SetObjectField(env,
239 /////////////////////////////////////////////////
240 // find cls - SequenceNumber
241 cls_tmp = findClass(env,"org.ocera.orte.types.SequenceNumber");
245 printf(":!c: cls_tmp = NULL \n");
249 // call object constructor
250 mid = (*env)->GetMethodID(env,
257 printf(":!c: constructor failed! # \n");
262 obj_tmp = (*env)->NewObject(env,
265 (jint)rinfo->sn.high,
266 (jlong)rinfo->sn.low);
270 printf(":!c: obj = NULL \n");
274 // set AppInfo's field
275 fid = (*env)->GetFieldID(env,
278 "Lorg/ocera/orte/types/SequenceNumber;");
282 printf(":!c: fid = NULL \n");
287 printf(":c: rinfo.sn: %"PRId64" (high = %"PRId32" low = %"PRId32") \n",
288 (((int64_t)rinfo->sn.high << 32) + rinfo->sn.low),rinfo->sn.high,rinfo->sn.low);
290 (*env)->SetObjectField(env,
294 /////////////////////////////////////////////////