public static void GenerateFiles(string messageDefinitionPath, string outputPath, string language, MessageDefinitions.Data.MavLink mavLink) { String messagesPath = Path.Combine(outputPath, ConstantHelper.MessagesFolderName); System.IO.Directory.CreateDirectory(messagesPath); string serializationOutputPath = Path.Combine(outputPath, ConstantHelper.MessagesSerializationFolderName); System.IO.Directory.CreateDirectory(serializationOutputPath); string messagesCommonPath = Path.Combine(messagesPath, ConstantHelper.CommonName); System.IO.Directory.CreateDirectory(messagesCommonPath); string serializerCommonOutputPath = Path.Combine(serializationOutputPath, ConstantHelper.CommonName); System.IO.Directory.CreateDirectory(serializerCommonOutputPath); TypeInfo messageBaseClassTypeInfo = TypeInfoHelper.GetMessageClassTypeInfo(); TypeInfo messageInterfaceTypeInfo = TypeInfoHelper.GetMessageInterfaceTypeInfo(); TypeInfo messageTypeEnumTypeInfo = TypeInfoHelper.GetMavMessageTypeTypeInfo(); TypeInfo serializerInterfaceTypeInfo = TypeInfoHelper.GetSerializerInterfaceTypeInfo(); TypeInfo serializerFactoryClassTypeInfo = TypeInfoHelper.GetSerializerFactoryTypeInfo(); TypeInfo messageFactoryClassTypeInfo = TypeInfoHelper.GetMessageFactoryTypeInfo(); TypeInfo crcExtraProviderClassTypeInfo = TypeInfoHelper.GetCrcExtraProviderTypeInfo(); CodeGeneratorOptions options = new CodeGeneratorOptions() { BracingStyle = "C" }; CodeDomProvider codeProvider = CreateCodeDomProvider(language); GenerateMessageTypeEnum(codeProvider, options, messageTypeEnumTypeInfo, messagesPath, mavLink.Messages); GenerateCrcExtraProvider(codeProvider, options, crcExtraProviderClassTypeInfo, mavLink.Messages, messagesPath, messageTypeEnumTypeInfo); IDictionary <MessageDefinitions.Data.Enum, TypeInfo> typeInfoByEnum = GetTypeInfoByEnum(mavLink.Enums, ConstantHelper.Namespaces.Root_Messages_Common); GenerateEnumFiles(codeProvider, options, messagesCommonPath, typeInfoByEnum); GenerateMessageClassFiles(codeProvider, options, messagesCommonPath, messageBaseClassTypeInfo, messageTypeEnumTypeInfo, mavLink.Messages, typeInfoByEnum); GenerateSerializerClassFiles(codeProvider, options, serializerCommonOutputPath, mavLink.Messages, serializerInterfaceTypeInfo, messageInterfaceTypeInfo); GenerateSerializerFactory(codeProvider, options, serializerFactoryClassTypeInfo, mavLink.Messages, serializationOutputPath, messageTypeEnumTypeInfo, serializerInterfaceTypeInfo); GenerateMessageFactory(codeProvider, options, messageFactoryClassTypeInfo, mavLink.Messages, messagesPath, messageTypeEnumTypeInfo, messageInterfaceTypeInfo); }
public static void GenerateFiles(string messageDefinitionPath, string outputPath, string language) { MessageDefinitions.Data.MavLink result = MavLinkHelper.LoadMavLink(messageDefinitionPath); GenerateFiles(messageDefinitionPath, outputPath, language, result); }