Example #1
0
    def restore_alarm(
        self,
        event_code,
        transmitter_time=None,
        reference=None,
        transmitter_area=None,
        section=None,
        section_text=None,
        detector=None,
        detector_text=None,
        additional_info=None,
        position=None,
    ) -> AlarmResponse:
        """
        Restores an alarm in the receiver.

        :param str event_code: The event code of the alarm.
        :param str transmitter_time: Time of the device or system sending the alarm
        :param str reference:  A reference that will show up in logs on the
            alarm receiver.
        :param str transmitter_area:  Can be used to control different action at
            the alarm operator on the same transmitter and event_code.
        :param str section:  Section ID
        :param str section_text: Section Description
        :param str detector: Detector ID
        :param str detector_text: Detector Description
        :param str|dict|list|set|tuple additional_info: Extra information about alarm
        :param str position: Position data

        :return: :class:`AlarmResponse` from alarm receiver

        .. todo::
            Is all the extra fields necessary on alarm restore?

        """
        alarm_request = AlarmRequest(
            event_code=event_code,
            transmitter_type=self.transmitter_type,
            transmitter_code=self.transmitter_code,
            authentication=self.authentication,
            receiver=self.receiver_id,
            alarm_type="RE",
            transmitter_time=transmitter_time,
            reference=reference,
            transmitter_area=transmitter_area,
            section=section,
            section_text=section_text,
            detector=detector,
            detector_text=detector_text,
            additional_info=additional_info,
            position=position,
        )
        logger.info(f"Sending restore alarm request: {alarm_request}")

        return self._send_alarm(alarm_request)
Example #2
0
def test_alarm_request_additional_info_dict_to_string():

    alarm = AlarmRequest(
        event_code="AL",
        authentication="123456678",
        additional_info={"test": "test", "test2": 1},
        transmitter_code="IK00001",
        transmitter_type="SV001",
        receiver="Test",
    )

    assert alarm.additional_info_text == "test: test \r\ntest2: 1 \r\n"
Example #3
0
def test_alarm_request_additional_info_list_to_string_max_length():
    # create a dict that would be longer than 2000 chars
    test_list = list()
    for x in enumerate(range(0, 2000)):
        test_list.append(str(x))

    assert len(str(test_list)) > 2000

    alarm = AlarmRequest(event_code="AL", authentication="123456678",
        additional_info=test_list, transmitter_code="IK00001", transmitter_type="SV001",
        receiver="Test", )

    assert len(alarm.additional_info_text) == 1990
Example #4
0
def test_alarm_request_additional_info_string_max_length():

    test_string = "{:<2200}".format("Teststring")
    assert len(test_string) > 2000

    alarm = AlarmRequest(
        event_code="AL",
        authentication="123456678",
        additional_info=test_string,
        transmitter_code="IK00001",
        transmitter_type="SV001",
        receiver="Test",
    )

    assert len(alarm.additional_info_text) == 1997