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): 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_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
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}"
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
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\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)
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())