dsuarezv / mavlink.net

A better MavLink object generation for C#. Richer message classes are generated from the object definitions.
38 stars 35 forks source link

`UasMessage` Could Not Be Found #14

Closed Jesse-Millwood closed 8 years ago

Jesse-Millwood commented 8 years ago

I am using mono and monodevelop to generate the code on Linux. I opened the solution in monodevelop and built it. It built with no errors.

I then ran mavlinkgen as follows:

cd ~/MAVLinkGenDir/mavlink.net/mavlinkgen/bin/Debug
mono mavlinkgen.exe --output="~/MAVTestProject/GeneratedMessages.cs" "~/MAVLinkGenDir/mavlink/message_definitions/v1.0/common.xml"

This generates the 28791 line GeneratedMessages.cs file just fine. But I was perusing through the code and found that the classes that inherited from UasMessage threw an error because they could not find the UasMessage class. I searched through the generated code and could not find it either. Am I missing something or does this work just fine on Windows with Visual Studio?

Is this something that I have to define?

Great work though! I am kind of new to this, any help would be appreciated. Thanks

BTBlueSkies commented 8 years ago

Hey man... you have to read through the solution (VS solution file .. the .sln and .proj files) to see what is needed. It's been a while, but I believe the build output from one of the projects is needed for the input to the other... or xml definitions, or such.

If you take about an hour and read through the solution, following the dependencies, you will find the right answer.

Mono will through a curve into the situation, as the single biggest difference between VS and MONO are the build artifacts. I would suggest you get a free version of studio on windows, and learn how the project is assembled, and then migrate it to mono. I won't be hard.. but it will take some time.

I always encourage those that are 'new to this' to dig in. I am not new to this, and I have learned that you HAVE to 'dig in' and become failure with the code base, except for the rare cases you have a nicely made API for you :). Even when I review my own code years later.. I have to 'dig in for way longer than I expected' before I figure out what is up.

Good Luck.

On Mon, Nov 30, 2015 at 5:19 PM, Jesse-Millwood notifications@github.com wrote:

I am using mono and monodevelop to generate the code on Linux. I opened the solution in monodevelop and built it. It built with no errors.

I then ran mavlinkgen as follows:

cd ~/MAVLinkGenDir/mavlink.net/mavlinkgen/bin/Debug mono mavlinkgen.exe --output="~/MAVTestProject/GeneratedMessages.cs" "~/MAVLinkGenDir/mavlink/message_definitions/v1.0/common.xml"

This generates the 28791 line GeneratedMessages.cs file just fine. But I was perusing through the code and found that the classes that inherited from UasMessage threw an error because they could not find the UasMessage class. I searched through the generated code and could not find it either. Am I missing something or does this work just fine on Windows with Visual Studio?

Is this something that I have to define?

Great work though! I am kind of new to this, any help would be appreciated. Thanks

— Reply to this email directly or view it on GitHub https://github.com/dsuarezv/mavlink.net/issues/14.

dsuarezv commented 8 years ago

Hey,

you need to overwrite the GeneratedMessages.cs file inside the mavlink.net project when generating.

Then rebuild that project and it will compile everything with the new definitions.