UnderAutomation.Fanuc 3.5.0.0__py3-none-any.whl → 4.0.0.0__py3-none-any.whl

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 (30) hide show
  1. underautomation/fanuc/common/stream_motion_connect_parameters.py +25 -0
  2. underautomation/fanuc/connection_parameters.py +7 -0
  3. underautomation/fanuc/fanuc_robot.py +4 -0
  4. underautomation/fanuc/lib/UnderAutomation.Fanuc.dll +0 -0
  5. underautomation/fanuc/lib/version.txt +1 -1
  6. underautomation/fanuc/stream_motion/__init__.py +0 -0
  7. underautomation/fanuc/stream_motion/data/__init__.py +0 -0
  8. underautomation/fanuc/stream_motion/data/ack_packet.py +40 -0
  9. underautomation/fanuc/stream_motion/data/command_packet.py +75 -0
  10. underautomation/fanuc/stream_motion/data/data_style.py +8 -0
  11. underautomation/fanuc/stream_motion/data/io_read_result.py +27 -0
  12. underautomation/fanuc/stream_motion/data/io_type.py +20 -0
  13. underautomation/fanuc/stream_motion/data/motion_data.py +179 -0
  14. underautomation/fanuc/stream_motion/data/packet_type_from_robot.py +8 -0
  15. underautomation/fanuc/stream_motion/data/packet_type_to_robot.py +10 -0
  16. underautomation/fanuc/stream_motion/data/receive_error_event_args.py +18 -0
  17. underautomation/fanuc/stream_motion/data/robot_status.py +33 -0
  18. underautomation/fanuc/stream_motion/data/robot_status_flags.py +10 -0
  19. underautomation/fanuc/stream_motion/data/state_packet.py +51 -0
  20. underautomation/fanuc/stream_motion/data/state_received_event_args.py +16 -0
  21. underautomation/fanuc/stream_motion/data/threshold_type.py +9 -0
  22. underautomation/fanuc/stream_motion/internal/__init__.py +0 -0
  23. underautomation/fanuc/stream_motion/internal/stream_motion_client_base.py +77 -0
  24. underautomation/fanuc/stream_motion/internal/stream_motion_client_internal.py +13 -0
  25. underautomation/fanuc/stream_motion/internal/stream_motion_connect_parameters_base.py +36 -0
  26. underautomation/fanuc/stream_motion/stream_motion_client.py +15 -0
  27. {underautomation_fanuc-3.5.0.0.dist-info → underautomation_fanuc-4.0.0.0.dist-info}/METADATA +1 -1
  28. {underautomation_fanuc-3.5.0.0.dist-info → underautomation_fanuc-4.0.0.0.dist-info}/RECORD +30 -8
  29. {underautomation_fanuc-3.5.0.0.dist-info → underautomation_fanuc-4.0.0.0.dist-info}/WHEEL +0 -0
  30. {underautomation_fanuc-3.5.0.0.dist-info → underautomation_fanuc-4.0.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,25 @@
1
+ import typing
2
+ from underautomation.fanuc.stream_motion.internal.stream_motion_connect_parameters_base import StreamMotionConnectParametersBase
3
+ import clr
4
+ import os
5
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", 'lib', 'UnderAutomation.Fanuc.dll')))
6
+ from UnderAutomation.Fanuc.Common import StreamMotionConnectParameters as stream_motion_connect_parameters
7
+
8
+ class StreamMotionConnectParameters(StreamMotionConnectParametersBase):
9
+ def __init__(self, _internal = 0):
10
+ if(_internal == 0):
11
+ self._instance = stream_motion_connect_parameters()
12
+ else:
13
+ self._instance = _internal
14
+ @property
15
+ def enable(self) -> bool:
16
+ return self._instance.Enable
17
+ @enable.setter
18
+ def enable(self, value: bool):
19
+ self._instance.Enable = value
20
+ @property
21
+ def ip(self) -> str:
22
+ return self._instance.Ip
23
+ @ip.setter
24
+ def ip(self, value: str):
25
+ self._instance.Ip = value
@@ -4,6 +4,7 @@ from underautomation.fanuc.common.telnet_connect_parameters import TelnetConnect
4
4
  from underautomation.fanuc.common.ftp_connect_parameters import FtpConnectParameters
5
5
  from underautomation.fanuc.common.snpx_connect_parameters import SnpxConnectParameters
6
6
  from underautomation.fanuc.common.rmi_connect_parameters import RmiConnectParameters
7
+ from underautomation.fanuc.common.stream_motion_connect_parameters import StreamMotionConnectParameters
7
8
  import clr
8
9
  import os
9
10
  clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), 'lib', 'UnderAutomation.Fanuc.dll')))
@@ -57,3 +58,9 @@ class ConnectionParameters:
57
58
  @rmi.setter
58
59
  def rmi(self, value: RmiConnectParameters):
59
60
  self._instance.Rmi = value
61
+ @property
62
+ def stream_motion(self) -> StreamMotionConnectParameters:
63
+ return StreamMotionConnectParameters(self._instance.StreamMotion)
64
+ @stream_motion.setter
65
+ def stream_motion(self, value: StreamMotionConnectParameters):
66
+ self._instance.StreamMotion = value
@@ -4,6 +4,7 @@ from underautomation.fanuc.telnet.internal.telnet_client_internal import TelnetC
4
4
  from underautomation.fanuc.ftp.internal.ftp_client_internal import FtpClientInternal
5
5
  from underautomation.fanuc.snpx.internal.snpx_client_internal import SnpxClientInternal
6
6
  from underautomation.fanuc.rmi.internal.rmi_client_internal import RmiClientInternal
