asterism 0.0.0 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +21 -0
  3. data/NOTICE +27 -0
  4. data/README.md +405 -3
  5. data/data/msgs/LICENSE-Apache-2.0.txt +202 -0
  6. data/data/msgs/NOTICE +17 -0
  7. data/data/msgs/builtin_interfaces/msg/Duration.rb +33 -0
  8. data/data/msgs/builtin_interfaces/msg/Time.rb +33 -0
  9. data/data/msgs/example_interfaces/srv/AddTwoInts.rb +64 -0
  10. data/data/msgs/geometry_msgs/msg/Accel.rb +35 -0
  11. data/data/msgs/geometry_msgs/msg/AccelStamped.rb +36 -0
  12. data/data/msgs/geometry_msgs/msg/Point.rb +36 -0
  13. data/data/msgs/geometry_msgs/msg/Point32.rb +36 -0
  14. data/data/msgs/geometry_msgs/msg/PointStamped.rb +36 -0
  15. data/data/msgs/geometry_msgs/msg/Pose.rb +36 -0
  16. data/data/msgs/geometry_msgs/msg/Pose2D.rb +36 -0
  17. data/data/msgs/geometry_msgs/msg/PoseStamped.rb +36 -0
  18. data/data/msgs/geometry_msgs/msg/Quaternion.rb +39 -0
  19. data/data/msgs/geometry_msgs/msg/QuaternionStamped.rb +36 -0
  20. data/data/msgs/geometry_msgs/msg/Transform.rb +36 -0
  21. data/data/msgs/geometry_msgs/msg/TransformStamped.rb +39 -0
  22. data/data/msgs/geometry_msgs/msg/Twist.rb +35 -0
  23. data/data/msgs/geometry_msgs/msg/TwistStamped.rb +36 -0
  24. data/data/msgs/geometry_msgs/msg/Vector3.rb +36 -0
  25. data/data/msgs/geometry_msgs/msg/Vector3Stamped.rb +36 -0
  26. data/data/msgs/geometry_msgs/msg/Wrench.rb +35 -0
  27. data/data/msgs/geometry_msgs/msg/WrenchStamped.rb +36 -0
  28. data/data/msgs/sensor_msgs/msg/BatteryState.rb +100 -0
  29. data/data/msgs/sensor_msgs/msg/FluidPressure.rb +38 -0
  30. data/data/msgs/sensor_msgs/msg/Illuminance.rb +38 -0
  31. data/data/msgs/sensor_msgs/msg/Imu.rb +52 -0
  32. data/data/msgs/sensor_msgs/msg/JointState.rb +44 -0
  33. data/data/msgs/sensor_msgs/msg/MagneticField.rb +39 -0
  34. data/data/msgs/sensor_msgs/msg/NavSatFix.rb +55 -0
  35. data/data/msgs/sensor_msgs/msg/NavSatStatus.rb +43 -0
  36. data/data/msgs/sensor_msgs/msg/Range.rb +52 -0
  37. data/data/msgs/sensor_msgs/msg/RelativeHumidity.rb +38 -0
  38. data/data/msgs/sensor_msgs/msg/Temperature.rb +38 -0
  39. data/data/msgs/std_msgs/msg/Bool.rb +30 -0
  40. data/data/msgs/std_msgs/msg/Byte.rb +30 -0
  41. data/data/msgs/std_msgs/msg/ByteMultiArray.rb +35 -0
  42. data/data/msgs/std_msgs/msg/Char.rb +30 -0
  43. data/data/msgs/std_msgs/msg/ColorRGBA.rb +39 -0
  44. data/data/msgs/std_msgs/msg/Empty.rb +26 -0
  45. data/data/msgs/std_msgs/msg/Float32.rb +30 -0
  46. data/data/msgs/std_msgs/msg/Float32MultiArray.rb +35 -0
  47. data/data/msgs/std_msgs/msg/Float64.rb +30 -0
  48. data/data/msgs/std_msgs/msg/Float64MultiArray.rb +35 -0
  49. data/data/msgs/std_msgs/msg/Header.rb +35 -0
  50. data/data/msgs/std_msgs/msg/Int16.rb +30 -0
  51. data/data/msgs/std_msgs/msg/Int16MultiArray.rb +35 -0
  52. data/data/msgs/std_msgs/msg/Int32.rb +30 -0
  53. data/data/msgs/std_msgs/msg/Int32MultiArray.rb +35 -0
  54. data/data/msgs/std_msgs/msg/Int64.rb +30 -0
  55. data/data/msgs/std_msgs/msg/Int64MultiArray.rb +35 -0
  56. data/data/msgs/std_msgs/msg/Int8.rb +30 -0
  57. data/data/msgs/std_msgs/msg/Int8MultiArray.rb +35 -0
  58. data/data/msgs/std_msgs/msg/MultiArrayDimension.rb +36 -0
  59. data/data/msgs/std_msgs/msg/MultiArrayLayout.rb +35 -0
  60. data/data/msgs/std_msgs/msg/String.rb +30 -0
  61. data/data/msgs/std_msgs/msg/UInt16.rb +30 -0
  62. data/data/msgs/std_msgs/msg/UInt16MultiArray.rb +35 -0
  63. data/data/msgs/std_msgs/msg/UInt32.rb +30 -0
  64. data/data/msgs/std_msgs/msg/UInt32MultiArray.rb +35 -0
  65. data/data/msgs/std_msgs/msg/UInt64.rb +30 -0
  66. data/data/msgs/std_msgs/msg/UInt64MultiArray.rb +35 -0
  67. data/data/msgs/std_msgs/msg/UInt8.rb +30 -0
  68. data/data/msgs/std_msgs/msg/UInt8MultiArray.rb +35 -0
  69. data/lib/asterism/cruby.rb +24 -0
  70. data/lib/asterism/version.rb +5 -0
  71. data/lib/asterism.rb +17 -4
  72. data/mrblib/asterism.rb +545 -0
  73. data/mrblib/cdr.rb +512 -0
  74. data/mrblib/future.rb +83 -0
  75. data/mrblib/proxy.rb +97 -0
  76. data/mrblib/ros.rb +691 -0
  77. data/tools/asterism_msggen.rb +826 -0
  78. metadata +118 -9
