Exemplo n.º 1
0
    def test_set_local_address(self):
        pyads.open_port()
        org_adr = pyads.get_local_address()
        org_netid = org_adr.netid

        # Set netid to specific value
        pyads.set_local_address('0.0.0.0.1.5')
        netid = pyads.get_local_address().netid
        self.assertEqual(netid, '0.0.0.0.1.5')

        # Change netid by String
        pyads.set_local_address('0.0.0.0.1.6')
        netid = pyads.get_local_address().netid
        self.assertEqual(netid, '0.0.0.0.1.6')

        # Change netid by Struct
        pyads.set_local_address(org_adr.netIdStruct())
        netid = pyads.get_local_address().netid
        self.assertEqual(netid, org_netid)

        # Check inadequate netid
        with self.assertRaises(ValueError):
            pyads.set_local_address('1.2.3.a')

        # Check wrong netid datatype
        with self.assertRaises(AssertionError):
            pyads.set_local_address(123)
Exemplo n.º 2
0
    def test_functions_with_closed_port(self):
        # type: () -> None
        """Test pyads functions with no open port."""
        pyads.open_port()
        adr = pyads.get_local_address()
        pyads.close_port()

        self.assertIsNotNone(adr)
        self.assertIsNone(pyads.get_local_address())
        self.assertIsNone(pyads.read_state(adr))
        self.assertIsNone(pyads.read_device_info(adr))
        self.assertIsNone(
            pyads.read_write(adr, 1, 2, pyads.PLCTYPE_INT, 1,
                             pyads.PLCTYPE_INT))
        self.assertIsNone(pyads.read(adr, 1, 2, pyads.PLCTYPE_INT))
        self.assertIsNone(pyads.read_by_name(adr, "hello", pyads.PLCTYPE_INT))
        self.assertIsNone(
            pyads.add_device_notification(adr, "test",
                                          pyads.NotificationAttrib(4),
                                          lambda x: x))
Exemplo n.º 3
0
    def test_functions_with_closed_port(self):
        # type: () -> None
        """Test pyads functions with no open port."""
        pyads.open_port()
        adr = pyads.get_local_address()
        pyads.close_port()

        self.assertIsNotNone(adr)
        self.assertIsNone(pyads.get_local_address())
        self.assertIsNone(pyads.read_state(adr))
        self.assertIsNone(pyads.read_device_info(adr))
        self.assertIsNone(
            pyads.read_write(adr, 1, 2, pyads.PLCTYPE_INT, 1, pyads.PLCTYPE_INT)
        )
        self.assertIsNone(pyads.read(adr, 1, 2, pyads.PLCTYPE_INT))
        self.assertIsNone(pyads.read_by_name(adr, "hello", pyads.PLCTYPE_INT))
        self.assertIsNone(
            pyads.add_device_notification(
                adr, "test", pyads.NotificationAttrib(4), lambda x: x
            )
        )
Exemplo n.º 4
0
    def test_set_local_address(self):
        # type: () -> None
        """Test set_local_address function.

        Skip test on Windows as set_local_address is not supported for Windows.

        """
        if platform_is_linux():
            pyads.open_port()
            org_adr = pyads.get_local_address()
            self.assertIsNotNone(org_adr)
            org_netid = org_adr.netid

            # Set netid to specific value
            pyads.set_local_address("0.0.0.0.1.5")
            netid = pyads.get_local_address().netid
            self.assertEqual(netid, "0.0.0.0.1.5")

            # Change netid by String
            pyads.set_local_address("0.0.0.0.1.6")
            netid = pyads.get_local_address().netid
            self.assertEqual(netid, "0.0.0.0.1.6")

            # Change netid by Struct
            pyads.set_local_address(org_adr.netIdStruct())
            netid = pyads.get_local_address().netid
            self.assertEqual(netid, org_netid)

            # Check raised error on short netid
            with self.assertRaises(ValueError):
                pyads.ads.set_local_address("1.2.3")

            # Check raised error on invalid netid
            with self.assertRaises(ValueError):
                pyads.set_local_address("1.2.3.a")

            # Check wrong netid datatype
            with self.assertRaises(AssertionError):
                pyads.set_local_address(123)
Exemplo n.º 5
0
    def test_set_local_address(self):
        # type: () -> None
        """Test set_local_address function.

        Skip test on Windows as set_local_address is not supported for Windows.

        """
        if platform_is_linux():
            pyads.open_port()
            org_adr = pyads.get_local_address()
            self.assertIsNotNone(org_adr)
            org_netid = org_adr.netid

            # Set netid to specific value
            pyads.set_local_address("0.0.0.0.1.5")
            netid = pyads.get_local_address().netid
            self.assertEqual(netid, "0.0.0.0.1.5")

            # Change netid by String
            pyads.set_local_address("0.0.0.0.1.6")
            netid = pyads.get_local_address().netid
            self.assertEqual(netid, "0.0.0.0.1.6")

            # Change netid by Struct
            pyads.set_local_address(org_adr.netIdStruct())
            netid = pyads.get_local_address().netid
            self.assertEqual(netid, org_netid)

            # Check raised error on short netid
            with self.assertRaises(ValueError):
                pyads.ads.set_local_address("1.2.3")

            # Check raised error on invalid netid
            with self.assertRaises(ValueError):
                pyads.set_local_address("1.2.3.a")

            # Check wrong netid datatype
            with self.assertRaises(AssertionError):
                pyads.set_local_address(123)
Exemplo n.º 6
0
 def test_set_timeout(self):
     # type: () -> None
     """Test timeout function."""
     pyads.open_port()
     self.assertIsNone(pyads.set_timeout(100))
     pyads.open_port()
Exemplo n.º 7
0
 def test_set_timeout(self):
     # type: () -> None
     """Test timeout function."""
     pyads.open_port()
     self.assertIsNone(pyads.set_timeout(100))
     pyads.open_port()
Exemplo n.º 8
0
import cv2
import numpy as np
import serial
import pyads
import time

pyads.open_port()
adr = pyads.AmsAddr('169.254.46.62.1.1', 851)
ser = serial.Serial('COM5', 9600)

ramp_frames = 30
perimeters = []
threshVal = 60
kernel = np.ones((3, 3), np.uint8)
#img=cv2.imread("test0.png",1)

while True:

    print("Waiting...")
    if pyads.read_by_name(adr, 'MAIN.partReadyToRot', pyads.PLCTYPE_BOOL):
        print("Assigned...")
        cam = cv2.VideoCapture(0)
        cam.set(3, 800)
        cam.set(4, 600)

        def get_image():
            # read is the easiest way to get a full image out of a VideoCapture object.
            retval, im = cam.read()
            return im

        for i in range(ramp_frames):
Exemplo n.º 9
0
 def _initADS(self):
     self.adsPort = pyads.open_port()
     self.adsAdr = pyads.get_local_address()
     self.adsAdr.port = 5000