7
+ from underautomation.fanuc.stream_motion.internal.stream_motion_client_internal import StreamMotionClientInternal
7
8
  from underautomation.fanuc.license.license_info import LicenseInfo
8
9
  import clr
9
10
  import os
@@ -42,5 +43,8 @@ class FanucRobot:
42
43
  def rmi(self) -> RmiClientInternal:
43
44
  return RmiClientInternal(self._instance.Rmi)
44
45
  @property
46
+ def stream_motion(self) -> StreamMotionClientInternal:
47
+ return StreamMotionClientInternal(self._instance.StreamMotion)
48
+ @property
45
49
  def license_info(self) -> LicenseInfo:
46
50
  return LicenseInfo(None, None, self._instance.LicenseInfo)
@@ -1 +1 @@
1
- 3.5.0.0
1
+ 4.0.0.0
File without changes
File without changes
@@ -0,0 +1,40 @@
1
+ import typing
2
+ from underautomation.fanuc.stream_motion.data.packet_type_from_robot import PacketTypeFromRobot
3
+ from underautomation.fanuc.stream_motion.data.threshold_type import ThresholdType
4
+ import clr
5
+ import os
6
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
7
+ from UnderAutomation.Fanuc.StreamMotion.Data import AckPacket as ack_packet
8
+
9
+ class AckPacket:
10
+ def __init__(self, _internal = 0):
11
+ if(_internal == 0):
12
+ self._instance = ack_packet()
13
+ else:
14
+ self._instance = _internal
15
+ def __repr__(self):
16
+ return self._instance.ToString()
17
+ @property
18
+ def packet_type(self) -> PacketTypeFromRobot:
19
+ return PacketTypeFromRobot(self._instance.PacketType)
20
+ @property
21
+ def version_number(self) -> int:
22
+ return self._instance.VersionNumber
23
+ @property
24
+ def axis_number(self) -> int:
25
+ return self._instance.AxisNumber
26
+ @property
27
+ def threshold_type(self) -> ThresholdType:
28
+ return ThresholdType(self._instance.ThresholdType)
29
+ @property
30
+ def max_cartesian_speed(self) -> int:
31
+ return self._instance.MaxCartesianSpeed
32
+ @property
33
+ def unknown0(self) -> int:
34
+ return self._instance.Unknown0
35
+ @property
36
+ def thresholds_no_load(self) -> typing.List[float]:
37
+ return self._instance.ThresholdsNoLoad
38
+ @property
39
+ def thresholds_max_load(self) -> typing.List[float]:
40
+ return self._instance.ThresholdsMaxLoad
@@ -0,0 +1,75 @@
1
+ import typing
2
+ from underautomation.fanuc.stream_motion.data.data_style import DataStyle
3
+ from underautomation.fanuc.stream_motion.data.motion_data import MotionData
4
+ from underautomation.fanuc.stream_motion.data.io_type import IOType
5
+ import clr
6
+ import os
7
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
8
+ from UnderAutomation.Fanuc.StreamMotion.Data import CommandPacket as command_packet
9
+
10
+ class CommandPacket:
11
+ def __init__(self, dataStyle: DataStyle, motionData: MotionData, _internal = 0):
12
+ if(_internal == 0):
13
+ self._instance = command_packet(dataStyle, motionData)
14
+ else:
15
+ self._instance = _internal
16
+ @property
17
+ def is_last_data(self) -> bool:
18
+ return self._instance.IsLastData
19
+ @is_last_data.setter
20
+ def is_last_data(self, value: bool):
21
+ self._instance.IsLastData = value
22
+ @property
23
+ def read_io_type(self) -> IOType:
24
+ return IOType(self._instance.ReadIOType)
25
+ @read_io_type.setter
26
+ def read_io_type(self, value: IOType):
27
+ self._instance.ReadIOType = value
28
+ @property
29
+ def read_io_index(self) -> int:
30
+ return self._instance.ReadIOIndex
31
+ @read_io_index.setter
32
+ def read_io_index(self, value: int):
33
+ self._instance.ReadIOIndex = value
34
+ @property
35
+ def read_io_mask(self) -> int:
36
+ return self._instance.ReadIOMask
37
+ @read_io_mask.setter
38
+ def read_io_mask(self, value: int):
39
+ self._instance.ReadIOMask = value
40
+ @property
41
+ def data_style(self) -> DataStyle:
42
+ return DataStyle(self._instance.DataStyle)
43
+ @data_style.setter
44
+ def data_style(self, value: DataStyle):
45
+ self._instance.DataStyle = value
46
+ @property
47
+ def write_io_type(self) -> IOType:
48
+ return IOType(self._instance.WriteIOType)
49
+ @write_io_type.setter
50
+ def write_io_type(self, value: IOType):
51
+ self._instance.WriteIOType = value
52
+ @property
53
+ def write_io_index(self) -> int:
54
+ return self._instance.WriteIOIndex
55
+ @write_io_index.setter
56
+ def write_io_index(self, value: int):
57
+ self._instance.WriteIOIndex = value
58
+ @property
59
+ def write_io_mask(self) -> int:
60
+ return self._instance.WriteIOMask
61
+ @write_io_mask.setter
62
+ def write_io_mask(self, value: int):
63
+ self._instance.WriteIOMask = value
64
+ @property
65
+ def write_io_value(self) -> int:
66
+ return self._instance.WriteIOValue
67
+ @write_io_value.setter
68
+ def write_io_value(self, value: int):
69
+ self._instance.WriteIOValue = value
70
+ @property
71
+ def motion_data(self) -> MotionData:
72
+ return MotionData(None, self._instance.MotionData)
73
+ @motion_data.setter
74
+ def motion_data(self, value: MotionData):
75
+ self._instance.MotionData = value
@@ -0,0 +1,8 @@
1
+ import clr
2
+ import os
3
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
4
+ from UnderAutomation.Fanuc.StreamMotion.Data import DataStyle as data_style
5
+
6
+ class DataStyle(int):
7
+ Cartesian = data_style.Cartesian
8
+ Joint = data_style.Joint
@@ -0,0 +1,27 @@
1
+ import typing
2
+ from underautomation.fanuc.stream_motion.data.io_type import IOType
3
+ import clr
4
+ import os
5
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
6
+ from UnderAutomation.Fanuc.StreamMotion.Data import IOReadResult as io_read_result
7
+
8
+ class IOReadResult:
9
+ def __init__(self, _internal = 0):
10
+ if(_internal == 0):
11
+ self._instance = io_read_result()
12
+ else:
13
+ self._instance = _internal
14
+ def __repr__(self):
15
+ return self._instance.ToString()
16
+ @property
17
+ def type(self) -> IOType:
18
+ return IOType(self._instance.Type)
19
+ @property
20
+ def index(self) -> int:
21
+ return self._instance.Index
22
+ @property
23
+ def mask(self) -> int:
24
+ return self._instance.Mask
25
+ @property
26
+ def value(self) -> int:
27
+ return self._instance.Value
@@ -0,0 +1,20 @@
1
+ import clr
2
+ import os
3
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
4
+ from UnderAutomation.Fanuc.StreamMotion.Data import IOType as io_type
5
+
6
+ class IOType(int):
7
+ DI = io_type.DI
8
+ DO = io_type.DO
9
+ RI = io_type.RI
10
+ RO = io_type.RO
11
+ SI = io_type.SI
12
+ SO = io_type.SO
13
+ WI = io_type.WI
14
+ WO = io_type.WO
15
+ UI = io_type.UI
16
+ UO = io_type.UO
17
+ WSI = io_type.WSI
18
+ WSO = io_type.WSO
19
+ F = io_type.F
20
+ M = io_type.M
@@ -0,0 +1,179 @@
1
+ import typing
2
+ import clr
3
+ import os
4
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
5
+ from UnderAutomation.Fanuc.StreamMotion.Data import MotionData as motion_data
6
+
7
+ class MotionData:
8
+ def __init__(self, values: typing.List[float], _internal = 0):
9
+ if(_internal == 0):
10
+ self._instance = motion_data(values)
11
+ else:
12
+ self._instance = _internal
13
+ def __repr__(self):
14
+ return self._instance.ToString()
15
+ @property
16
+ def values(self) -> typing.List[float]:
17
+ return self._instance.Values
18
+ @property
19
+ def axis1(self) -> float:
20
+ return self._instance.Axis1
21
+ @axis1.setter
22
+ def axis1(self, value: float):
23
+ self._instance.Axis1 = value
24
+ @property
25
+ def axis2(self) -> float:
26
+ return self._instance.Axis2
27
+ @axis2.setter
28
+ def axis2(self, value: float):
29
+ self._instance.Axis2 = value
30
+ @property
31
+ def axis3(self) -> float:
32
+ return self._instance.Axis3
33
+ @axis3.setter
34
+ def axis3(self, value: float):
35
+ self._instance.Axis3 = value
36
+ @property
37
+ def axis4(self) -> float:
38
+ return self._instance.Axis4
39
+ @axis4.setter
40
+ def axis4(self, value: float):
41
+ self._instance.Axis4 = value
42
+ @property
43
+ def axis5(self) -> float:
44
+ return self._instance.Axis5
45
+ @axis5.setter
46
+ def axis5(self, value: float):
47
+ self._instance.Axis5 = value
48
+ @property
49
+ def axis6(self) -> float:
50
+ return self._instance.Axis6
51
+ @axis6.setter
52
+ def axis6(self, value: float):
53
+ self._instance.Axis6 = value
54
+ @property
55
+ def ext_axis1(self) -> float:
56
+ return self._instance.ExtAxis1
57
+ @ext_axis1.setter
58
+ def ext_axis1(self, value: float):
59
+ self._instance.ExtAxis1 = value
60
+ @property
61
+ def ext_axis2(self) -> float:
62
+ return self._instance.ExtAxis2
63
+ @ext_axis2.setter
64
+ def ext_axis2(self, value: float):
65
+ self._instance.ExtAxis2 = value
66
+ @property
67
+ def ext_axis3(self) -> float:
68
+ return self._instance.ExtAxis3
69
+ @ext_axis3.setter
70
+ def ext_axis3(self, value: float):
71
+ self._instance.ExtAxis3 = value
72
+ @property
73
+ def j1(self) -> float:
74
+ return self._instance.J1
75
+ @j1.setter
76
+ def j1(self, value: float):
77
+ self._instance.J1 = value
78
+ @property
79
+ def j2(self) -> float:
80
+ return self._instance.J2
81
+ @j2.setter
82
+ def j2(self, value: float):
83
+ self._instance.J2 = value
84
+ @property
85
+ def j3(self) -> float:
86
+ return self._instance.J3
87
+ @j3.setter
88
+ def j3(self, value: float):
89
+ self._instance.J3 = value
90
+ @property
91
+ def j4(self) -> float:
92
+ return self._instance.J4
93
+ @j4.setter
94
+ def j4(self, value: float):
95
+ self._instance.J4 = value
96
+ @property
97
+ def j5(self) -> float:
98
+ return self._instance.J5
99
+ @j5.setter
100
+ def j5(self, value: float):
101
+ self._instance.J5 = value
102
+ @property
103
+ def j6(self) -> float:
104
+ return self._instance.J6
105
+ @j6.setter
106
+ def j6(self, value: float):
107
+ self._instance.J6 = value
108
+ @property
109
+ def j7(self) -> float:
110
+ return self._instance.J7
111
+ @j7.setter
112
+ def j7(self, value: float):
113
+ self._instance.J7 = value
114
+ @property
115
+ def j8(self) -> float:
116
+ return self._instance.J8
117
+ @j8.setter
118
+ def j8(self, value: float):
119
+ self._instance.J8 = value
120
+ @property
121
+ def j9(self) -> float:
122
+ return self._instance.J9
123
+ @j9.setter
124
+ def j9(self, value: float):
125
+ self._instance.J9 = value
126
+ @property
127
+ def x(self) -> float:
128
+ return self._instance.X
129
+ @x.setter
130
+ def x(self, value: float):
131
+ self._instance.X = value
132
+ @property
133
+ def y(self) -> float:
134
+ return self._instance.Y
135
+ @y.setter
136
+ def y(self, value: float):
137
+ self._instance.Y = value
138
+ @property
139
+ def z(self) -> float:
140
+ return self._instance.Z
141
+ @z.setter
142
+ def z(self, value: float):
143
+ self._instance.Z = value
144
+ @property
145
+ def w(self) -> float:
146
+ return self._instance.W
147
+ @w.setter
148
+ def w(self, value: float):
149
+ self._instance.W = value
150
+ @property
151
+ def p(self) -> float:
152
+ return self._instance.P
153
+ @p.setter
154
+ def p(self, value: float):
155
+ self._instance.P = value
156
+ @property
157
+ def r(self) -> float:
158
+ return self._instance.R
159
+ @r.setter
160
+ def r(self, value: float):
161
+ self._instance.R = value
162
+ @property
163
+ def e1(self) -> float:
164
+ return self._instance.E1
165
+ @e1.setter
166
+ def e1(self, value: float):
167
+ self._instance.E1 = value
168
+ @property
169
+ def e2(self) -> float:
170
+ return self._instance.E2
171
+ @e2.setter
172
+ def e2(self, value: float):
173
+ self._instance.E2 = value
174
+ @property
175
+ def e3(self) -> float:
176
+ return self._instance.E3
177
+ @e3.setter
178
+ def e3(self, value: float):
179
+ self._instance.E3 = value
@@ -0,0 +1,8 @@
1
+ import clr
2
+ import os
3
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
4
+ from UnderAutomation.Fanuc.StreamMotion.Data import PacketTypeFromRobot as packet_type_from_robot
5
+
6
+ class PacketTypeFromRobot(int):
7
+ State = packet_type_from_robot.State
8
+ Ack = packet_type_from_robot.Ack
@@ -0,0 +1,10 @@
1
+ import clr
2
+ import os
3
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
4
+ from UnderAutomation.Fanuc.StreamMotion.Data import PacketTypeToRobot as packet_type_to_robot
5
+
6
+ class PacketTypeToRobot(int):
7
+ Start = packet_type_to_robot.Start
8
+ Command = packet_type_to_robot.Command
9
+ Stop = packet_type_to_robot.Stop
10
+ Request = packet_type_to_robot.Request
@@ -0,0 +1,18 @@
1
+ import typing
2
+ import clr
3
+ import os
4
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
5
+ from UnderAutomation.Fanuc.StreamMotion.Data import ReceiveErrorEventArgs as receive_error_event_args
6
+
7
+ class ReceiveErrorEventArgs:
8
+ def __init__(self, exception: typing.Any, isStreaming: bool, _internal = 0):
9
+ if(_internal == 0):
10
+ self._instance = receive_error_event_args(exception, isStreaming)
11
+ else:
12
+ self._instance = _internal
13
+ @property
14
+ def exception(self) -> typing.Any:
15
+ return self._instance.Exception
16
+ @property
17
+ def is_streaming(self) -> bool:
18
+ return self._instance.IsStreaming
@@ -0,0 +1,33 @@
1
+ import typing
2
+ from underautomation.fanuc.stream_motion.data.robot_status_flags import RobotStatusFlags
3
+ import clr
4
+ import os
5
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
6
+ from UnderAutomation.Fanuc.StreamMotion.Data import RobotStatus as robot_status
7
+
8
+ class RobotStatus:
9
+ def __init__(self, _internal = 0):
10
+ if(_internal == 0):
11
+ self._instance = robot_status()
12
+ else:
13
+ self._instance = _internal
14
+ def __repr__(self):
15
+ return self._instance.ToString()
16
+ @property
17
+ def raw_value(self) -> int:
18
+ return self._instance.RawValue
19
+ @property
20
+ def flags(self) -> RobotStatusFlags:
21
+ return RobotStatusFlags(self._instance.Flags)
22
+ @property
23
+ def ready_for_commands(self) -> bool:
24
+ return self._instance.ReadyForCommands
25
+ @property
26
+ def command_received(self) -> bool:
27
+ return self._instance.CommandReceived
28
+ @property
29
+ def system_ready(self) -> bool:
30
+ return self._instance.SystemReady
31
+ @property
32
+ def in_motion(self) -> bool:
33
+ return self._instance.InMotion
@@ -0,0 +1,10 @@
1
+ import clr
2
+ import os
3
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
4
+ from UnderAutomation.Fanuc.StreamMotion.Data import RobotStatusFlags as robot_status_flags
5
+
6
+ class RobotStatusFlags(int):
7
+ ReadyForCommands = robot_status_flags.ReadyForCommands
8
+ CommandReceived = robot_status_flags.CommandReceived
9
+ SystemReady = robot_status_flags.SystemReady
10
+ InMotion = robot_status_flags.InMotion
@@ -0,0 +1,51 @@
1
+ import typing
2
+ from underautomation.fanuc.stream_motion.data.packet_type_from_robot import PacketTypeFromRobot
3
+ from underautomation.fanuc.stream_motion.data.robot_status import RobotStatus
4
+ from underautomation.fanuc.stream_motion.data.io_read_result import IOReadResult
5
+ from underautomation.fanuc.stream_motion.data.motion_data import MotionData
6
+ import clr
7
+ import os
8
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
9
+ from UnderAutomation.Fanuc.StreamMotion.Data import StatePacket as state_packet
10
+
11
+ class StatePacket:
12
+ def __init__(self, _internal = 0):
13
+ if(_internal == 0):
14
+ self._instance = state_packet()
15
+ else:
16
+ self._instance = _internal
17
+ def __repr__(self):
18
+ return self._instance.ToString()
19
+ @property
20
+ def received_at_ticks(self) -> int:
21
+ return self._instance.ReceivedAtTicks
22
+ @property
23
+ def received_at(self) -> typing.Any:
24
+ return self._instance.ReceivedAt
25
+ @property
26
+ def packet_type(self) -> PacketTypeFromRobot:
27
+ return PacketTypeFromRobot(self._instance.PacketType)
28
+ @property
29
+ def version_number(self) -> int:
30
+ return self._instance.VersionNumber
31
+ @property
32
+ def sequence_number(self) -> int:
33
+ return self._instance.SequenceNumber
34
+ @property
35
+ def status(self) -> RobotStatus:
36
+ return RobotStatus(self._instance.Status)
37
+ @property
38
+ def io_read(self) -> IOReadResult:
39
+ return IOReadResult(self._instance.IORead)
40
+ @property
41
+ def time_stamp(self) -> int:
42
+ return self._instance.TimeStamp
43
+ @property
44
+ def cartesian_position(self) -> MotionData:
45
+ return MotionData(None, self._instance.CartesianPosition)
46
+ @property
47
+ def joint_position(self) -> MotionData:
48
+ return MotionData(None, self._instance.JointPosition)
49
+ @property
50
+ def motor_currents(self) -> MotionData:
51
+ return MotionData(None, self._instance.MotorCurrents)
@@ -0,0 +1,16 @@
1
+ import typing
2
+ from underautomation.fanuc.stream_motion.data.state_packet import StatePacket
3
+ import clr
4
+ import os
5
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
6
+ from UnderAutomation.Fanuc.StreamMotion.Data import StateReceivedEventArgs as state_received_event_args
7
+
8
+ class StateReceivedEventArgs:
9
+ def __init__(self, state: StatePacket, _internal = 0):
10
+ if(_internal == 0):
11
+ self._instance = state_received_event_args(state)
12
+ else:
13
+ self._instance = _internal
14
+ @property
15
+ def state(self) -> StatePacket:
16
+ return StatePacket(self._instance.State)
@@ -0,0 +1,9 @@
1
+ import clr
2
+ import os
3
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
4
+ from UnderAutomation.Fanuc.StreamMotion.Data import ThresholdType as threshold_type
5
+
6
+ class ThresholdType(int):
7
+ Velocity = threshold_type.Velocity
8
+ Acceleration = threshold_type.Acceleration
9
+ Jerk = threshold_type.Jerk
@@ -0,0 +1,77 @@
1
+ import typing
2
+ from underautomation.fanuc.stream_motion.data.state_packet import StatePacket
3
+ from underautomation.fanuc.stream_motion.data.command_packet import CommandPacket
4
+ from underautomation.fanuc.stream_motion.data.motion_data import MotionData
5
+ from underautomation.fanuc.stream_motion.data.io_type import IOType
6
+ from underautomation.fanuc.stream_motion.data.ack_packet import AckPacket
7
+ from underautomation.fanuc.stream_motion.data.threshold_type import ThresholdType
8
+ from underautomation.fanuc.stream_motion.data.state_received_event_args import StateReceivedEventArgs
9
+ from underautomation.fanuc.stream_motion.data.receive_error_event_args import ReceiveErrorEventArgs
10
+ import clr
11
+ import os
12
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
13
+ from UnderAutomation.Fanuc.StreamMotion.Internal import StreamMotionClientBase as stream_motion_client_base
14
+
15
+ class StreamMotionClientBase:
16
+ def __init__(self, _internal = 0):
17
+ if(_internal == 0):
18
+ self._instance = stream_motion_client_base()
19
+ else:
20
+ self._instance = _internal
21
+ def state_received(self, handler):
22
+ class Wrapper :
23
+ def __init__(self, _internal):
24
+ self._instance = _internal
25
+ self._instance.StateReceived+= lambda sender, e : handler(Wrapper(sender), Wrapper(e))
26
+ def receive_error(self, handler):
27
+ class Wrapper :
28
+ def __init__(self, _internal):
29
+ self._instance = _internal
30
+ self._instance.ReceiveError+= lambda sender, e : handler(Wrapper(sender), Wrapper(e))
31
+ def disconnect(self) -> None:
32
+ self._instance.Disconnect()
33
+ def start(self) -> None:
34
+ self._instance.Start()
35
+ def stop(self) -> None:
36
+ self._instance.Stop()
37
+ def send_command(self, command: CommandPacket) -> None:
38
+ self._instance.SendCommand(command._instance if command else None)
39
+ def send_joint_command(self, jointPositions: MotionData, readIOType: IOType, readIOIndex: int, readIOMask: int, isLastData: bool=False) -> None:
40
+ self._instance.SendJointCommand(jointPositions._instance if jointPositions else None, readIOType, readIOIndex, readIOMask, isLastData)
41
+ def send_cartesian_command(self, cartesianPosition: MotionData, isLastData: bool=False) -> None:
42
+ self._instance.SendCartesianCommand(cartesianPosition._instance if cartesianPosition else None, isLastData)
43
+ def request_threshold(self, axisNumber: int, thresholdType: ThresholdType) -> AckPacket:
44
+ return AckPacket(self._instance.RequestThreshold(axisNumber, thresholdType))
45
+ @property
46
+ def ip(self) -> str:
47
+ return self._instance.Ip
48
+ @property
49
+ def port(self) -> int:
50
+ return self._instance.Port
51
+ @property
52
+ def connected(self) -> bool:
53
+ return self._instance.Connected
54
+ @property
55
+ def is_connected(self) -> bool:
56
+ return self._instance.IsConnected
57
+ @property
58
+ def is_streaming(self) -> bool:
59
+ return self._instance.IsStreaming
60
+ @property
61
+ def last_state(self) -> StatePacket:
62
+ return StatePacket(self._instance.LastState)
63
+ @property
64
+ def send_timeout_ms(self) -> int:
65
+ return self._instance.SendTimeoutMs
66
+ @property
67
+ def receive_timeout_ms(self) -> int:
68
+ return self._instance.ReceiveTimeoutMs
69
+ @property
70
+ def robot_frequency(self) -> float:
71
+ return self._instance.RobotFrequency
72
+ @property
73
+ def measured_frequency(self) -> float:
74
+ return self._instance.MeasuredFrequency
75
+ @property
76
+ def packet_count(self) -> int:
77
+ return self._instance.PacketCount
@@ -0,0 +1,13 @@
1
+ import typing
2
+ from underautomation.fanuc.stream_motion.internal.stream_motion_client_base import StreamMotionClientBase
3
+ import clr
4
+ import os
5
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
6
+ from UnderAutomation.Fanuc.StreamMotion.Internal import StreamMotionClientInternal as stream_motion_client_internal
7
+
8
+ class StreamMotionClientInternal(StreamMotionClientBase):
9
+ def __init__(self, _internal = 0):
10
+ if(_internal == 0):
11
+ self._instance = stream_motion_client_internal()
12
+ else:
13
+ self._instance = _internal
@@ -0,0 +1,36 @@
1
+ import typing
2
+ import clr
3
+ import os
4
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
5
+ from UnderAutomation.Fanuc.StreamMotion.Internal import StreamMotionConnectParametersBase as stream_motion_connect_parameters_base
6
+
7
+ class StreamMotionConnectParametersBase:
8
+ def __init__(self, _internal = 0):
9
+ if(_internal == 0):
10
+ self._instance = stream_motion_connect_parameters_base()
11
+ else:
12
+ self._instance = _internal
13
+ @property
14
+ def port(self) -> int:
15
+ return self._instance.Port
16
+ @port.setter
17
+ def port(self, value: int):
18
+ self._instance.Port = value
19
+ @property
20
+ def send_timeout_ms(self) -> int:
21
+ return self._instance.SendTimeoutMs
22
+ @send_timeout_ms.setter
23
+ def send_timeout_ms(self, value: int):
24
+ self._instance.SendTimeoutMs = value
25
+ @property
26
+ def receive_timeout_ms(self) -> int:
27
+ return self._instance.ReceiveTimeoutMs
28
+ @receive_timeout_ms.setter
29
+ def receive_timeout_ms(self, value: int):
30
+ self._instance.ReceiveTimeoutMs = value
31
+
32
+ StreamMotionConnectParametersBase.defaul_t__port = StreamMotionConnectParametersBase(stream_motion_connect_parameters_base.DEFAULT_PORT)
33
+
34
+ StreamMotionConnectParametersBase.defaul_t__sen_d__timeou_t__ms = StreamMotionConnectParametersBase(stream_motion_connect_parameters_base.DEFAULT_SEND_TIMEOUT_MS)
35
+
36
+ StreamMotionConnectParametersBase.defaul_t__receiv_e__timeou_t__ms = StreamMotionConnectParametersBase(stream_motion_connect_parameters_base.DEFAULT_RECEIVE_TIMEOUT_MS)
@@ -0,0 +1,15 @@
1
+ import typing
2
+ from underautomation.fanuc.stream_motion.internal.stream_motion_client_base import StreamMotionClientBase
3
+ import clr
4
+ import os
5
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", 'lib', 'UnderAutomation.Fanuc.dll')))
6
+ from UnderAutomation.Fanuc.StreamMotion import StreamMotionClient as stream_motion_client
7
+
8
+ class StreamMotionClient(StreamMotionClientBase):
9
+ def __init__(self, _internal = 0):
10
+ if(_internal == 0):
11
+ self._instance = stream_motion_client()
12
+ else:
13
+ self._instance = _internal
14
+ def connect(self, ip: str, port: int=60015, sendTimeoutMs: int=1000, receiveTimeoutMs: int=1000) -> None:
15
+ self._instance.Connect(ip, port, sendTimeoutMs, receiveTimeoutMs)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: UnderAutomation.Fanuc
3
- Version: 3.5.0.0
3
+ Version: 4.0.0.0
4
4
  Summary: Quickly create applications that communicate with your Fanuc robots
