Пример #1
0
    def testReceivingS01F13(self):
        self.server.simulate_connect()

        system_id = self.server.get_next_system_counter()
        self.server.simulate_packet(
            secsgem.HsmsPacket(secsgem.HsmsSelectReqHeader(system_id)))

        packet = self.server.expect_packet(system_id=system_id)

        self.assertIsNot(packet, None)
        self.assertEqual(packet.header.sType, 0x02)
        self.assertEqual(packet.header.sessionID, 0xffff)

        self.assertEqual(self.client.communicationState.current, "WAIT_CRA")

        packet = self.server.expect_packet(function=13)

        self.assertIsNot(packet, None)
        self.assertEqual(packet.header.sType, 0x00)
        self.assertEqual(packet.header.sessionID, 0x0)
        self.assertEqual(packet.header.stream, 0x01)
        self.assertEqual(packet.header.function, 0x0d)

        self.assertEqual(self.client.communicationState.current, "WAIT_CRA")

        self.server.simulate_packet(
            self.server.generate_stream_function_packet(
                packet.header.system, secsgem.SecsS01F14([0])))

        self.assertEqual(self.client.communicationState.current,
                         "COMMUNICATING")
Пример #2
0
    def testDeselectWhileDisconnecting(self):
        self.server.simulate_connect()

        system_id = self.server.get_next_system_counter()
        self.server.simulate_packet(
            secsgem.HsmsPacket(secsgem.HsmsSelectReqHeader(system_id)))

        packet = self.server.expect_packet(system_id=system_id)

        self.assertIsNot(packet, None)
        self.assertEqual(packet.header.sType, 0x02)
        self.assertEqual(packet.header.sessionID, 0xffff)

        # set the connection to disconnecting by brute force
        self.client.connection.disconnecting = True

        system_id = self.server.get_next_system_counter()
        self.server.simulate_packet(
            secsgem.HsmsPacket(secsgem.HsmsDeselectReqHeader(system_id)))

        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 testSelection(self):
        self.server.simulate_connect()

        self.server.simulate_packet(secsgem.HsmsPacket(secsgem.HsmsSelectReqHeader(self.server.get_next_system_counter())))
        self.assertIsNotNone(self.server.expect_packet(s_type=2))

        self.assertEqual(self.client.connectionState.state, 'CONNECTED_SELECTED')
Пример #4
0
    def performSelect(self):
        # select
        system_id = self.server.get_next_system_counter()
        self.server.simulate_packet(
            secsgem.HsmsPacket(secsgem.HsmsSelectReqHeader(system_id)))

        packet = self.server.expect_packet(system_id=system_id)

        self.assertIsNot(packet, None)
        self.assertEqual(packet.header.sType, 0x02)
        self.assertEqual(packet.header.sessionID, 0xffff)
Пример #5
0
    def establishCommunication(self):
        self.server.simulate_connect()

        system_id = self.server.get_next_system_counter()
        self.server.simulate_packet(
            secsgem.HsmsPacket(secsgem.HsmsSelectReqHeader(system_id)))

        packet = self.server.expect_packet(system_id=system_id)

        packet = self.server.expect_packet(function=13)

        self.server.simulate_packet(
            self.server.generate_stream_function_packet(
                packet.header.system, secsgem.SecsS01F14([0])))
Пример #6
0
    def testConnection(self):
        self.server.simulate_connect()

        system_id = self.server.get_next_system_counter()
        self.server.simulate_packet(
            secsgem.HsmsPacket(secsgem.HsmsSelectReqHeader(system_id)))

        packet = self.server.expect_packet(system_id=system_id)

        self.assertIsNot(packet, None)
        self.assertEqual(packet.header.sType, 0x02)
        self.assertEqual(packet.header.sessionID, 0xffff)

        self.assertEqual(self.client.communicationState.current, "WAIT_CRA")
Пример #7
0
    def testSelectedDisconnect(self):
        self.server.simulate_connect()

        self.server.simulate_packet(
            secsgem.HsmsPacket(
                secsgem.HsmsSelectReqHeader(
                    self.server.get_next_system_counter())))
        self.assertIsNotNone(self.server.expect_packet(s_type=2))

        self.server.simulate_disconnect()

        self.assertEqual(
            self.client.connectionState.state,
            secsgem.hsms.connectionstatemachine.STATE_NOT_CONNECTED)