Exemplo n.º 1
0
 def connect(self):
     current_path = os.getcwd()
     try:
         os.chdir(Utilities.get_gdt_interface_lib_dir())
         self.is_connected = self.gdt_client.Connect(True, 10)
     except:
         raise GDTConnectionError('Connection failed. Please check the configuration file and ensure that the application is running on target.')
     finally:
         os.chdir(current_path)
Exemplo n.º 2
0
 def read_buffer(self, buffer_name: str, buffer_field: str, element_field: str):
     current_path = os.getcwd()
     if self.is_connected is True:
         try:
             os.chdir(Utilities.get_gdt_interface_lib_dir())
             return self.gdt_client.ReadBufferElement(buffer_name, buffer_field, element_field, None, True, 50)
         except System.Collections.Generic.KeyNotFoundException:
             raise ParameterError('buffer_name or buffer_field', f'Either the buffer name ({buffer_name}) or the buffer field ({buffer_field}) is not valid.')
         finally:
             os.chdir(current_path)
     else:
         raise GDTConnectionError('GDT Interface is not connected yet.')
Exemplo n.º 3
0
    def inject_data_item_validity(self, data_item_type: GDTInterfaceDataType, data_item_name: str, validity: bool) -> bool:
        if self.is_connected is True:
            try:
                clr_data_item_type = self.__convert_local_type_to_clr_type(data_item_type)
                is_injected = self.gdt_client.WriteDataItemValidity(clr_data_item_type, data_item_name, validity)

            except:
                raise ParameterError('data_item_type, data_item_name or validity', f'Either the data item type ({data_item_type}), the data item name ({data_item_name}) or the validity ({validity}) is not valid.')

            return is_injected

        else:
            raise GDTConnectionError('GDT Interface is not connected yet.')
Exemplo n.º 4
0
 def disconnect(self):
     current_path = os.getcwd()
     try:
         if self.is_connected is True:
             os.chdir(Utilities.get_gdt_interface_lib_dir())
             self.gdt_client.Disconnet()
             self.is_connected = False
         else:
             raise GDTConnectionError('GDT Interface is not connected yet.')
     except:
         pass
     finally:
         os.chdir(current_path)
Exemplo n.º 5
0
 def inject_struct(self, struct_name: str, struct_field: str, value) -> bool:
     current_path = os.getcwd()
     if self.is_connected is True:
         try:
             os.chdir(Utilities.get_gdt_interface_lib_dir())
             is_injected = self.gdt_client.WriteStructField(struct_name, struct_field, value)
             return is_injected
         except:
             raise ParameterError('struct_name, struct_field or value', f'Either the struct name ({struct_name}), the struct field ({struct_field}) or the value ({value}) is not valid.')
         finally:
             os.chdir(current_path)
     else:
         raise GDTConnectionError('GDT Interface is not connected yet.')
Exemplo n.º 6
0
    def inject_data_item_override(self, data_item_type: GDTInterfaceDataType, data_item_name: str, override: bool) -> bool:
        if self.is_connected is True:
            try:
                clr_data_item_type = self.__convert_local_type_to_clr_type(data_item_type)
                is_injected = self.gdt_client.SetDataItemOverride(clr_data_item_type, data_item_name, override)

            except:
                raise ParameterError('data_item_type, data_item_name or override', f'Either the data item type ({data_item_type}), the data item name ({data_item_name}) or the override ({override}) is not valid.')

            return is_injected

        else:
            raise GDTConnectionError('GDT Interface is not connected yet.')
Exemplo n.º 7
0
    def write_data_item(self, data_item_type: GDTInterfaceDataType, data_item_name: str, value, validity, override) -> bool:
        if self.is_connected is True:
            # Necessary for CLR function parameters compatibility.
            nullable_validity = System.Nullable[System.Boolean](validity)
            nullable_override = System.Nullable[System.Boolean](override)

            try:
                clr_data_item_type = self.__convert_local_type_to_clr_type(data_item_type)
                is_injected = self.gdt_client.WriteDataItem(clr_data_item_type, data_item_name, value, nullable_validity, nullable_override)

            except:
                raise ParameterError('data_item_type, data_item_name or value', f'Either the data item type ({data_item_type}), the data item name ({data_item_name}) or the value ({value}) is not valid.')

            return is_injected

        else:
            raise GDTConnectionError('GDT Interface is not connected yet.')
Exemplo n.º 8
0
    def read_struct(self, struct_name: str, struct_field: str):
        current_path = os.getcwd()
        if self.is_connected is True:
            try:
                os.chdir(Utilities.get_gdt_interface_lib_dir())
                struct = self.gdt_client.ReadStruct(struct_name, None, 50)
                if struct is None:
                    raise StopIteration

                field_value = struct.TryGetValue(struct_field, None)
                if field_value[0] is False:
                    raise StopIteration

                return field_value[1].Value
            except:
                raise ParameterError('struct_name or struct_field', f'Either the struct name ({struct_name}) or the struct field ({struct_field}) is not valid.')
            finally:
                os.chdir(current_path)
        else:
            raise GDTConnectionError('GDT Interface is not connected yet.')
Exemplo n.º 9
0
    def read_data_item(self, data_item_type: GDTInterfaceDataType, data_item_name: str):
        if self.is_connected is True:
            try:
                clr_data_item_type = self.__convert_local_type_to_clr_type(data_item_type)
                value_read = self.gdt_client.ReadDataItem(clr_data_item_type, data_item_name, None, True, True, 0)

            except:
                raise ParameterError('data_item_type or data_item_name',
                                     f'Either the data item type ({data_item_type}) or the data item name ({data_item_name}) is not valid.')

            ret_dict = {
                "value": value_read[1],
                "validity": value_read[2],
                "override": value_read[3]
            }

            return ret_dict

        else:
            raise GDTConnectionError('GDT Interface is not connected yet.')