5
5
  Home-page: https://underautomation.com/fanuc
6
6
  Author: UnderAutomation
@@ -1,7 +1,7 @@
1
1
  underautomation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  underautomation/fanuc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- underautomation/fanuc/connection_parameters.py,sha256=zlF-87Asko9yfRf6gtSXA-N0QnMBIsiOR4paxD10rqU,2153
4
- underautomation/fanuc/fanuc_robot.py,sha256=pPz9eyQqRHImoXaoKqub4uGI8J0TG8GKKo1rcsYAcnU,1851
3
+ underautomation/fanuc/connection_parameters.py,sha256=1sBj3HgVs3baXXOP_hrKbsOimKi8jJUM3B0VTyR2m9Y,2520
4
+ underautomation/fanuc/fanuc_robot.py,sha256=Unouwqru7CJk0vtkR8kQ5l86i0U32m-vN9T3YHI5oHs,2097
5
5
  underautomation/fanuc/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  underautomation/fanuc/common/arm_front_back.py,sha256=mdtm_teWOjhSYnsFjV5LiRQbzOT2Ncx6rK2qVadq1pg,330
7
7
  underautomation/fanuc/common/arm_left_right.py,sha256=86i-CKS6XtWTbdMzP4SsYRQz6YV8lQDl77OgY8fu6TA,330
