locked
implement simulatedBumper.y2006.m05.dll RRS feed

  • Question

  • Hello everybody! I tried to create a new bumper service implementing "simulatedBumper.y2006.m05.dll" :

    C:\Microsoft Robotics Studio (1.5)>dssnewservice -s:bumprova -implement:bin/simu
    latedBumper.y2006.m05.dll

    but I got this message:


    *** Error: This Template contains 0 service(s).  You must specify the /s: parame
    ter for each service.

    But It actually include the service "SimulatedBumperService"... What's wrong? Should I use another service?
    Thanx, Alberto


    Wednesday, July 18, 2007 6:27 PM

Answers

  • Hello Alberto. 

    This is an excellent question.  The error message is misleading -- we'll update it in the future.

    In the meantime, let me explain what is going on.

     

    The problem is that there are no operation ports defined in this assembly because it is itself an alternate contract implementation of the RoboticsCommon ContactSensorArrayOperations port.

     

    Let's take a look at this assembly with the DssInfo tool: 

    Code Snippet

    > bin\dssinfo "bin\SimulatedBumper.Y2006.M05.dll"


       Reflecting:                  SimulatedBumper.Y2006.M05.dll
       DSS CONTRACT
       Verbosity                    ShowWarnings
       Assembly:                    c:\msrs\1.5\bin\simulatedbumper.y2006.m05.dll

        Service:                   SimulatedBumperService
          DssContract:              http://schemas.microsoft.com/robotics/simulation/services/2006/05/s
                                    imulatedbumper.html
         
    Namespace:                Microsoft.Robotics.Services.Simulation.Sensors.Bumper
          ServicePrefix:            /SimulatedBumper
          Singleton:                False
          AltContract:              http://schemas.microsoft.com/2006/06/contactsensor.html
          Partner(s):
            CreateAlways            http://schemas.microsoft.com/xw/2005/01/subscriptionmanager.html
          ServicePort:              ContactSensorArrayOperations
            Lookup:                 DsspDefaultLookup
            Drop:                   DsspDefaultDrop
            Get:                    Get
            Replace:                Replace
            Update:                 Update                          ContactSensorUpdated
            Subscribe:              ReliableSubscribe
            Subscribe:              Subscribe
            Get:                    HttpGet
          Referenced Assemblies
              -reference            c:\msrs\1.5\bin\RoboticsCommon.Proxy.dll

     

    We can see that the alternate contract comes from RoboticsCommon.Proxy.dll, and has a slightly different contract: http://schemas.microsoft.com/2006/06/contactsensor.html.

    From this information, I can construct a new command to create a bumper service:

     

    > dssnewservice -s:bumprova -implement:"bin\RoboticsCommon.Proxy.dll" -alt:"http://schemas.microsoft.com/2006/06/contactsensor.html

     

    I believe this will produce the starting point you are looking for.

     

    David

    Wednesday, July 18, 2007 7:46 PM