6 #include "jorte/4all.h"
7 #include "jorte/jorte_protos_api.h"
9 int setRecvInfo(JNIEnv *env, const ORTERecvInfo *rinfo, jobject obj)
27 cls = findClass(env, "org.ocera.orte.types.RecvInfo");
31 printf(":!c: cls = NULL \n");
36 fid = (*env)->GetFieldID(env,cls,"status","B");
40 printf(":!c: fid = NULL \n");
45 printf(":c: rinfo.status = %d \n",
48 (*env)->SetByteField(env,
51 (jbyte) rinfo->status);
52 /////////////////////////////////////////////////
54 if(!setTopic(env,cls,obj,rinfo->topic))
57 printf(":!c: seTopic() failed! \n");
62 if(!setType(env,cls,obj,rinfo->type))
65 printf(":!c: seType() failed! \n");
69 /////////////////////////////////////////////////
70 // find cls - GUID_RTPS
71 cls_tmp = findClass(env, "org.ocera.orte.types.GUID_RTPS");
75 printf(":!c: cls_tmp = NULL \n");
79 // call object constructor
80 mid = (*env)->GetMethodID(env,
87 printf(":!c: constructor failed! \n");
92 obj_tmp = (*env)->NewObject(env,
95 (jlong)rinfo->senderGUID.hid,
96 (jlong)rinfo->senderGUID.aid,
97 (jlong)rinfo->senderGUID.oid);
101 printf(":!c: obj = NULL \n");
105 // set AppInfo's field
106 fid = (*env)->GetFieldID(env,
109 "Lorg/ocera/orte/types/GUID_RTPS;");
113 printf(":!c: fid = NULL \n");
118 printf(":c: rinfo.senderGUID: hid = %#"PRIx32", aid = %#"PRIx32", oid = %#"PRIx32" \n",
119 rinfo->senderGUID.hid,rinfo->senderGUID.aid,rinfo->senderGUID.oid);
121 (*env)->SetObjectField(env,
125 /////////////////////////////////////////////////
126 // find cls - NtpTime
127 cls_tmp = findClass(env, "org.ocera.orte.types.NtpTime");
131 printf(":!c: cls_tmp = NULL \n");
135 // call object constructor
136 mid = (*env)->GetMethodID(env,
143 printf(":!c: constructor failed! \n");
148 obj_tmp = (*env)->NewObject(env,
151 (jint)rinfo->localTimeReceived.seconds,
152 (jlong)rinfo->localTimeReceived.fraction);
156 printf(":!c: obj = NULL \n");
160 // set AppInfo's field
161 fid = (*env)->GetFieldID(env,
164 "Lorg/ocera/orte/types/NtpTime;");
168 printf(":!c: fid = NULL \n");
173 NtpTimeDisAssembToUs(sec, us, rinfo->localTimeReceived);
174 printf(":c: rinfo.NtpTime: %"PRId32".%"PRIu32" (sec = %"PRId32" fract = %"PRIu32") \n",
176 rinfo->localTimeReceived.seconds,rinfo->localTimeReceived.fraction);
178 (*env)->SetObjectField(env,
182 /////////////////////////////////////////////////
183 // find cls - NtpTime
185 cls_tmp = (*env)->FindClass(env, "org/ocera/orte/types/NtpTime");
189 printf(":!c: cls_tmp = NULL \n");
193 // call object constructor
194 mid = (*env)->GetMethodID(env,
201 printf(":!c: constructor failed! \n");
207 obj_tmp = (*env)->NewObject(env,
210 (jint)rinfo->remoteTimePublished.seconds,
211 (jlong)rinfo->remoteTimePublished.fraction);
215 printf(":!c: obj = NULL \n");
219 // set AppInfo's field
220 fid = (*env)->GetFieldID(env,
223 "Lorg/ocera/orte/types/NtpTime;");
227 printf(":!c: fid = NULL \n");
232 NtpTimeDisAssembToUs(sec, us, rinfo->remoteTimePublished);
233 printf(":c: rinfo.remoteTimePub: %"PRId32".%"PRIu32" (sec = %"PRId32" fract = %"PRIu32") \n",
235 rinfo->remoteTimePublished.seconds,rinfo->remoteTimePublished.fraction);
237 (*env)->SetObjectField(env,
241 /////////////////////////////////////////////////
242 // find cls - SequenceNumber
243 cls_tmp = findClass(env,"org.ocera.orte.types.SequenceNumber");
247 printf(":!c: cls_tmp = NULL \n");
251 // call object constructor
252 mid = (*env)->GetMethodID(env,
259 printf(":!c: constructor failed! # \n");
264 obj_tmp = (*env)->NewObject(env,
267 (jint)rinfo->sn.high,
268 (jlong)rinfo->sn.low);
272 printf(":!c: obj = NULL \n");
276 // set AppInfo's field
277 fid = (*env)->GetFieldID(env,
280 "Lorg/ocera/orte/types/SequenceNumber;");
284 printf(":!c: fid = NULL \n");
289 printf(":c: rinfo.sn: %"PRId64" (high = %"PRId32" low = %"PRId32") \n",
290 (((int64_t)rinfo->sn.high << 32) + rinfo->sn.low),rinfo->sn.high,rinfo->sn.low);
292 (*env)->SetObjectField(env,
296 /////////////////////////////////////////////////