changeset 595:e0986347b103

add xdr test routine...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 04 Nov 2009 22:27:22 +0900
parents 20166ecb1a78
children cfeca966f571
files Renderer/Test/dynamic_create.cc Renderer/Test/send_linda.cc old/tmp/test.c
diffstat 3 files changed, 58 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/Renderer/Test/dynamic_create.cc	Wed Nov 04 15:57:23 2009 +0900
+++ b/Renderer/Test/dynamic_create.cc	Wed Nov 04 22:27:22 2009 +0900
@@ -85,16 +85,16 @@
 {
 	// LindaServerから座標データを取得してオブジェクトに反映させる。
 //	static int seq = 0;
-	unsigned char *reply;
+        float *reply;
 
 //	if (seq == 0)
 //		seq = psx_wait_rd(sgroot->tid, node->id * 10 + 1);
-	
-	reply = psx_reply(node->seq);
+        unsigned char reply = psx_reply(node->seq);
 	if (reply != NULL) {
 		float *data = (float *)(reply + LINDA_HEADER_SIZE);		
+                // ntoh_float(&data[0]); ntoh_float(&data[1]);
 		for (int i = 0; i < 3; i++) {
-			node->xyz[i] = ntohl(data[i]);
+			node->xyz[i] = data[i];
 		}
 		node->seq = psx_wait_rd(sgroot->tid, node->id * 10 + 1);
 	}
--- a/Renderer/Test/send_linda.cc	Wed Nov 04 15:57:23 2009 +0900
+++ b/Renderer/Test/send_linda.cc	Wed Nov 04 22:27:22 2009 +0900
@@ -20,21 +20,22 @@
 send_position(SceneGraphPtr node)
 {
 	char *data;
-	char send_data[SEND_DATA_SIZE]; // xyz[3] and angle[3]
+	float send_data[6]; // xyz[3] and angle[3]
 	int tapleid = node->id * 10 + 1;
 	int fd = *(int*)node->propertyptr;
     int seq;
 	int i;
 	
 	for (i = 0; i < 3; i ++) {
-		((float *)send_data)[i] = htonl(node->xyz[i]);
-		((float *)send_data)[i+3] = htonl(node->angle[i]);
+		send_data[i]   = node->xyz[i];
+		send_data[i+3] = node->angle[i];
 	}
     seq = psx_in(fd, tapleid);
 	do {
 		psx_sync_n();
 		data = (char *)psx_reply(seq);
 	} while (data == NULL);
+        //   hton_float(&send_data[0]); hton_float(&send_data[1]);
 	psx_out(fd, tapleid, (unsigned char *)send_data, SEND_DATA_SIZE);
 	psx_sync_n();
     psx_free(data);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/old/tmp/test.c	Wed Nov 04 22:27:22 2009 +0900
@@ -0,0 +1,50 @@
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+
+#define FALSE 0
+#define TRUE 1
+typedef int bool_t;
+typedef int enum_t;
+
+#include <rpc/xdr.h>
+
+#define CHUNK 1024
+
+
+int
+main()
+{
+      XDR xdrs;
+      double dp[6];
+
+      int size = CHUNK;
+      char *addr = (char*)malloc(size);
+      int i;
+     
+      double d = 0.1; 
+      xdrmem_create(&xdrs, addr, size, XDR_ENCODE);
+
+      for (i = 0; i< 6; i++)  {
+          dp[i] = d * i;
+	  xdr_double(&xdrs, &dp[i]);
+      }
+
+      for (i = 0; i< 6; i++)  dp[i] = 0.0;
+
+      xdrmem_create(&xdrs, addr, size, XDR_DECODE);
+
+      for (i = 0; i< 6; i++)  {
+	  xdr_double(&xdrs, &dp[i]);
+	  printf("%g ",dp[i]);
+      }
+      printf("\n");
+
+
+    
+
+}
+
+