@@ -21,6 +21,7 @@ underautomation/fanuc/common/position.py,sha256=gXRj1-nLXEN7u9AjTjXwL-H_myrW8tRf
21
21
  underautomation/fanuc/common/program_type.py,sha256=X9wJjDECvu5Lk0_pDTRJbY3174jZ4-fk54cx15s-vNo,316
22
22
  underautomation/fanuc/common/rmi_connect_parameters.py,sha256=zl4NzotEmSgNSHaHiKzzwtpBnFbQuDvljvYvHjxYytM,687
23
23
  underautomation/fanuc/common/snpx_connect_parameters.py,sha256=5vU0Y-6hzMGIRU_uX8jcSAvp5du6OgmpjuhpdSndsVQ,695
24
+ underautomation/fanuc/common/stream_motion_connect_parameters.py,sha256=iDxF-uIgNp_3NPs6Qf3q-W45kDIbjz1NF06_mlC0OS4,890
24
25
  underautomation/fanuc/common/string_utils.py,sha256=ba-Eb3XGfgosDfYFU-Wh2xfIMgSHXl1Ylpde_YH8DU0,548
25
26
  underautomation/fanuc/common/task_status.py,sha256=6oCcXB67NRqHyenNPO2p-PsuXN9cLfJNs5cLXxBbvak,353
