UnderAutomation.Fanuc 3.5.0.0__py3-none-any.whl → 4.1.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.
- underautomation/fanuc/common/stream_motion_connect_parameters.py +25 -0
- underautomation/fanuc/connection_parameters.py +7 -0
- underautomation/fanuc/fanuc_robot.py +4 -0
- underautomation/fanuc/lib/UnderAutomation.Fanuc.dll +0 -0
- underautomation/fanuc/lib/version.txt +1 -1
- underautomation/fanuc/snpx/assignment/flag_batch_assignment.py +15 -0
- underautomation/fanuc/snpx/internal/flags.py +14 -0
- underautomation/fanuc/snpx/internal/numeric_registers.py +2 -2
- underautomation/fanuc/snpx/internal/position_registers.py +2 -2
- underautomation/fanuc/snpx/internal/snpx_client_base.py +4 -0
- underautomation/fanuc/snpx/internal/snpx_writable_assignable_indexable_elements_2.py +17 -0
- underautomation/fanuc/snpx/internal/string_registers.py +2 -2
- underautomation/fanuc/stream_motion/__init__.py +0 -0
- underautomation/fanuc/stream_motion/data/__init__.py +0 -0
- underautomation/fanuc/stream_motion/data/ack_packet.py +40 -0
- underautomation/fanuc/stream_motion/data/command_packet.py +75 -0
- underautomation/fanuc/stream_motion/data/data_style.py +8 -0
- underautomation/fanuc/stream_motion/data/io_read_result.py +27 -0
- underautomation/fanuc/stream_motion/data/io_type.py +20 -0
- underautomation/fanuc/stream_motion/data/motion_data.py +179 -0
- underautomation/fanuc/stream_motion/data/packet_type_from_robot.py +8 -0
- underautomation/fanuc/stream_motion/data/packet_type_to_robot.py +10 -0
- underautomation/fanuc/stream_motion/data/receive_error_event_args.py +18 -0
- underautomation/fanuc/stream_motion/data/robot_status.py +33 -0
- underautomation/fanuc/stream_motion/data/robot_status_flags.py +10 -0
- underautomation/fanuc/stream_motion/data/state_packet.py +51 -0
- underautomation/fanuc/stream_motion/data/state_received_event_args.py +16 -0
- underautomation/fanuc/stream_motion/data/threshold_type.py +9 -0
- underautomation/fanuc/stream_motion/internal/__init__.py +0 -0
- underautomation/fanuc/stream_motion/internal/stream_motion_client_base.py +77 -0
- underautomation/fanuc/stream_motion/internal/stream_motion_client_internal.py +13 -0
- underautomation/fanuc/stream_motion/internal/stream_motion_connect_parameters_base.py +36 -0
- underautomation/fanuc/stream_motion/stream_motion_client.py +15 -0
- {underautomation_fanuc-3.5.0.0.dist-info → underautomation_fanuc-4.1.0.0.dist-info}/METADATA +1 -1
- {underautomation_fanuc-3.5.0.0.dist-info → underautomation_fanuc-4.1.0.0.dist-info}/RECORD +37 -12
- {underautomation_fanuc-3.5.0.0.dist-info → underautomation_fanuc-4.1.0.0.dist-info}/WHEEL +0 -0
- {underautomation_fanuc-3.5.0.0.dist-info → underautomation_fanuc-4.1.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)
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
4.1.0.0
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import typing
|
|
2
|
+
from underautomation.fanuc.snpx.internal.batch_assignment_2 import BatchAssignment2
|
|
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.Snpx.Assignment import FlagBatchAssignment as flag_batch_assignment
|
|
7
|
+
|
|
8
|
+
class FlagBatchAssignment(BatchAssignment2[bool, int]):
|
|
9
|
+
def __init__(self, _internal = 0):
|
|
10
|
+
if(_internal == 0):
|
|
11
|
+
self._instance = flag_batch_assignment()
|
|
12
|
+
else:
|
|
13
|
+
self._instance = _internal
|
|
14
|
+
def read(self) -> typing.List[bool]:
|
|
15
|
+
return self._instance.Read()
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import typing
|
|
2
|
+
from underautomation.fanuc.snpx.internal.snpx_writable_assignable_indexable_elements_2 import SnpxWritableAssignableIndexableElements2
|
|
3
|
+
from underautomation.fanuc.snpx.assignment.flag_batch_assignment import FlagBatchAssignment
|
|
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.Snpx.Internal import Flags as flags
|
|
8
|
+
|
|
9
|
+
class Flags(SnpxWritableAssignableIndexableElements2[bool, FlagBatchAssignment]):
|
|
10
|
+
def __init__(self, _internal = 0):
|
|
11
|
+
if(_internal == 0):
|
|
12
|
+
self._instance = flags()
|
|
13
|
+
else:
|
|
14
|
+
self._instance = _internal
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import typing
|
|
2
2
|
from underautomation.fanuc.snpx.assignment.numeric_registers_batch_assignment import NumericRegistersBatchAssignment
|
|
3
|
-
from underautomation.fanuc.snpx.internal.
|
|
3
|
+
from underautomation.fanuc.snpx.internal.snpx_writable_assignable_indexable_elements_2 import SnpxWritableAssignableIndexableElements2
|
|
4
4
|
import clr
|
|
5
5
|
import os
|
|
6
6
|
clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
|
|
7
7
|
from UnderAutomation.Fanuc.Snpx.Internal import NumericRegisters as numeric_registers
|
|
8
8
|
|
|
9
|
-
class NumericRegisters(
|
|
9
|
+
class NumericRegisters(SnpxWritableAssignableIndexableElements2[float, NumericRegistersBatchAssignment]):
|
|
10
10
|
def __init__(self, _internal = 0):
|
|
11
11
|
if(_internal == 0):
|
|
12
12
|
self._instance = numeric_registers()
|
|
@@ -3,14 +3,14 @@ from underautomation.fanuc.common.joints_position import JointsPosition
|
|
|
3
3
|
from underautomation.fanuc.common.extended_cartesian_position import ExtendedCartesianPosition
|
|
4
4
|
from underautomation.fanuc.common.cartesian_position import CartesianPosition
|
|
5
5
|
from underautomation.fanuc.snpx.assignment.position_registers_batch_assignment import PositionRegistersBatchAssignment
|
|
6
|
-
from underautomation.fanuc.snpx.internal.
|
|
6
|
+
from underautomation.fanuc.snpx.internal.snpx_writable_assignable_indexable_elements_2 import SnpxWritableAssignableIndexableElements2
|
|
7
7
|
from underautomation.fanuc.common.position import Position
|
|
8
8
|
import clr
|
|
9
9
|
import os
|
|
10
10
|
clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
|
|
11
11
|
from UnderAutomation.Fanuc.Snpx.Internal import PositionRegisters as position_registers
|
|
12
12
|
|
|
13
|
-
class PositionRegisters(
|
|
13
|
+
class PositionRegisters(SnpxWritableAssignableIndexableElements2[Position, PositionRegistersBatchAssignment]):
|
|
14
14
|
def __init__(self, _internal = 0):
|
|
15
15
|
if(_internal == 0):
|
|
16
16
|
self._instance = position_registers()
|
|
@@ -8,6 +8,7 @@ from underautomation.fanuc.snpx.internal.position_system_variables import Positi
|
|
|
8
8
|
from underautomation.fanuc.snpx.internal.string_system_variables import StringSystemVariables
|
|
9
9
|
from underautomation.fanuc.snpx.internal.digital_signals import DigitalSignals
|
|
10
10
|
from underautomation.fanuc.snpx.internal.numeric_io import NumericIO
|
|
11
|
+
from underautomation.fanuc.snpx.internal.flags import Flags
|
|
11
12
|
from underautomation.fanuc.snpx.internal.current_position import CurrentPosition
|
|
12
13
|
from underautomation.fanuc.snpx.internal.alarm_access import AlarmAccess
|
|
13
14
|
from underautomation.fanuc.common.languages import Languages
|
|
@@ -120,6 +121,9 @@ class SnpxClientBase:
|
|
|
120
121
|
def pm_c__d(self) -> NumericIO:
|
|
121
122
|
return NumericIO(self._instance.PMC_D)
|
|
122
123
|
@property
|
|
124
|
+
def flags(self) -> Flags:
|
|
125
|
+
return Flags(self._instance.Flags)
|
|
126
|
+
@property
|
|
123
127
|
def current_position(self) -> CurrentPosition:
|
|
124
128
|
return CurrentPosition(self._instance.CurrentPosition)
|
|
125
129
|
@property
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import typing
|
|
2
|
+
from underautomation.fanuc.snpx.internal.snpx_writable_assignable_elements_3 import SnpxWritableAssignableElements3
|
|
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.Snpx.Internal import SnpxWritableAssignableIndexableElements as snpx_writable_assignable_indexable_elements_2
|
|
7
|
+
|
|
8
|
+
TValue = typing.TypeVar('TValue')
|
|
9
|
+
TAssignment = typing.TypeVar('TAssignment')
|
|
10
|
+
class SnpxWritableAssignableIndexableElements2(SnpxWritableAssignableElements3[TValue, int, TAssignment], typing.Generic[TValue, TAssignment]):
|
|
11
|
+
def __init__(self, _internal = 0):
|
|
12
|
+
if(_internal == 0):
|
|
13
|
+
self._instance = snpx_writable_assignable_indexable_elements_2()
|
|
14
|
+
else:
|
|
15
|
+
self._instance = _internal
|
|
16
|
+
def create_batch_assignment(self, startIndex: int, count: int) -> TAssignment:
|
|
17
|
+
return self._instance.CreateBatchAssignment(startIndex, count)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import typing
|
|
2
2
|
from underautomation.fanuc.snpx.assignment.string_registers_batch_assignment import StringRegistersBatchAssignment
|
|
3
|
-
from underautomation.fanuc.snpx.internal.
|
|
3
|
+
from underautomation.fanuc.snpx.internal.snpx_writable_assignable_indexable_elements_2 import SnpxWritableAssignableIndexableElements2
|
|
4
4
|
import clr
|
|
5
5
|
import os
|
|
6
6
|
clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
|
|
7
7
|
from UnderAutomation.Fanuc.Snpx.Internal import StringRegisters as string_registers
|
|
8
8
|
|
|
9
|
-
class StringRegisters(
|
|
9
|
+
class StringRegisters(SnpxWritableAssignableIndexableElements2[str, StringRegistersBatchAssignment]):
|
|
10
10
|
def __init__(self, _internal = 0):
|
|
11
11
|
if(_internal == 0):
|
|
12
12
|
self._instance = string_registers()
|
|
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
|
|
File without changes
|
|
@@ -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,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=
|
|
4
|
-
underautomation/fanuc/fanuc_robot.py,sha256=
|
|
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=
|
|
560
|
-
underautomation/fanuc/lib/version.txt,sha256=
|
|
560
|
+
underautomation/fanuc/lib/UnderAutomation.Fanuc.dll,sha256=OIBnYIr0CQ3Ww5Y0A8wMt5OIXzb-WHfPhpzPpu4ArSI,1775104
|
|
561
|
+
underautomation/fanuc/lib/version.txt,sha256=l2HMmaRnSLM_j0TJb-zPvjDyhOcMrNs24mAvC9AusiY,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
|
|
@@ -596,6 +597,7 @@ underautomation/fanuc/rmi/internal/rmi_connect_parameters_base.py,sha256=SXt_dHr
|
|
|
596
597
|
underautomation/fanuc/snpx/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
597
598
|
underautomation/fanuc/snpx/snpx_client.py,sha256=4GYmDMJIXpIYVzqnK8Ylaf1278cwvXD-NBvoDC97dbI,553
|
|
598
599
|
underautomation/fanuc/snpx/assignment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
600
|
+
underautomation/fanuc/snpx/assignment/flag_batch_assignment.py,sha256=a-D4EbRTrukmh1mbjKcQqxu3fiH5wSEyCw20j_cxagk,605
|
|
599
601
|
underautomation/fanuc/snpx/assignment/integer_system_variables_batch_assignment.py,sha256=_CqKZ_Mc8cVt6SgQ3mb_XzsYl5ytK_mAnVWYVeiofL0,679
|
|
600
602
|
underautomation/fanuc/snpx/assignment/numeric_registers_batch_assignment.py,sha256=MjrZjO45-zV-1j5Z8BsH_1vtl5f6fuXwW7Pff0Pjfjk,657
|
|
601
603
|
underautomation/fanuc/snpx/assignment/position_registers_batch_assignment.py,sha256=uxxNH0c-zewLyMpTxLkzQBi0mN_40yOdMnhhpN2Oyjk,749
|
|
@@ -615,10 +617,11 @@ underautomation/fanuc/snpx/internal/current_position.py,sha256=k-zx8rYyM8Rm168jT
|
|
|
615
617
|
underautomation/fanuc/snpx/internal/current_position_request.py,sha256=SDs0O2-xiLuGu-nNSm5YffDGKdYwQg9gHTaEtu5NUMs,740
|
|
616
618
|
underautomation/fanuc/snpx/internal/current_task_status.py,sha256=ZLfkk4St_BYRloXTY6ea397KmT_V1S9WbTlrXGplqN4,641
|
|
617
619
|
underautomation/fanuc/snpx/internal/digital_signals.py,sha256=4qHou12-1p2FQOlAluPobIWSDYFDiTzRhHlCYcQVNPs,1286
|
|
620
|
+
underautomation/fanuc/snpx/internal/flags.py,sha256=uHAIPmTgzoMkby5nYqk2t9HZuew4U5KSPKjYCItW8q4,657
|
|
618
621
|
underautomation/fanuc/snpx/internal/integer_system_variables.py,sha256=vHmcTmrSPuomRBaqwIPeP8yGakFXZYhZt691tBOlVew,761
|
|
619
622
|
underautomation/fanuc/snpx/internal/numeric_io.py,sha256=b-HvHmxmKP5J-jIbs2ofKT6KUo3rLDiqfQoCaweNrqg,1263
|
|
620
|
-
underautomation/fanuc/snpx/internal/numeric_registers.py,sha256=
|
|
621
|
-
underautomation/fanuc/snpx/internal/position_registers.py,sha256=
|
|
623
|
+
underautomation/fanuc/snpx/internal/numeric_registers.py,sha256=bWDg8EFF3CDB2eZLe2iEvT7X9OIw9b3fZCG2zX6ohtE,939
|
|
624
|
+
underautomation/fanuc/snpx/internal/position_registers.py,sha256=igTbyJd5775_D__NxDyW7IgKnfAwN1QM01puQt96yYg,1421
|
|
622
625
|
underautomation/fanuc/snpx/internal/position_system_variables.py,sha256=mTe7HK2HPMfVntEBUhN8FD5ufN1__UcW-TtaZt8Vh-E,1249
|
|
623
626
|
underautomation/fanuc/snpx/internal/real_system_variables.py,sha256=9mDtnO_9zZvHj5AeDh8FFXhyukNMgkGYbujXz5hiRnU,742
|
|
624
627
|
underautomation/fanuc/snpx/internal/robot_alarm.py,sha256=Da5qUaWvhlHxb8vorw8FbdVLnaZUykLJlBqC-5ubN0A,2440
|
|
@@ -628,13 +631,35 @@ underautomation/fanuc/snpx/internal/segment_name.py,sha256=E7ZXuTvBW5vVL1bTEsXrH
|
|
|
628
631
|
underautomation/fanuc/snpx/internal/segment_offset.py,sha256=m9s6Vhcv0h5EUJ_x9CC8lealxJaNuqUmoXbQOoErGe4,555
|
|
629
632
|
underautomation/fanuc/snpx/internal/segment_selector.py,sha256=mfhxzz7FNM_eSJI36v-fDrmAI5r9PuTQngPcXyFvhlg,967
|
|
630
633
|
underautomation/fanuc/snpx/internal/snpx_assignable_elements_2.py,sha256=GijuhlNr9RUHNCxZ8CFoPOdpl5XMXJMp9qXhiVktulY,947
|
|
631
|
-
underautomation/fanuc/snpx/internal/snpx_client_base.py,sha256=
|
|
634
|
+
underautomation/fanuc/snpx/internal/snpx_client_base.py,sha256=KELK2FtB0ojo0zRW_MWAEDIhV68Udwyw1bJz4xwwBHo,5501
|
|
632
635
|
underautomation/fanuc/snpx/internal/snpx_client_internal.py,sha256=wprH_Zo5l5R4v8C3i9iHnFfAvHyOf_Wv9Ho4sKnPdv4,513
|
|
633
636
|
underautomation/fanuc/snpx/internal/snpx_connect_parameters_base.py,sha256=8GP33O49rloy9kZYFK7GQTov5nEhFaS8rQ6YKmujJmk,697
|
|
634
637
|
underautomation/fanuc/snpx/internal/snpx_elements_2.py,sha256=Wu7l4uMsdqDYeV8E7ijmW4M94IioZXuszYeEhOmRqII,574
|
|
635
638
|
underautomation/fanuc/snpx/internal/snpx_writable_assignable_elements_3.py,sha256=FXZFlq_p24HFoBE9Ca8sySaUzBGM8zIfL7uWFXEGXOo,998
|
|
636
|
-
underautomation/fanuc/snpx/internal/
|
|
639
|
+
underautomation/fanuc/snpx/internal/snpx_writable_assignable_indexable_elements_2.py,sha256=weXrXqvB3NQm7Ra_lGUQZciVRdPLOaB4JxRI6hDYQHk,945
|
|
640
|
+
underautomation/fanuc/snpx/internal/string_registers.py,sha256=wV8aEOKF-bXL-L0njTEzXpOKyZfNPSMN6ON5X-STrOg,928
|
|
637
641
|
underautomation/fanuc/snpx/internal/string_system_variables.py,sha256=1rUhxuqwvFTgfJx6qMeXRwbk4nQzeiYNK08LROaZ7k0,754
|
|
642
|
+
underautomation/fanuc/stream_motion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
643
|
+
underautomation/fanuc/stream_motion/stream_motion_client.py,sha256=p2cmaQBu_niWHFwvxZspqOiO0tmP0PobWIFnnvSH5hs,715
|
|
644
|
+
underautomation/fanuc/stream_motion/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
645
|
+
underautomation/fanuc/stream_motion/data/ack_packet.py,sha256=NyQyScoCN0BRFX8wIDB1sS3GkZnHRCW4E4EnzmegEYU,1375
|
|
646
|
+
underautomation/fanuc/stream_motion/data/command_packet.py,sha256=HToqCaR3poLBi3Iomu-R-H7KGy--Q-G-64489ZsLo-s,2523
|
|
647
|
+
underautomation/fanuc/stream_motion/data/data_style.py,sha256=4_P8feGflvIaeSPeRrc0vsECuTfiXgOKVq2FxdtPoQc,305
|
|
648
|
+
underautomation/fanuc/stream_motion/data/io_read_result.py,sha256=rVpped5c9HKgz0jkiNpj-NXdfh25yZ6sufgfNoyPjAM,792
|
|
649
|
+
underautomation/fanuc/stream_motion/data/io_type.py,sha256=cHsxdEyzRhjuzsWrJZqpSGXGfAq83wmTPYw9k3ah7dE,474
|
|
650
|
+
underautomation/fanuc/stream_motion/data/motion_data.py,sha256=xDOvJBOq-utFQOs2qlA-aSKtzDNMm26uUTdc0nxUN_g,4256
|
|
651
|
+
underautomation/fanuc/stream_motion/data/packet_type_from_robot.py,sha256=vss1NQQU6XhIr_qgMKXJi4MGC8sbMqT-D_aTsEwrxtM,349
|
|
652
|
+
underautomation/fanuc/stream_motion/data/packet_type_to_robot.py,sha256=kcgT50esz9NLq3vNma4XiyRnI2gZs4JRQunbpncHmPs,421
|
|
653
|
+
underautomation/fanuc/stream_motion/data/receive_error_event_args.py,sha256=RvcUrRxxMoXhmEh45rGGhEIQxYtHkHI4tQNJkwYPUfo,660
|
|
654
|
+
underautomation/fanuc/stream_motion/data/robot_status.py,sha256=Wpszpvil9n8aGHInfiEf9c7y6RMB_HbxOZcvCxx6CYE,1039
|
|
655
|
+
underautomation/fanuc/stream_motion/data/robot_status_flags.py,sha256=WNTOMnt1IwyPeG8UMnN1MxBWV9hgZIohGmQX7X2N224,463
|
|
656
|
+
underautomation/fanuc/stream_motion/data/state_packet.py,sha256=ex_A6o8lIuFFXgLr_plSSB40wY3Jko4m-E2TV7n-Q0I,1820
|
|
657
|
+
underautomation/fanuc/stream_motion/data/state_received_event_args.py,sha256=X2oW2ahTRp3mNVcOg8cwHIJlvId0cemjNgmnLxSCWTg,629
|
|
658
|
+
underautomation/fanuc/stream_motion/data/threshold_type.py,sha256=3XJks5tSNYkZSs0CX1K5ljKG5G7oE4QKSnHLrusKRxY,365
|
|
659
|
+
underautomation/fanuc/stream_motion/internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
660
|
+
underautomation/fanuc/stream_motion/internal/stream_motion_client_base.py,sha256=6mZlQvBeGXareNvkru4777s6T0uijKYFTvqV1GqSqEw,3354
|
|
661
|
+
underautomation/fanuc/stream_motion/internal/stream_motion_client_internal.py,sha256=QFxmemAvh10rWAqi5DhUHAr05yMAQeOJtiYBx6UQEqc,589
|
|
662
|
+
underautomation/fanuc/stream_motion/internal/stream_motion_connect_parameters_base.py,sha256=QpH2zqcA8bsZIwRqyh16rh6mZ0Tcn2t7iiG-mv3iaGE,1489
|
|
638
663
|
underautomation/fanuc/telnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
639
664
|
underautomation/fanuc/telnet/abort_result.py,sha256=EGLZDU7u6dgJRdeWWN3puifBoFwjL2KuiDhDm9mIBEU,437
|
|
640
665
|
underautomation/fanuc/telnet/add_breakpoint_result.py,sha256=akJu4p_LlB4ZFOKc-umSJgtY6C4r0IYex04bWIgmePw,471
|
|
@@ -675,7 +700,7 @@ underautomation/fanuc/telnet/internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCe
|
|
|
675
700
|
underautomation/fanuc/telnet/internal/telnet_client_base.py,sha256=_MZb_ZPEXkeRKCSjBssyhTGVATFucR0yHYNmRYm4NEU,7574
|
|
676
701
|
underautomation/fanuc/telnet/internal/telnet_client_internal.py,sha256=JJ6vapUoPfroaRj4Dy4JcgHKMFGvTkHPvy8OtHLYTQA,531
|
|
677
702
|
underautomation/fanuc/telnet/internal/telnet_connect_parameters_base.py,sha256=l781dRqPnQOw2R1RsxgTT0J2Am6iw6WU5n6eDmrnwBk,665
|
|
678
|
-
underautomation_fanuc-
|
|
679
|
-
underautomation_fanuc-
|
|
680
|
-
underautomation_fanuc-
|
|
681
|
-
underautomation_fanuc-
|
|
703
|
+
underautomation_fanuc-4.1.0.0.dist-info/METADATA,sha256=eicBP4WmBCpXN-04beb4ud9wb5C5jMetzT9-X8ScBus,6141
|
|
704
|
+
underautomation_fanuc-4.1.0.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
705
|
+
underautomation_fanuc-4.1.0.0.dist-info/top_level.txt,sha256=Ko5oLpVtiQ2okeu3dicHZqNT7g-Y4pHytT7zkT2EjG8,16
|
|
706
|
+
underautomation_fanuc-4.1.0.0.dist-info/RECORD,,
|
|
File without changes
|
{underautomation_fanuc-3.5.0.0.dist-info → underautomation_fanuc-4.1.0.0.dist-info}/top_level.txt
RENAMED
|
File without changes
|