@@ -0,0 +1,35 @@
1
+ # std_msgs/msg/Int16MultiArray (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # Int16MultiArray.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ ::Asterism::ROS.require_type("std_msgs/msg/MultiArrayLayout")
7
+
8
+ module ::Asterism::ROS::StdMsgs
9
+ end
10
+
11
+ class ::Asterism::ROS::StdMsgs::Int16MultiArray < ::Asterism::ROS::Message
12
+ ROS_NAME = "std_msgs/msg/Int16MultiArray"
13
+ TYPE_NAME = "std_msgs::msg::dds_::Int16MultiArray_"
14
+ TYPE_HASH = "RIHS01_b58810e8e5b90fb19a5062469eb8409f5ab11a446d60de7157a1457e52a076ce"
15
+ FIELDS = [:layout, :data]
16
+
17
+ attr_accessor :layout, :data
18
+
19
+ def initialize(layout: nil, data: nil)
20
+ @layout = ::Asterism::ROS::StdMsgs::MultiArrayLayout.from(layout)
21
+ @data = data.nil? ? [] : data
22
+ end
23
+
24
+ def self.write(w, m)
25
+ ::Asterism::ROS::StdMsgs::MultiArrayLayout.write(w, ::Asterism::ROS::StdMsgs::MultiArrayLayout.from(m.layout))
26
+ w.array(:int16, m.data, nil, nil)
27
+ end
28
+
29
+ def self.read(r)
30
+ m = new
31
+ m.layout = ::Asterism::ROS::StdMsgs::MultiArrayLayout.read(r)
32
+ m.data = r.array(:int16, nil)
33
+ m
34
+ end
35
+ end
@@ -0,0 +1,30 @@
1
+ # std_msgs/msg/Int32 (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # Int32.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ module ::Asterism::ROS::StdMsgs
7
+ end
8
+
9
+ class ::Asterism::ROS::StdMsgs::Int32 < ::Asterism::ROS::Message
10
+ ROS_NAME = "std_msgs/msg/Int32"
11
+ TYPE_NAME = "std_msgs::msg::dds_::Int32_"
12
+ TYPE_HASH = "RIHS01_b6578ded3c58c626cfe8d1a6fb6e04f706f97e9f03d2727c9ff4e74b1cef0deb"
13
+ FIELDS = [:data]
14
+
15
+ attr_accessor :data
16
+
17
+ def initialize(data: nil)
18
+ @data = data.nil? ? 0 : data
19
+ end
20
+
21
+ def self.write(w, m)
22
+ w.int32(m.data)
23
+ end
24
+
25
+ def self.read(r)
26
+ m = new
27
+ m.data = r.int32
28
+ m
29
+ end
30
+ end
@@ -0,0 +1,35 @@
1
+ # std_msgs/msg/Int32MultiArray (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # Int32MultiArray.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ ::Asterism::ROS.require_type("std_msgs/msg/MultiArrayLayout")
7
+
8
+ module ::Asterism::ROS::StdMsgs
9
+ end
10
+
11
+ class ::Asterism::ROS::StdMsgs::Int32MultiArray < ::Asterism::ROS::Message
12
+ ROS_NAME = "std_msgs/msg/Int32MultiArray"
13
+ TYPE_NAME = "std_msgs::msg::dds_::Int32MultiArray_"
14
+ TYPE_HASH = "RIHS01_84a7346323525d1b4dfca899df3820f245e54009dac5a6b69217d14fdefd1701"
15
+ FIELDS = [:layout, :data]
16
+
17
+ attr_accessor :layout, :data
18
+
19
+ def initialize(layout: nil, data: nil)
20
+ @layout = ::Asterism::ROS::StdMsgs::MultiArrayLayout.from(layout)
21
+ @data = data.nil? ? [] : data
22
+ end
23
+
24
+ def self.write(w, m)
25
+ ::Asterism::ROS::StdMsgs::MultiArrayLayout.write(w, ::Asterism::ROS::StdMsgs::MultiArrayLayout.from(m.layout))
26
+ w.array(:int32, m.data, nil, nil)
27
+ end
28
+
29
+ def self.read(r)
30
+ m = new
31
+ m.layout = ::Asterism::ROS::StdMsgs::MultiArrayLayout.read(r)
32
+ m.data = r.array(:int32, nil)
33
+ m
34
+ end
35
+ end
@@ -0,0 +1,30 @@
1
+ # std_msgs/msg/Int64 (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # Int64.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ module ::Asterism::ROS::StdMsgs
7
+ end
8
+
9
+ class ::Asterism::ROS::StdMsgs::Int64 < ::Asterism::ROS::Message
10
+ ROS_NAME = "std_msgs/msg/Int64"
11
+ TYPE_NAME = "std_msgs::msg::dds_::Int64_"
12
+ TYPE_HASH = "RIHS01_8cd1048c2f186b6bd9a92472dc1ce51723c0833a221e2b7aecfff111774f4b49"
13
+ FIELDS = [:data]
14
+
15
+ attr_accessor :data
16
+
17
+ def initialize(data: nil)
18
+ @data = data.nil? ? 0 : data
19
+ end
20
+
21
+ def self.write(w, m)
22
+ w.int64(m.data)
23
+ end
24
+
25
+ def self.read(r)
26
+ m = new
27
+ m.data = r.int64
28
+ m
29
+ end
30
+ end
@@ -0,0 +1,35 @@
1
+ # std_msgs/msg/Int64MultiArray (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # Int64MultiArray.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ ::Asterism::ROS.require_type("std_msgs/msg/MultiArrayLayout")
7
+
8
+ module ::Asterism::ROS::StdMsgs
9
+ end
10
+
11
+ class ::Asterism::ROS::StdMsgs::Int64MultiArray < ::Asterism::ROS::Message
12
+ ROS_NAME = "std_msgs/msg/Int64MultiArray"
13
+ TYPE_NAME = "std_msgs::msg::dds_::Int64MultiArray_"
14
+ TYPE_HASH = "RIHS01_e60f9fe34d697f0939ad49d33158693c1277fbac0e2f04b7c2995dc21c89b422"
15
+ FIELDS = [:layout, :data]
16
+
17
+ attr_accessor :layout, :data
18
+
19
+ def initialize(layout: nil, data: nil)
20
+ @layout = ::Asterism::ROS::StdMsgs::MultiArrayLayout.from(layout)
21
+ @data = data.nil? ? [] : data
22
+ end
23
+
24
+ def self.write(w, m)
25
+ ::Asterism::ROS::StdMsgs::MultiArrayLayout.write(w, ::Asterism::ROS::StdMsgs::MultiArrayLayout.from(m.layout))
26
+ w.array(:int64, m.data, nil, nil)
27
+ end
28
+
29
+ def self.read(r)
30
+ m = new
31
+ m.layout = ::Asterism::ROS::StdMsgs::MultiArrayLayout.read(r)
32
+ m.data = r.array(:int64, nil)
33
+ m
34
+ end
35
+ end
@@ -0,0 +1,30 @@
1
+ # std_msgs/msg/Int8 (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # Int8.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ module ::Asterism::ROS::StdMsgs
7
+ end
8
+
9
+ class ::Asterism::ROS::StdMsgs::Int8 < ::Asterism::ROS::Message
10
+ ROS_NAME = "std_msgs/msg/Int8"
11
+ TYPE_NAME = "std_msgs::msg::dds_::Int8_"
12
+ TYPE_HASH = "RIHS01_26525065a403d972cb672f0777e333f0c799ad444ae5fcd79e43d1e73bd0f440"
13
+ FIELDS = [:data]
14
+
15
+ attr_accessor :data
16
+
17
+ def initialize(data: nil)
18
+ @data = data.nil? ? 0 : data
19
+ end
20
+
21
+ def self.write(w, m)
22
+ w.int8(m.data)
23
+ end
24
+
25
+ def self.read(r)
26
+ m = new
27
+ m.data = r.int8
28
+ m
29
+ end
30
+ end
@@ -0,0 +1,35 @@
1
+ # std_msgs/msg/Int8MultiArray (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # Int8MultiArray.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ ::Asterism::ROS.require_type("std_msgs/msg/MultiArrayLayout")
7
+
8
+ module ::Asterism::ROS::StdMsgs
9
+ end
10
+
11
+ class ::Asterism::ROS::StdMsgs::Int8MultiArray < ::Asterism::ROS::Message
12
+ ROS_NAME = "std_msgs/msg/Int8MultiArray"
13
+ TYPE_NAME = "std_msgs::msg::dds_::Int8MultiArray_"
14
+ TYPE_HASH = "RIHS01_f21998d4b492abd63330765d75d5831238d400740386f651f13a872a4d2188db"
15
+ FIELDS = [:layout, :data]
16
+
17
+ attr_accessor :layout, :data
18
+
19
+ def initialize(layout: nil, data: nil)
20
+ @layout = ::Asterism::ROS::StdMsgs::MultiArrayLayout.from(layout)
21
+ @data = data.nil? ? [] : data
22
+ end
23
+
24
+ def self.write(w, m)
25
+ ::Asterism::ROS::StdMsgs::MultiArrayLayout.write(w, ::Asterism::ROS::StdMsgs::MultiArrayLayout.from(m.layout))
26
+ w.array(:int8, m.data, nil, nil)
27
+ end
28
+
29
+ def self.read(r)
30
+ m = new
31
+ m.layout = ::Asterism::ROS::StdMsgs::MultiArrayLayout.read(r)
32
+ m.data = r.array(:int8, nil)
33
+ m
34
+ end
35
+ end
@@ -0,0 +1,36 @@
1
+ # std_msgs/msg/MultiArrayDimension (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # MultiArrayDimension.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ module ::Asterism::ROS::StdMsgs
7
+ end
8
+
9
+ class ::Asterism::ROS::StdMsgs::MultiArrayDimension < ::Asterism::ROS::Message
10
+ ROS_NAME = "std_msgs/msg/MultiArrayDimension"
11
+ TYPE_NAME = "std_msgs::msg::dds_::MultiArrayDimension_"
12
+ TYPE_HASH = "RIHS01_5e773a60a4c7fc8a54985f307c7837aa2994252a126c301957a24e31282c9cbe"
13
+ FIELDS = [:label, :size, :stride]
14
+
15
+ attr_accessor :label, :size, :stride
16
+
17
+ def initialize(label: nil, size: nil, stride: nil)
18
+ @label = label.nil? ? "" : label
19
+ @size = size.nil? ? 0 : size
20
+ @stride = stride.nil? ? 0 : stride
21
+ end
22
+
23
+ def self.write(w, m)
24
+ w.string(m.label)
25
+ w.uint32(m.size)
26
+ w.uint32(m.stride)
27
+ end
28
+
29
+ def self.read(r)
30
+ m = new
31
+ m.label = r.string
32
+ m.size = r.uint32
33
+ m.stride = r.uint32
34
+ m
35
+ end
36
+ end
@@ -0,0 +1,35 @@
1
+ # std_msgs/msg/MultiArrayLayout (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # MultiArrayLayout.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ ::Asterism::ROS.require_type("std_msgs/msg/MultiArrayDimension")
7
+
8
+ module ::Asterism::ROS::StdMsgs
9
+ end
10
+
11
+ class ::Asterism::ROS::StdMsgs::MultiArrayLayout < ::Asterism::ROS::Message
12
+ ROS_NAME = "std_msgs/msg/MultiArrayLayout"
13
+ TYPE_NAME = "std_msgs::msg::dds_::MultiArrayLayout_"
14
+ TYPE_HASH = "RIHS01_4c66e6f78e740ac103a94cf63259f968e48c617e7699e829b63c21a5cb50dac6"
15
+ FIELDS = [:dim, :data_offset]
16
+
17
+ attr_accessor :dim, :data_offset
18
+
19
+ def initialize(dim: nil, data_offset: nil)
20
+ @dim = dim.nil? ? [] : dim.map { |e| ::Asterism::ROS::StdMsgs::MultiArrayDimension.from(e) }
21
+ @data_offset = data_offset.nil? ? 0 : data_offset
22
+ end
23
+
24
+ def self.write(w, m)
25
+ w.structs(::Asterism::ROS::StdMsgs::MultiArrayDimension, m.dim, nil, nil)
26
+ w.uint32(m.data_offset)
27
+ end
28
+
29
+ def self.read(r)
30
+ m = new
31
+ m.dim = r.structs(::Asterism::ROS::StdMsgs::MultiArrayDimension, nil)
32
+ m.data_offset = r.uint32
33
+ m
34
+ end
35
+ end
@@ -0,0 +1,30 @@
1
+ # std_msgs/msg/String (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # String.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ module ::Asterism::ROS::StdMsgs
7
+ end
8
+
9
+ class ::Asterism::ROS::StdMsgs::String < ::Asterism::ROS::Message
10
+ ROS_NAME = "std_msgs/msg/String"
11
+ TYPE_NAME = "std_msgs::msg::dds_::String_"
12
+ TYPE_HASH = "RIHS01_df668c740482bbd48fb39d76a70dfd4bd59db1288021743503259e948f6b1a18"
13
+ FIELDS = [:data]
14
+
15
+ attr_accessor :data
16
+
17
+ def initialize(data: nil)
18
+ @data = data.nil? ? "" : data
19
+ end
20
+
21
+ def self.write(w, m)
22
+ w.string(m.data)
23
+ end
24
+
25
+ def self.read(r)
26
+ m = new
27
+ m.data = r.string
28
+ m
29
+ end
30
+ end
@@ -0,0 +1,30 @@
1
+ # std_msgs/msg/UInt16 (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # UInt16.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ module ::Asterism::ROS::StdMsgs
7
+ end
8
+
9
+ class ::Asterism::ROS::StdMsgs::UInt16 < ::Asterism::ROS::Message
10
+ ROS_NAME = "std_msgs/msg/UInt16"
11
+ TYPE_NAME = "std_msgs::msg::dds_::UInt16_"
12
+ TYPE_HASH = "RIHS01_08a406e4b022bc22e907f985d6a9e9dd1d4fbecae573549cf49350113e7757b1"
13
+ FIELDS = [:data]
14
+
15
+ attr_accessor :data
16
+
17
+ def initialize(data: nil)
18
+ @data = data.nil? ? 0 : data
19
+ end
20
+
21
+ def self.write(w, m)
22
+ w.uint16(m.data)
23
+ end
24
+
25
+ def self.read(r)
26
+ m = new
27
+ m.data = r.uint16
28
+ m
29
+ end
30
+ end
@@ -0,0 +1,35 @@
1
+ # std_msgs/msg/UInt16MultiArray (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # UInt16MultiArray.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ ::Asterism::ROS.require_type("std_msgs/msg/MultiArrayLayout")
7
+
8
+ module ::Asterism::ROS::StdMsgs
9
+ end
10
+
11
+ class ::Asterism::ROS::StdMsgs::UInt16MultiArray < ::Asterism::ROS::Message
12
+ ROS_NAME = "std_msgs/msg/UInt16MultiArray"
13
+ TYPE_NAME = "std_msgs::msg::dds_::UInt16MultiArray_"
14
+ TYPE_HASH = "RIHS01_94fe73428ec63baecc774f8fb82406123e9291cf728f1b7c91caf5335129492b"
15
+ FIELDS = [:layout, :data]
16
+
17
+ attr_accessor :layout, :data
18
+
19
+ def initialize(layout: nil, data: nil)
20
+ @layout = ::Asterism::ROS::StdMsgs::MultiArrayLayout.from(layout)
21
+ @data = data.nil? ? [] : data
22
+ end
23
+
24
+ def self.write(w, m)
25
+ ::Asterism::ROS::StdMsgs::MultiArrayLayout.write(w, ::Asterism::ROS::StdMsgs::MultiArrayLayout.from(m.layout))
26
+ w.array(:uint16, m.data, nil, nil)
27
+ end
28
+
29
+ def self.read(r)
30
+ m = new
31
+ m.layout = ::Asterism::ROS::StdMsgs::MultiArrayLayout.read(r)
32
+ m.data = r.array(:uint16, nil)
33
+ m
34
+ end
35
+ end
@@ -0,0 +1,30 @@
1
+ # std_msgs/msg/UInt32 (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # UInt32.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ module ::Asterism::ROS::StdMsgs
7
+ end
8
+
9
+ class ::Asterism::ROS::StdMsgs::UInt32 < ::Asterism::ROS::Message
10
+ ROS_NAME = "std_msgs/msg/UInt32"
11
+ TYPE_NAME = "std_msgs::msg::dds_::UInt32_"
12
+ TYPE_HASH = "RIHS01_a5c874829b752bc5fa190024b0ad76f578cc278271e855c7d02a818b3516fb4a"
13
+ FIELDS = [:data]
14
+
15
+ attr_accessor :data
16
+
17
+ def initialize(data: nil)
18
+ @data = data.nil? ? 0 : data
19
+ end
20
+
21
+ def self.write(w, m)
22
+ w.uint32(m.data)
23
+ end
24
+
25
+ def self.read(r)
26
+ m = new
27
+ m.data = r.uint32
28
+ m
29
+ end
30
+ end
@@ -0,0 +1,35 @@
1
+ # std_msgs/msg/UInt32MultiArray (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # UInt32MultiArray.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ ::Asterism::ROS.require_type("std_msgs/msg/MultiArrayLayout")
7
+
8
+ module ::Asterism::ROS::StdMsgs
9
+ end
10
+
11
+ class ::Asterism::ROS::StdMsgs::UInt32MultiArray < ::Asterism::ROS::Message
12
+ ROS_NAME = "std_msgs/msg/UInt32MultiArray"
13
+ TYPE_NAME = "std_msgs::msg::dds_::UInt32MultiArray_"
14
+ TYPE_HASH = "RIHS01_6c2577c7ad3cbdcc2164a41c12f1d5ad314ea320f3fb1ee47e78019fe16bb5b0"
15
+ FIELDS = [:layout, :data]
16
+
17
+ attr_accessor :layout, :data
18
+
19
+ def initialize(layout: nil, data: nil)
20
+ @layout = ::Asterism::ROS::StdMsgs::MultiArrayLayout.from(layout)
21
+ @data = data.nil? ? [] : data
22
+ end
23
+
24
+ def self.write(w, m)
25
+ ::Asterism::ROS::StdMsgs::MultiArrayLayout.write(w, ::Asterism::ROS::StdMsgs::MultiArrayLayout.from(m.layout))
26
+ w.array(:uint32, m.data, nil, nil)
27
+ end
28
+
29
+ def self.read(r)
30
+ m = new
31
+ m.layout = ::Asterism::ROS::StdMsgs::MultiArrayLayout.read(r)
32
+ m.data = r.array(:uint32, nil)
33
+ m
34
+ end
35
+ end
@@ -0,0 +1,30 @@
1
+ # std_msgs/msg/UInt64 (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # UInt64.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ module ::Asterism::ROS::StdMsgs
7
+ end
8
+
9
+ class ::Asterism::ROS::StdMsgs::UInt64 < ::Asterism::ROS::Message
10
+ ROS_NAME = "std_msgs/msg/UInt64"
11
+ TYPE_NAME = "std_msgs::msg::dds_::UInt64_"
12
+ TYPE_HASH = "RIHS01_fbdc52018fc13755dce18024d1a671c856aa8b4aaf63adfb095b608f98e8c943"
13
+ FIELDS = [:data]
14
+
15
+ attr_accessor :data
16
+
17
+ def initialize(data: nil)
18
+ @data = data.nil? ? 0 : data
19
+ end
20
+
21
+ def self.write(w, m)
22
+ w.uint64(m.data)
23
+ end
24
+
25
+ def self.read(r)
26
+ m = new
27
+ m.data = r.uint64
28
+ m
29
+ end
30
+ end
@@ -0,0 +1,35 @@
1
+ # std_msgs/msg/UInt64MultiArray (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # UInt64MultiArray.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ ::Asterism::ROS.require_type("std_msgs/msg/MultiArrayLayout")
7
+
8
+ module ::Asterism::ROS::StdMsgs
9
+ end
10
+
11
+ class ::Asterism::ROS::StdMsgs::UInt64MultiArray < ::Asterism::ROS::Message
12
+ ROS_NAME = "std_msgs/msg/UInt64MultiArray"
13
+ TYPE_NAME = "std_msgs::msg::dds_::UInt64MultiArray_"
14
+ TYPE_HASH = "RIHS01_fc1c685c2f76bdc6983da025cb25d2db5fb5157b059e300f6d957d86f981b366"
15
+ FIELDS = [:layout, :data]
16
+
17
+ attr_accessor :layout, :data
18
+
19
+ def initialize(layout: nil, data: nil)
20
+ @layout = ::Asterism::ROS::StdMsgs::MultiArrayLayout.from(layout)
21
+ @data = data.nil? ? [] : data
22
+ end
23
+
24
+ def self.write(w, m)
25
+ ::Asterism::ROS::StdMsgs::MultiArrayLayout.write(w, ::Asterism::ROS::StdMsgs::MultiArrayLayout.from(m.layout))
26
+ w.array(:uint64, m.data, nil, nil)
27
+ end
28
+
29
+ def self.read(r)
30
+ m = new
31
+ m.layout = ::Asterism::ROS::StdMsgs::MultiArrayLayout.read(r)
32
+ m.data = r.array(:uint64, nil)
33
+ m
34
+ end
35
+ end
@@ -0,0 +1,30 @@
1
+ # std_msgs/msg/UInt8 (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # UInt8.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ module ::Asterism::ROS::StdMsgs
7
+ end
8
+
9
+ class ::Asterism::ROS::StdMsgs::UInt8 < ::Asterism::ROS::Message
10
+ ROS_NAME = "std_msgs/msg/UInt8"
11
+ TYPE_NAME = "std_msgs::msg::dds_::UInt8_"
12
+ TYPE_HASH = "RIHS01_6138bd83d8c3569cb80a667db03cfc1629f529fee79d944c39c34e352e72f010"
13
+ FIELDS = [:data]
14
+
15
+ attr_accessor :data
16
+
17
+ def initialize(data: nil)
18
+ @data = data.nil? ? 0 : data
19
+ end
20
+
21
+ def self.write(w, m)
22
+ w.uint8(m.data)
23
+ end
24
+
25
+ def self.read(r)
26
+ m = new
27
+ m.data = r.uint8
28
+ m
29
+ end
30
+ end
@@ -0,0 +1,35 @@
1
+ # std_msgs/msg/UInt8MultiArray (ROS 2 jazzy), generated by asterism_msggen.rb from
2
+ # UInt8MultiArray.msg of the package std_msgs.
3
+ # License: Apache License 2.0, as the definition (package.xml of std_msgs).
4
+ # Do not edit; regenerate instead.
5
+
6
+ ::Asterism::ROS.require_type("std_msgs/msg/MultiArrayLayout")
7
+
8
+ module ::Asterism::ROS::StdMsgs
9
+ end
10
+
11
+ class ::Asterism::ROS::StdMsgs::UInt8MultiArray < ::Asterism::ROS::Message
12
+ ROS_NAME = "std_msgs/msg/UInt8MultiArray"
13
+ TYPE_NAME = "std_msgs::msg::dds_::UInt8MultiArray_"
14
+ TYPE_HASH = "RIHS01_5687e861b8d307a5e48b7515467ae7a5fc2daf805bd0ce6d8e9e604bade9f385"
15
+ FIELDS = [:layout, :data]
16
+
17
+ attr_accessor :layout, :data
18
+
19
+ def initialize(layout: nil, data: nil)
20
+ @layout = ::Asterism::ROS::StdMsgs::MultiArrayLayout.from(layout)
21
+ @data = data.nil? ? "" : data
22
+ end
23
+
24
+ def self.write(w, m)
25
+ ::Asterism::ROS::StdMsgs::MultiArrayLayout.write(w, ::Asterism::ROS::StdMsgs::MultiArrayLayout.from(m.layout))
26
+ w.bytes(m.data, nil, nil)
27
+ end
28
+
29
+ def self.read(r)
30
+ m = new
31
+ m.layout = ::Asterism::ROS::StdMsgs::MultiArrayLayout.read(r)
32
+ m.data = r.bytes(nil)
33
+ m
34
+ end
35
+ end
@@ -0,0 +1,24 @@
1
+ # What CRuby needs on top of the pure Ruby layers in mrblib/ (shared with the
2
+ # mruby / PicoRuby boards). Kept small: anything that is also right on mruby
3
+ # belongs in mrblib/ instead.
4
+ module Asterism
5
+ # The message and service types bundled with the gem (the same files the
6
+ # boards keep in /usr/share/asterism/msgs). The application may add its
7
+ # own directories (tools/asterism_msggen.rb -o <dir>).
8
+ MSGS_DIR = File.expand_path("../../data/msgs", __dir__)
9
+ ROS::TYPE_PATH.replace([MSGS_DIR])
10
+
11
+ module Codec
12
+ # CRuby's msgpack packs binary (ASCII-8BIT) Strings, such as payloads
13
+ # that came from Zenoh, as the bin type. The mruby MessagePack of the
14
+ # boards reads only the str type, so every String goes as str
15
+ # (compatibility mode), which is what the boards send too.
16
+ def self.pack(v)
17
+ ::MessagePack.pack(check(v), compatibility_mode: true)
18
+ end
19
+ end
20
+
21
+ def self.error_reply(klass, message)
22
+ ::MessagePack.pack(["error", klass.to_s, message.to_s], compatibility_mode: true)
23
+ end
24
+ end
@@ -0,0 +1,5 @@
1
+ module Asterism
2
+ # The gem's version (the CRuby gem asterism; it depends on asterism-zenoh
3
+ # of the same version).
4
+ VERSION = "0.1.0"
5
+ end
data/lib/asterism.rb CHANGED
@@ -1,5 +1,18 @@
1
- # Asterism: treat many Rubies (CRuby, mruby, microcontrollers, the web)
2
- # as one network of objects, on top of Zenoh. Not implemented yet.
3
- module Asterism
4
- VERSION = "0.0.0"
1
+ # Asterism for CRuby: Ruby objects on other machines called like local ones
2
+ # (Asterism.connect / expose / [] / poll), and a ROS 2 node over rmw_zenoh's
3
+ # wire format (Asterism::ROS, Asterism::CDR, generated message types).
4
+ #
5
+ # The Ruby code is the one the mruby / PicoRuby boards run: mrblib/ of this
6
+ # repository, which is also the mrbgem (mrbgem.rake). Nothing is copied:
7
+ # this file loads mrblib/ as it is, and lib/asterism/cruby.rb adds what
8
+ # CRuby needs. The Zenoh binding is the asterism-zenoh gem (Asterism::Zenoh,
9
+ # over zenoh-c), with the same API as the boards' zenoh-pico binding.
10
+ require "msgpack"
11
+ require "asterism/zenoh"
12
+ require_relative "asterism/version"
13
+
14
+ # The same order as an mrbgem's mrblib (alphabetical).
15
+ %w[asterism cdr future proxy ros].each do |f|
16
+ require_relative "../mrblib/#{f}"
5
17
  end
18
+ require_relative "asterism/cruby"