26
27
  underautomation/fanuc/common/telnet_connect_parameters.py,sha256=oBc1fuUSOf5-z1eL-ZDAfpXxq-oyDEDRyb0lbws4InU,711
@@ -556,8 +557,8 @@ underautomation/fanuc/kinematics/internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-
556
557
  underautomation/fanuc/kinematics/internal/arm_model_attribute.py,sha256=atvH3Tk28dY2xA66mOIzXyJw484Ddggc854Dkz6-DBs,1000
557
558
  underautomation/fanuc/kinematics/opw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
558
559
  underautomation/fanuc/kinematics/opw/opw_kinematics_utils.py,sha256=RzdVOxa8Q-w5J3lGAfyGijc0hJBDVRHBFjiMH9JDnlI,925
559
- underautomation/fanuc/lib/UnderAutomation.Fanuc.dll,sha256=5zUvzEBbRFlqAWH_O8ms1HoBuM59LZSwXAypeBlmmA0,1755136
560
- underautomation/fanuc/lib/version.txt,sha256=8c4X7Re5IrV-sbwyGCYKmITk_D6areeaQlwX6dsYjiI,7
560
+ underautomation/fanuc/lib/UnderAutomation.Fanuc.dll,sha256=v9a16Mml72M5qHq6Z5cDXFs1V6x-qVwXNGb5sIwMISU,1774080
561
+ underautomation/fanuc/lib/version.txt,sha256=5u3igxEXp8B8UUxlXDIzllw5FaK4RLNX62D8ZObE4Yc,7
561
562
  underautomation/fanuc/license/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
