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)
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))
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 ) )
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)
def test_set_timeout(self): # type: () -> None """Test timeout function.""" pyads.open_port() self.assertIsNone(pyads.set_timeout(100)) pyads.open_port()
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):
def _initADS(self): self.adsPort = pyads.open_port() self.adsAdr = pyads.get_local_address() self.adsAdr.port = 5000