From 2f2a32ed110b65cc8e50fdf52c1230eff5ea299c Mon Sep 17 00:00:00 2001
From: ipa-fxm <felix.messmer@ipa.fhg.de>
Date: Tue, 30 Sep 2014 12:24:38 +0000
Subject: [PATCH] simplify deserializeRT

---
 ur_driver/src/ur_driver/deserializeRT.py | 100 +++++++----------------
 1 file changed, 29 insertions(+), 71 deletions(-)

diff --git a/ur_driver/src/ur_driver/deserializeRT.py b/ur_driver/src/ur_driver/deserializeRT.py
index de35153..5fe97d7 100644
--- a/ur_driver/src/ur_driver/deserializeRT.py
+++ b/ur_driver/src/ur_driver/deserializeRT.py
@@ -26,75 +26,48 @@ class RobotStateRT(object):
         offset+=8
         
         #q_target: 6x double (6x 8byte)
-        all_values = []
-        for i in range(6):
-            value = struct.unpack_from("!d",buf, offset)[0]
-            offset+=8
-            all_values.append(value)
+        all_values = list(struct.unpack_from("!dddddd",buf, offset))
+        offset+=6*8
         rs.q_target = copy.deepcopy(all_values)
         
         #qd_target: 6x double (6x 8byte)
-        all_values = []
-        for i in range(6):
-            value = struct.unpack_from("!d",buf, offset)[0]
-            offset+=8
-            all_values.append(value)
+        all_values = list(struct.unpack_from("!dddddd",buf, offset))
+        offset+=6*8
         rs.qd_target = copy.deepcopy(all_values)
         
         #qdd_target: 6x double (6x 8byte)
-        all_values = []
-        for i in range(6):
-            value = struct.unpack_from("!d",buf, offset)[0]
-            offset+=8
-            all_values.append(value)
+        all_values = list(struct.unpack_from("!dddddd",buf, offset))
+        offset+=6*8
         rs.qdd_target = copy.deepcopy(all_values)
         
-        #i_target: 6x double (6x 8byte)
-        all_values = []
-        for i in range(6):
-            value = struct.unpack_from("!d",buf, offset)[0]
-            offset+=8
-            all_values.append(value)
+        #i_target: 6x double (6x 8byte) 
+        all_values = list(struct.unpack_from("!dddddd",buf, offset))
+        offset+=6*8
         rs.i_target = copy.deepcopy(all_values)
         
         #m_target: 6x double (6x 8byte)
-        all_values = []
-        for i in range(6):
-            value = struct.unpack_from("!d",buf, offset)[0]
-            offset+=8
-            all_values.append(value)
+        all_values = list(struct.unpack_from("!dddddd",buf, offset))
+        offset+=6*8
         rs.m_target = copy.deepcopy(all_values)
         
         #q_actual: 6x double (6x 8byte)
-        all_values = []
-        for i in range(6):
-            value = struct.unpack_from("!d",buf, offset)[0]
-            offset+=8
-            all_values.append(value)
+        all_values = list(struct.unpack_from("!dddddd",buf, offset))
+        offset+=6*8
         rs.q_actual = copy.deepcopy(all_values)
         
         #qd_actual: 6x double (6x 8byte)
-        all_values = []
-        for i in range(6):
-            value = struct.unpack_from("!d",buf, offset)[0]
-            offset+=8
-            all_values.append(value)
+        all_values = list(struct.unpack_from("!dddddd",buf, offset))
+        offset+=6*8
         rs.qd_actual = copy.deepcopy(all_values)
         
         #i_actual: 6x double (6x 8byte)
-        all_values = []
-        for i in range(6):
-            value = struct.unpack_from("!d",buf, offset)[0]
-            offset+=8
-            all_values.append(value)
+        all_values = list(struct.unpack_from("!dddddd",buf, offset))
+        offset+=6*8
         rs.i_actual = copy.deepcopy(all_values)
         
         #tool_acc_values: 3x double (3x 8byte)
-        all_values = []
-        for i in range(3):
-            value = struct.unpack_from("!d",buf, offset)[0]
-            offset+=8
-            all_values.append(value)
+        all_values = list(struct.unpack_from("!ddd",buf, offset))
+        offset+=3*8
         rs.tool_acc_values = copy.deepcopy(all_values)
         
         #unused: 15x double (15x 8byte)
@@ -102,27 +75,18 @@ class RobotStateRT(object):
         rs.unused = []
         
         #tcp_force: 6x double (6x 8byte)
-        all_values = []
-        for i in range(6):
-            value = struct.unpack_from("!d",buf, offset)[0]
-            offset+=8
-            all_values.append(value)
+        all_values = list(struct.unpack_from("!dddddd",buf, offset))
+        offset+=6*8
         rs.tcp_force = copy.deepcopy(all_values)
         
         #tool_vector: 6x double (6x 8byte)
-        all_values = []
-        for i in range(6):
-            value = struct.unpack_from("!d",buf, offset)[0]
-            offset+=8
-            all_values.append(value)
+        all_values = list(struct.unpack_from("!dddddd",buf, offset))
+        offset+=6*8
         rs.tool_vector = copy.deepcopy(all_values)
         
         #tcp_speed: 6x double (6x 8byte)
-        all_values = []
-        for i in range(6):
-            value = struct.unpack_from("!d",buf, offset)[0]
-            offset+=8
-            all_values.append(value)
+        all_values = list(struct.unpack_from("!dddddd",buf, offset))
+        offset+=6*8
         rs.tcp_speed = copy.deepcopy(all_values)
         
         #digital_input_bits: 1x double (1x 8byte) ?
@@ -130,11 +94,8 @@ class RobotStateRT(object):
         offset+=8
 
         #motor_temperatures: 6x double (6x 8byte)
-        all_values = []
-        for i in range(6):
-            value = struct.unpack_from("!d",buf, offset)[0]
-            offset+=8
-            all_values.append(value)
+        all_values = list(struct.unpack_from("!dddddd",buf, offset))
+        offset+=6*8
         rs.motor_temperatures = copy.deepcopy(all_values)
         
         #controller_timer: 1x double (1x 8byte)
@@ -150,11 +111,8 @@ class RobotStateRT(object):
         offset+=8
         
         #joint_mode: 6x double (6x 8byte)
-        all_values = []
-        for i in range(6):
-            value = struct.unpack_from("!d",buf, offset)[0]
-            offset+=8
-            all_values.append(value)
+        all_values = list(struct.unpack_from("!dddddd",buf, offset))
+        offset+=6*8
         rs.joint_modes = copy.deepcopy(all_values)
 
         return rs
-- 
GitLab