562
563
  underautomation/fanuc/license/invalid_license_exception.py,sha256=5Gw6EBXyqE82SJxcjCYReZk9pKBJqJGJGBgdmtQJPC8,604
563
564
  underautomation/fanuc/license/license_info.py,sha256=2ugy8P-DTs31xDkcuPhn6RtDx9ZIj2aFmtTBwC0I0Qs,1602
@@ -635,6 +636,27 @@ underautomation/fanuc/snpx/internal/snpx_elements_2.py,sha256=Wu7l4uMsdqDYeV8E7i
635
636
  underautomation/fanuc/snpx/internal/snpx_writable_assignable_elements_3.py,sha256=FXZFlq_p24HFoBE9Ca8sySaUzBGM8zIfL7uWFXEGXOo,998
636
637
  underautomation/fanuc/snpx/internal/string_registers.py,sha256=tc-KSlQ42PkY961C1vusm6Go1rDJPmyBqrY9IBij6HY,905
637
638
  underautomation/fanuc/snpx/internal/string_system_variables.py,sha256=1rUhxuqwvFTgfJx6qMeXRwbk4nQzeiYNK08LROaZ7k0,754
639
+ underautomation/fanuc/stream_motion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
640
+ underautomation/fanuc/stream_motion/stream_motion_client.py,sha256=p2cmaQBu_niWHFwvxZspqOiO0tmP0PobWIFnnvSH5hs,715
641
+ underautomation/fanuc/stream_motion/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
642
+ underautomation/fanuc/stream_motion/data/ack_packet.py,sha256=NyQyScoCN0BRFX8wIDB1sS3GkZnHRCW4E4EnzmegEYU,1375
643
+ underautomation/fanuc/stream_motion/data/command_packet.py,sha256=HToqCaR3poLBi3Iomu-R-H7KGy--Q-G-64489ZsLo-s,2523
644
+ underautomation/fanuc/stream_motion/data/data_style.py,sha256=4_P8feGflvIaeSPeRrc0vsECuTfiXgOKVq2FxdtPoQc,305
645
+ underautomation/fanuc/stream_motion/data/io_read_result.py,sha256=rVpped5c9HKgz0jkiNpj-NXdfh25yZ6sufgfNoyPjAM,792
646
+ underautomation/fanuc/stream_motion/data/io_type.py,sha256=cHsxdEyzRhjuzsWrJZqpSGXGfAq83wmTPYw9k3ah7dE,474
647
+ underautomation/fanuc/stream_motion/data/motion_data.py,sha256=xDOvJBOq-utFQOs2qlA-aSKtzDNMm26uUTdc0nxUN_g,4256
648
+ underautomation/fanuc/stream_motion/data/packet_type_from_robot.py,sha256=vss1NQQU6XhIr_qgMKXJi4MGC8sbMqT-D_aTsEwrxtM,349
649
+ underautomation/fanuc/stream_motion/data/packet_type_to_robot.py,sha256=kcgT50esz9NLq3vNma4XiyRnI2gZs4JRQunbpncHmPs,421
650
+ underautomation/fanuc/stream_motion/data/receive_error_event_args.py,sha256=RvcUrRxxMoXhmEh45rGGhEIQxYtHkHI4tQNJkwYPUfo,660
651
+ underautomation/fanuc/stream_motion/data/robot_status.py,sha256=Wpszpvil9n8aGHInfiEf9c7y6RMB_HbxOZcvCxx6CYE,1039
652
+ underautomation/fanuc/stream_motion/data/robot_status_flags.py,sha256=WNTOMnt1IwyPeG8UMnN1MxBWV9hgZIohGmQX7X2N224,463
653
+ underautomation/fanuc/stream_motion/data/state_packet.py,sha256=ex_A6o8lIuFFXgLr_plSSB40wY3Jko4m-E2TV7n-Q0I,1820
654
+ underautomation/fanuc/stream_motion/data/state_received_event_args.py,sha256=X2oW2ahTRp3mNVcOg8cwHIJlvId0cemjNgmnLxSCWTg,629
655
+ underautomation/fanuc/stream_motion/data/threshold_type.py,sha256=3XJks5tSNYkZSs0CX1K5ljKG5G7oE4QKSnHLrusKRxY,365
656
+ underautomation/fanuc/stream_motion/internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
657
+ underautomation/fanuc/stream_motion/internal/stream_motion_client_base.py,sha256=6mZlQvBeGXareNvkru4777s6T0uijKYFTvqV1GqSqEw,3354
658
+ underautomation/fanuc/stream_motion/internal/stream_motion_client_internal.py,sha256=QFxmemAvh10rWAqi5DhUHAr05yMAQeOJtiYBx6UQEqc,589
659
+ underautomation/fanuc/stream_motion/internal/stream_motion_connect_parameters_base.py,sha256=QpH2zqcA8bsZIwRqyh16rh6mZ0Tcn2t7iiG-mv3iaGE,1489
638
660
  underautomation/fanuc/telnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
