def testPacketSendingTimeout(self): self.server.simulate_connect() self.client.connection.T3 = 0.1 self.assertEqual( self.client.send_and_waitfor_response(secsgem.SecsS01F01()), None)
def testPacketSendingFailed(self): self.server.simulate_connect() self.server.fail_next_send() self.assertEqual( self.client.send_and_waitfor_response(secsgem.SecsS01F01()), None)
def testAreYouThereHandler(self): self.establishCommunication() system_id = self.server.get_next_system_counter() self.server.simulate_packet( self.server.generate_stream_function_packet( system_id, secsgem.SecsS01F01())) packet = self.server.expect_packet(system_id=system_id) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x00) self.assertEqual(packet.header.sessionID, 0x0) self.assertEqual(packet.header.stream, 1) self.assertEqual(packet.header.function, 2)
def testStreamFunctionReceivingUnselected(self): self.server.simulate_connect() self.client.register_stream_function(1, 1, self.handleS01F01) #send s01e01 system_id = self.server.get_next_system_counter() self.server.simulate_packet( self.server.generate_stream_function_packet( system_id, secsgem.SecsS01F01())) packet = self.server.expect_packet(system_id=system_id) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x07) self.assertEqual(packet.header.sessionID, 0xffff)
def testStreamFunctionReceivingUnhandledFunction(self): self.server.simulate_connect() self.performSelect() #send s01e01 system_id = self.server.get_next_system_counter() self.server.simulate_packet( self.server.generate_stream_function_packet( system_id, secsgem.SecsS01F01())) packet = self.server.expect_packet(system_id=system_id) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x00) self.assertEqual(packet.header.sessionID, 0) self.assertEqual(packet.header.stream, 9) self.assertEqual(packet.header.function, 5)
def testSecsPacketWithoutSecsDecode(self): self.server.simulate_connect() packet = self.server.expect_packet(s_type=0x01) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x01) self.assertEqual(packet.header.sessionID, 0xffff) self.server.simulate_packet( secsgem.HsmsPacket( secsgem.HsmsSelectRspHeader(packet.header.system))) system_id = self.server.get_next_system_counter() self.server.simulate_packet( self.server.generate_stream_function_packet( system_id, secsgem.SecsS01F01())) print(self.client)
def testStreamFunctionReceivingExceptingCallback(self): self.server.simulate_connect() f = Mock(side_effect=Exception("testException")) self.client.register_stream_function(1, 1, f) self.performSelect() #send s01e01 system_id = self.server.get_next_system_counter() self.server.simulate_packet( self.server.generate_stream_function_packet( system_id, secsgem.SecsS01F01())) packet = self.server.expect_packet(system_id=system_id) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x00) self.assertEqual(packet.header.sessionID, 0) self.assertEqual(packet.header.stream, 1) self.assertEqual(packet.header.function, 0)
_dataFormat = [ [ secsgem.SVID, secsgem.SVNAME, ] ] _toHost = True _toEquipment = False _hasReply = False _isReplyRequired = False _isMultiBlock = False self.secsStreamsFunctions[1].update({ 12: SecsS01F12_r, }) # In[] if __name__ == '__main__': h = SampleEquipment("127.0.0.1", 5000, False, 0, "sampleequipment") h.enable() code.interact("equipment object is available as variable 'h', press ctrl-d to stop", local=locals()) # In[] msg = secsgem.SecsS01F01() print(msg) # In[] h.send_and_waitfor_response(msg) # In[] h.disable()
# S1F15: OFFline Request # S1F17: Online Request # S2F41: Remote Command # S2F45: Limit # S2F49: Enhanced Remote Command # S7F1: Process Program Inquiy # S7F3: Process Program Send # S2F17: Timer Request # S2F31: Timer Set # In[] if __name__ == '__main__': # Request equipment status VID print(secsgem.SecsS01F01()) print(secsgem.SecsS01F02()) # Request state variable SVID list print(secsgem.SecsS01F11()) print(secsgem.SecsS01F12()) # Request equipment constant ECID print(secsgem.SecsS02F13()) print(secsgem.SecsS02F14()) # Change equipment constant ECID print(secsgem.SecsS02F15()) print(secsgem.SecsS02F16()) # Set trace condition
def testStreamFunctionSending(self): self.server.simulate_connect() self.performSelect() #send s01e01 clientCommandThread = threading.Thread(target=self.client.send_and_waitfor_response, args=(secsgem.SecsS01F01(),), \ name="TestSecsHandlerPassive_testStreamFunctionSending") clientCommandThread.daemon = True # make thread killable on program termination clientCommandThread.start() packet = self.server.expect_packet(function=1) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x00) self.assertEqual(packet.header.sessionID, 0) self.assertEqual(packet.header.stream, 1) self.assertEqual(packet.header.function, 1) self.server.simulate_packet( self.server.generate_stream_function_packet( packet.header.system, secsgem.SecsS01F02())) clientCommandThread.join(1) self.assertFalse(clientCommandThread.isAlive())