|
|
|
 |
Today
Guys, looking at that list I realized that theres a lot of unneeded pointers there I added another patch to the review: list looks now like that: for single instance objects: [object header [fla...
Guys, looking at that list I realized that theres a lot of unneeded pointers there I added another patch to the review: list looks now like that: for single instance objects: [object header [flags, name, eventlist, id, [meta flags, meta name, meta eventlist, [metadata]], [uavobjectdata]] and for multi instance objects: [object header [flags, name, eventlist, id, [meta flags, meta name, meta eventlist, [metadata]], num instances, [uavobjectdata]] - - > [uavobjectdata] - - > [uavobject data] – > ... eliminating the following information from each UAVObject instance:
- instance ID (they are sequential anyway) (2 byte)
- pointer to uavobjectdata ( 4 byte )
means for each single instance object we save around 12 byte (I think) and for multi instance objects at least 6 bytes per instance - that adds up! total saving on coptercontrol next is 536 byte which ups the total memory saved to 1304 byte )
UavObjectmanager: Squeeze UAVObject instances closer together and eliminate unneeded id's and pointers - frees again >512 byte on next
UavObjectmanager: Squeeze UAVObject instances closer together and eliminate unneeded id's and pointers - frees again >512 byte on next
Old layout: [object header [flags,id,name,eventlist] ]-> [instance0 -> [instance0-data]] --> [instace1 -> [instance1-data] ]> ... \ -> [metaobject header [flags,id, name, eventlist] ]> [instance0 ...
Old layout: [object header [flags,id,name,eventlist] ]-> [instance0 -> [instance0-data]] --> [instace1 -> [instance1-data] ]> ... \ -> [metaobject header [flags,id, name, eventlist] ]> [instance0 -> [instance0-data (aka metadata)]] so metaobjects had their own "object list" and their own instance-list (with one list element) New layout: [object header [flags, name, eventlist, id, [meta flags, meta name, meta eventlist, [metadata]]] --> [instance0 -> [instance0-data]] --> [instance1 -> [instance1-data] ]-> ... (the fuck, why does crucible make that strikethrough?!? ) each instance stores a pointer to the uavobjectdata , the instance id and a pointer to the next instance so we could save a little bit more because we don#t really need the id (they are numbered sequentially anyway starting at 0, so its enough to know the total number) – actually, I might try to do that maybe I can even add the instance data into the instance object itself instead of using a pointer. another 4 byte per instance
No, there isn't even a per instance meta anyway. There's always a single meta registered when a new object is.
No, there isn't even a per instance meta anyway. There's always a single meta registered when a new object is.
Fixed firmware description in PipX status.
Fixed firmware description in PipX status.
Normally, the commits should be exported from a git tree using git format patch somehash{^,} which will export the author, commit log and the patch into a file. You would then create a local bran...
Normally, the commits should be exported from a git tree using
git format patch somehash{^,}
which will export the author, commit log and the patch into a file. You would then create a local branch:
git checkout -tb newfeaturebranch origin/next
You would then use:
git am theoriginalpatchfile.patch
to apply the saved patch file to your tree. That would be the typical workflow for taking patches. NOTE: Altering the commits is a bit more complicated. If this looks awkward, just don't worry about it. No big deal. If you're going to edit the commits after the fact, you may be able to use something like:
## git am ...
## git rm the files that shouldn't have been added in your tree
git commit --ammend
## you might want to add 'Modified-by: <your@email.addr> to your new commit.
I think that will maintain attribution and commit text. If it doesn't work right, just go with your original strategy.
I don't think it shouldn't cause any issues if you leave out part of the original commit.
I don't think it shouldn't cause any issues if you leave out part of the original commit.
Fixed processing of UAVTalk packets when in transparent com mode.
Fixed processing of UAVTalk packets when in transparent com mode.
@berkely: The Project/Windows USB/OpenPilot-CDC.inf file included in this review is the one you need to feed to windows so that it will recognize the new VCP port. That should be enough to make the...
@berkely: The Project/Windows USB/OpenPilot-CDC.inf file included in this review is the one you need to feed to windows so that it will recognize the new VCP port. That should be enough to make the device 'ready' and give you a new COM port. With the serial number working properly now, the board should also maintain that one new COM port no matter which USB port you plug it into. Note that the VCP port isn't active by default so pointing your GCS at it won't do anything until you activate it in the HwSettings gadget. Default behaviour (as you've seen) is to keep using the HID device so GCS keeps working after the upgrade.
I've only done a basic review so far. The RAM savings are significant! I'll try to find time to give it a proper audit on the weekend. What are the downsides to doing this? Do we have a metadata b...
I've only done a basic review so far. The RAM savings are significant! I'll try to find time to give it a proper audit on the weekend. What are the downsides to doing this? Do we have a metadata blob for every object instance now? Probably a decent tradeoff given how few multi-instance objects we have at this point. Wait, did we already have a metadata object for every instance before?
FYI, the code changes for this review are on the corvuscorax/IntegratedMetadata in case you want to use a better diff tool.
FYI, the code changes for this review are on the corvuscorax/IntegratedMetadata in case you want to use a better diff tool.
Pure whitespace fixups should be in their own separated commit. You can use gnu indent with the '-kr -i8' or you can use the Lindent script from the Linux kernel tree: http://git.kernel.org/?p=lin...
Pure whitespace fixups should be in their own separated commit. You can use gnu indent with the '-kr -i8' or you can use the Lindent script from the Linux kernel tree:
Thursday 17 May
whats the best tool to fix indenting and whitespaces? this file needs an overhaul http://git.openpilot.org/static/m19n6q/2static/images/wiki/icons/emoticons/wink.gif (well, most do)
whats the best tool to fix indenting and whitespaces? this file needs an overhaul (well, most do)
I think I can get rid of the objEntry variable completely here, it looks a bit redundant. Then again the compiler can get rid of it on his own http://git.openpilot.org/static/m19n6q/2static/images/...
I think I can get rid of the objEntry variable completely here, it looks a bit redundant. Then again the compiler can get rid of it on his own 
might be able to remove this check. When I added it, calls with "GenericObjects" hadn#t been type safe yet. Now u'd have to explicitly cast to ObjectList despite dealing with a MetaObject, that is ...
might be able to remove this check. When I added it, calls with "GenericObjects" hadn#t been type safe yet. Now u'd have to explicitly cast to ObjectList despite dealing with a MetaObject, that is not the case anywhere in this file (I hope)
note: the objList does no longer contain MetaObjects. However it must still be possible to iterate over them, therefore we call the iterator on each MetaObject explicitly.
note: the objList does no longer contain MetaObjects. However it must still be possible to iterate over them, therefore we call the iterator on each MetaObject explicitly.
yeah, I think it should be safe to merge. I just got confused because the order of transfer modes (manual, on change, periodic and throttled) is also hardcoded in the uavobjectgenerator, but I thin...
yeah, I think it should be safe to merge. I just got confused because the order of transfer modes (manual, on change, periodic and throttled) is also hardcoded in the uavobjectgenerator, but I think the order there has no actual effect on the generated code. so 197 should be mergeable independently of 198
flight/UAVObjectManager: Represent Metadata as a property of each Object-type as opposed to separate...
flight/UAVObjectManager: Represent Metadata as a property of each Object-type as opposed to separate...
flight/UAVObjectManager: Represent Metadata as a property of each Object-type as opposed to separate UAVObjects - saves over 700 byte of RAM on next!
flight/UAVObjectManager: Represent Metadata as a property of each Object-type as opposed to separate UAVObjects - saves over 700 byte of RAM on next!
Can you tell us what OS you have, and if after this you can still jump between bootloader and firmware.
Can you tell us what OS you have, and if after this you can still jump between bootloader and firmware.
Yes pretty much, that unrecognised device is the new com port, the needed drivers will be part of the installation package, the user will then need to navigate to the proper folder when asked to pr...
Yes pretty much, that unrecognised device is the new com port, the needed drivers will be part of the installation package, the user will then need to navigate to the proper folder when asked to provide a driver. As you saw this isn't a requirement, everything will work as expected besides that com port.
GCS - Changes to the map lib. Preparatory steps to allow WPs to be defined relative to home. GPS fed UAV map item is only visible when diagnostics are enabled. Should make users not be confused by 2 U…
GCS - Changes to the map lib. Preparatory steps to allow WPs to be defined relative to home. GPS fed UAV map item is only visible when diagnostics are enabled. Should make users not be confused by 2 UAVs on screen.
I'm just testing this as a general end user where it will end up I guess. I loaded the latest firmware on a board with the standard BL. Win7 comes up with 3 new devices, a composite, an Input devi...
I'm just testing this as a general end user where it will end up I guess. I loaded the latest firmware on a board with the standard BL. Win7 comes up with 3 new devices, a composite, an Input device and CopterControl for what it doesn't has any drivers (and apparently searches the Windows Update site for it). Windows reports that it was unable to install drivers. So we end up with a CopterControl device which is not "ready", although the GCS can just communicate fine with it.
This is the expected behavior?
I don't see anything wrong with it, and it does appear to make it easier to change the metadata bitmask in the GCS.
I don't see anything wrong with it, and it does appear to make it easier to change the metadata bitmask in the GCS.
Wont you love Microsoft...WTF?!?
Wont you love Microsoft...WTF?!?
@Oleg: could you give this one last test with the latest software on stac/pt-win-vcp-fix? If this works for you, I think we're probably ready to merge this.
@Oleg: could you give this one last test with the latest software on stac/pt-win-vcp-fix? If this works for you, I think we're probably ready to merge this.
|