All about manifests


(jon: my current understanding -- prone to change!)

 

A manifest is used to describe a robot -- its hardware and the software services it supports.

 

Manifests can be layered in the sense that a manifest can describe a vehicle which incorporates a drive system and some sensors, each described by their own manifest. Equally, the drive system is a manifest that calls on manifests for motors.

 

An alternative seems to be to do direct configuration in VPL interface. This seems to create some XML files in program directory which capture the config.

 

What I can't figure out is whether it is possible to take these and turn them into manifests. If possible, this would make it easy to grab a particular config and then reuse it later. The manifest files I looked at look complex to create, although might be easy to copy and hack to tweak.

 

(A current motivation is that I can't get any of the NXT manifests to work, and I suspect it might be simply that the COM port doesn't match my Bluetooth config. But there doesn't seem to be any easy half way between using the supplied manifests and direct config. (but see below))

 

 

 

Paths

I discovered if you choose 'Use a manifest' > Import, then hover your mouse over a manifest in the list, then it will show the path to the manifest file. The 'normal' place seems to be %install%samplesconfig but seems to be able to pick up manifests from anywhere in the %install% folder.

 

As a quick test I made a copy of a manifest, renamed it, moved it to another folder, and hacked it slightly and it was picked up OK (but only after quit and restart of VPL).

 

 

I also tried the obvious thing of putting a manifest in the project/program folder and seeing if it would be picked up from there -- but no dice. Which is a bit rubbish because would make sense to be able to override system things with local versions.

 

On the other hand, if you import a manifest from somewhere standard, it seems to generate local copies in project folder. Then DSS may actually use this local copy at run time. I've found that I have connection problems when using NXT manifests but I can get round them with this bit of magic:

  1. Import a standard manifest like NXT.Tribot.manifest
  2. Quit VPL
  3. Use a text editor on the project copy of 'lego.nxt.brick (LEGO.NXT.TriBot.Manifest).xml'
  4. Change the com port from 0 to eg to 4 and save
  5. Restart VPL and run

I think you do need to quit and restart VPL else doesn't pick up the changed value.