def get_csharp_variable_declaration(self):
        headless_camel_case_name = self.get_headless_camel_case_name()

        if headless_camel_case_name == self.get_device().get_initial_name():
            headless_camel_case_name += '_'

        return csharp_common.get_csharp_type(self.get_type().split(':')[0], 1), headless_camel_case_name
Пример #2
0
    def get_csharp_source(self):
        type_ = self.get_type()

        def helper(value):
            if type_ == 'bool':
                if value:
                    return 'true'
                else:
                    return 'false'
            elif type_ == 'char':
                return "'{0}'".format(value)
            elif type_ == 'string':
                return '"{0}"'.format(value)
            elif ':bitmask:' in type_:
                return common.make_c_like_bitmask(value)
            elif type_.endswith(':constant'):
                return self.get_value_constant(value).get_csharp_source()
            else:
                return str(value)

        value = self.get_value()

        if isinstance(value, list):
            return 'new {0}[]{{{1}}}'.format(
                csharp_common.get_csharp_type(self.get_type().split(':')[0],
                                              1),
                ', '.join([helper(item) for item in value]))

        return helper(value)
Пример #3
0
    def get_csharp_source(self):
        template = '{type} {headless_camel_case_name}'

        return template.format(
            type=csharp_common.get_csharp_type(self.get_type().split(':')[0],
                                               1),
            headless_camel_case_name=self.get_headless_camel_case_name())
    def get_csharp_source(self):
        type_ = self.get_type()

        def helper(value):
            if type_ == 'bool':
                if value:
                    return 'true'
                else:
                    return 'false'
            elif type_ == 'char':
                return "'{0}'".format(value)
            elif type_ == 'string':
                return '"{0}"'.format(value)
            elif ':bitmask:' in type_:
                return common.make_c_like_bitmask(value)
            elif type_.endswith(':constant'):
                return self.get_value_constant(value).get_csharp_source()
            else:
                return str(value)

        value = self.get_value()

        if isinstance(value, list):
            return 'new {0}[]{{{1}}}'.format(csharp_common.get_csharp_type(self.get_type().split(':')[0], 1), ', '.join([helper(item) for item in value]))

        return helper(value)
    def get_csharp_variable_declaration(self):
        name = self.get_name().headless

        if name == self.get_device().get_initial_name():
            name += '_'

        return csharp_common.get_csharp_type(self.get_type().split(':')[0],
                                             1), name
Пример #6
0
    def get_csharp_variable_declaration(self):
        headless_camel_case_name = self.get_headless_camel_case_name()

        if headless_camel_case_name == self.get_device().get_initial_name():
            headless_camel_case_name += '_'

        return csharp_common.get_csharp_type(self.get_type().split(':')[0],
                                             1), headless_camel_case_name
    def get_csharp_source(self):
        templateA = '{type_} {name}'
        templateB = '{type_}[] {name}'

        if self.get_cardinality() == 1:
            template = templateA
        else:
            template = templateB

        return template.format(type_=csharp_common.get_csharp_type(self.get_type().split(':')[0], 1),
                               name=self.get_name().headless)
def make_callbacks():
    cbs = ''
    cb = """
\t\t/// <summary>
\t\t/// </summary>
\t\tprotected void On{0}(byte[] data_)
\t\t{{
{1}\t\t\tvar handler = {0};
\t\t\tif(handler != null)
\t\t\t{{
\t\t\t\thandler(this{3});
\t\t\t}}
\t\t}}
"""
    cls = device.get_camel_case_name()
    for packet in device.get_packets('callback'):
        name = packet.get_camel_case_name()
        name_upper = packet.get_upper_case_name()
        eles = []
        for element in packet.get_elements('out'):
            eles.append(common.underscore_to_headless_camel_case(element[0]))
        callParams = ", ".join(eles)
        signatureParams = csharp_common.make_parameter_list(packet)
        size = str(get_data_size(packet))

        convs = ''
        conv = '\t\t\t{0} {1} = LEConverter.{2}({3}, data_{4});\n'

        pos = 8
        for element in packet.get_elements('out'):
            csharp_type = csharp_common.get_csharp_type(element)
            cname = common.underscore_to_headless_camel_case(element[0])
            from_type = get_from_type(element)
            length = ''
            if element[2] > 1:
                length = ', ' + str(element[2])
            convs += conv.format(csharp_type, 
                                 cname, 
                                 from_type,
                                 pos,
                                 length)

            pos += common.get_element_size(element)

        if convs != '':
            convs += '\n'

        if callParams != '':
            callParams = ', ' + callParams
        
        cbs += cb.format(name, convs, name_upper, callParams, pos, signatureParams)

    return cbs + "\t}\n}"