639
661
  underautomation/fanuc/telnet/abort_result.py,sha256=EGLZDU7u6dgJRdeWWN3puifBoFwjL2KuiDhDm9mIBEU,437
640
662
  underautomation/fanuc/telnet/add_breakpoint_result.py,sha256=akJu4p_LlB4ZFOKc-umSJgtY6C4r0IYex04bWIgmePw,471
@@ -675,7 +697,7 @@ underautomation/fanuc/telnet/internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCe
675
697
  underautomation/fanuc/telnet/internal/telnet_client_base.py,sha256=_MZb_ZPEXkeRKCSjBssyhTGVATFucR0yHYNmRYm4NEU,7574
676
698
  underautomation/fanuc/telnet/internal/telnet_client_internal.py,sha256=JJ6vapUoPfroaRj4Dy4JcgHKMFGvTkHPvy8OtHLYTQA,531
677
699
  underautomation/fanuc/telnet/internal/telnet_connect_parameters_base.py,sha256=l781dRqPnQOw2R1RsxgTT0J2Am6iw6WU5n6eDmrnwBk,665
678
- underautomation_fanuc-3.5.0.0.dist-info/METADATA,sha256=E9EE5d-w1nIL5QWrcRiGh8CiyOKDYPl5GDoukCqRY9w,6141
679
- underautomation_fanuc-3.5.0.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
680
- underautomation_fanuc-3.5.0.0.dist-info/top_level.txt,sha256=Ko5oLpVtiQ2okeu3dicHZqNT7g-Y4pHytT7zkT2EjG8,16
681
- underautomation_fanuc-3.5.0.0.dist-info/RECORD,,
700
+ underautomation_fanuc-4.0.0.0.dist-info/METADATA,sha256=TClK6Uep1f-0GvGzGvxtCozOGWolPT1CP3ORs7JYxkQ,6141
701
+ underautomation_fanuc-4.0.0.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
702
+ underautomation_fanuc-4.0.0.0.dist-info/top_level.txt,sha256=Ko5oLpVtiQ2okeu3dicHZqNT7g-Y4pHytT7zkT2EjG8,16
703
+ underautomation_fanuc-4.0.0.0.dist-info/RECORD,,