Пример #9
0
    def get_csharp_variable_declaration(self):
        name = self.get_name().headless

        if name == self.get_device().get_initial_name():
            name += '_'

        type_ = csharp_common.get_csharp_type(self.get_type().split(':')[0], 1)

        if self.get_cardinality() > 1 and type_ != 'string':
            type_ += '[]'

        return type_, name
Пример #10
0
    def get_csharp_source(self):
        templateA = '{type_} {name}'
        templateB = '{type_}[] {name}'

        if self.get_cardinality() == 1:
            template = templateA
        else:
            template = templateB

        return template.format(type_=csharp_common.get_csharp_type(
            self.get_type().split(':')[0], 1),
                               name=self.get_name().headless)
    def get_csharp_variable_declaration(self):
        name = self.get_name().headless

        if name == self.get_device().get_initial_name():
            name += '_'

        type_ = csharp_common.get_csharp_type(self.get_type().split(':')[0], 1)

        if self.get_cardinality() > 1 and type_ != 'string':
            type_ += '[]'

        return type_, name
Пример #12
0
def make_callbacks():
    cbs = ''
    cb = """
\t\tinternal int Callback{0}(byte[] data_)
\t\t{{
{1}\t\t\t(({0})callbacks[CALLBACK_{2}])({3});
\t\t\treturn {4};
\t\t}}
"""
    cls = device.get_camel_case_name()
    for packet in device.get_packets('callback'):
        name = packet.get_camel_case_name()
        name_upper = packet.get_upper_case_name()
        eles = []
        for element in packet.get_elements('out'):
            eles.append(common.underscore_to_headless_camel_case(element[0]))
        params = ", ".join(eles)
        size = str(get_data_size(packet))

        convs = ''
        conv = '\t\t\t{0} {1} = LEConverter.{2}({3}, data_{4});\n'

        pos = 4
        for element in packet.get_elements('out'):
            csharp_type = csharp_common.get_csharp_type(element)
            cname = common.underscore_to_headless_camel_case(element[0])
            from_type = get_from_type(element)
            length = ''
            if element[2] > 1:
                length = ', ' + str(element[2])
            convs += conv.format(csharp_type, 
                                 cname, 
                                 from_type,
                                 pos,
                                 length)

            pos += common.get_element_size(element)

        if convs != '':
            convs += '\n'
        
        cbs += cb.format(name, convs, name_upper, params, pos)

    return cbs
    def get_csharp_constants(self):
        constant = """
\t\t/// <summary>
\t\t/// </summary>
\t\tpublic const {0} {1}_{2} = {3};
"""
        constants = []
        for constant_group in self.get_constant_groups():
            for constant_item in constant_group.get_items():
                if constant_group.get_type() == 'char':
                    value = "'{0}'".format(constant_item.get_value())
                else:
                    value = str(constant_item.get_value())

                constants.append(constant.format(csharp_common.get_csharp_type(constant_group.get_type(), 1),
                                                 constant_group.get_upper_case_name(),
                                                 constant_item.get_upper_case_name(),
                                                 value))
        return '\n' + ''.join(constants)
Пример #14
0
    def get_csharp_constants(self):
        template = """
\t\t/// <summary>
\t\t/// </summary>
\t\tpublic const {0} {1}_{2} = {3};
"""
        constants = []
        for constant_group in self.get_constant_groups():
            for constant in constant_group.get_constants():
                if constant_group.get_type() == 'char':
                    value = "'{0}'".format(constant.get_value())
                else:
                    value = str(constant.get_value())

                constants.append(
                    template.format(
                        csharp_common.get_csharp_type(
                            constant_group.get_type(), 1),
                        constant_group.get_upper_case_name(),
                        constant.get_upper_case_name(), value))
        return '\n' + ''.join(constants)
    def get_csharp_constants(self):
        template = """
		/// <summary>
		/// </summary>
		public const {0} {1}_{2} = {3};
"""
        constants = []

        for constant_group in self.get_constant_groups():
            for constant in constant_group.get_constants():
                if constant_group.get_type() == 'char':
                    value = "'{0}'".format(constant.get_value())
                elif constant_group.get_type() == 'bool':
                    value = str(constant.get_value()).lower()
                else:
                    value = str(constant.get_value())

                constants.append(template.format(csharp_common.get_csharp_type(constant_group.get_type(), 1),
                                                 constant_group.get_name().upper,
                                                 constant.get_name().upper,
                                                 value))
        return '\n' + ''.join(constants)
    def get_csharp_source(self):
        template = '{type} {headless_camel_case_name}'

        return template.format(type=csharp_common.get_csharp_type(self.get_type().split(':')[0], 1),
                               headless_camel_case_name=self.get_headless_camel_case_name())