 //**************************************************************************//
                // Bridge
 //**************************************************************************//
                bridge (SimuBridgeToCanOpenHardware,
                        argMap(
                            ref("tcpProxy"),
                            ref(acPlutoGatewayName),
                            ref("linearRailMasterController"),
                            ref("linearRailSlaveController"),                            
                            ref("latchXminusController"),
                            ref("latchXplusController"),
                            ref("onlineClampXminusController"),
                            ref("onlineClampXplusController"),
                            ref("onlineClampYminusController"),
                            ))
                //************************************//
                {//begin description of bridge's children
                //************************************//

                        // tcp Proxy
                        tcpProxy (SimuCanOpenProxy,
                                argMap(
                                    a("portNumber", 50000),
                                    a("fieldBusTimeout", 2000),
                                    a("myClientName","TestBench"),
                                    a("hardwareBootTimeout",1000),
                                ))

                        // can open devices
                        "$acPlutoGatewayName" (SimuAutochangerStandalonePlutoGateway,
                                argMap(
                                    a("nodeID","30"),
                                    a("serialNB","2071"),
                        ))

                        // can open devices
                        linearRailMasterController (SimuAutochangerLinearRailController, 
                                argMap(
                                    a("nodeID","2a"),
                                    a("serialNB","80001881"),
                                    a("plutoGatewayName",acPlutoGatewayName),
                                    aMap("paramsForCurrent", 
                                        [MotorType:10, PositionSensorType:260,PolePairNumber:1,
                                        ContinuousCurrentLimit:7200,OutputCurrentLimit:14400,
                                        ThermalTimeConstantWinding:187,
                                        MaxSpeedInCurrentMode:9140]),
                                    aMap("paramsForProfilePosition", 
                                        [ProfileAcceleration:1207,
                                        ProfileDeceleration:1207,
                                        MaxProfileVelocity:322,
                                        QuickStopDeceleration:1207,
                                        MaxFollowingError:200000,//on verra plus tard
                                        ProfileVelocity:281,
                                        MotionProfileType:0]),
                                    aMap("paramsForHoming",[HomeOffset:0]),
                                    ))
                                    
                            {//begin description of linearRailMasterController's children
                            }//end description of linearRailMasterController's children

                        // can open devices
                        linearRailSlaveController (SimuAutochangerLinearRailController, 
                                argMap(
                                    a("nodeID","2b"),
                                    a("serialNB","80001932"),
                                    a("plutoGatewayName",acPlutoGatewayName),
                                    aMap("paramsForCurrent", 
                                        [MotorType:10, PositionSensorType:1,PolePairNumber:1,
                                        ContinuousCurrentLimit:7200,OutputCurrentLimit:14400,
                                        ThermalTimeConstantWinding:187,
                                        MaxSpeedInCurrentMode:9140]),
                                    aMap("paramsForProfilePosition", 
                                        [ProfileAcceleration:30000,
                                        ProfileDeceleration:30000,
                                        ProfileVelocity:7000,
                                        QuickStopDeceleration:30000,
                                        MaxFollowingError:7000,
                                        MotionProfileType:0]),
                                    aMap("paramsForHoming",[HomeOffset:0]),
                                    ))
                                    
                            {//begin description of linearRailSlaveController's children
                            }//end description of linearRailSlaveController's children



                        latchXminusController (SimuAutochangerLatchController,  //CanOpenEPOS24-3
                                argMap(
                                    a("nodeID","4"),
                                    a("serialNB","84004711"),
                                    a("latchName","latchXminus"),
                                    a("plutoGatewayName",acPlutoGatewayName),
                                    aMap("paramsForCurrent", 
                                        [MotorType:1, PositionSensorType:0,PolePairNumber:2,
                                        ContinuousCurrentLimit:300,OutputCurrentLimit:200,
                                        ThermalTimeConstantWinding:40,
                                        MaxSpeedInCurrentMode:100]),
                                    aMap("paramsForProfilePosition", [MotionProfileType:0]),
                                    aMap("paramsForHoming",[HomeOffset:0]),
                                    ))
                                    
                            {//begin description of latchXminusController's children
                            }//end description of latchXminusController's children

                        // can open devices
                        latchXplusController (SimuAutochangerLatchController,  //CanOpenEPOS24-3
                                argMap(
                                    a("nodeID","5"),
                                    a("serialNB","999XXXX"),
                                    a("latchName","latchXplus"),
                                    a("plutoGatewayName",acPlutoGatewayName),
                                    aMap("paramsForCurrent", 
                                        [MotorType:1, PositionSensorType:0,PolePairNumber:2,
                                        ContinuousCurrentLimit:300,OutputCurrentLimit:200,
                                        ThermalTimeConstantWinding:40,
                                        MaxSpeedInCurrentMode:100]),
                                    aMap("paramsForProfilePosition", [MotionProfileType:0]),
                                    aMap("paramsForHoming",[HomeOffset:0]),
                                    ))
                                    
                            {//begin description of latchXplusController's children
                            }//end description of latchXplusController's children

                        // can open devices
                        onlineClampXminusController (SimuAutochangerOnlineClampController, 
                                argMap(
                                    a("nodeID","3a"),
                                    a("serialNB","79011616"),
                                    a("onlineClampName","onlineClampXminus"),
                                    aMap("paramsForCurrent", 
                                        [MotorType:1, PositionSensorType:0,PolePairNumber:1,
                                        ContinuousCurrentLimit:5000,OutputCurrentLimit:4000,
                                        ThermalTimeConstantWinding:160,
                                        MaxSpeedInCurrentMode:6930]),
                                    aMap("paramsForProfilePosition", 
                                        [ProfileAcceleration:30000,
                                        ProfileDeceleration:30000,
                                        ProfileVelocity:7000,
                                        QuickStopDeceleration:10000,
                                        MaxFollowingError:2000,
                                        MotionProfileType:0]),
                                    aMap("paramsForHoming",
                                        [HomeOffset:0, MaxProfileVelocity:6930,
                                        SpeedForSwitchSearch:100,
                                        SpeedForZeroSearch:10,
                                        HomingAcceleration:1000,
                                        CurrentThresholdHomingMode:500,
                                        HomePosition:0
                                        ]),
                                    ))
                                    
                            {//begin description of onlineClampXminuxController's children
                            }//end description of onlineClampXminusController's children

                        // can open devices
                        onlineClampXplusController (SimuAutochangerOnlineClampController, 
                                argMap(
                                    a("nodeID","3b"),
                                    a("serialNB","xxxx99999"),
                                    a("onlineClampName","onlineClampXplus"),
                                    aMap("paramsForCurrent", 
                                        [MotorType:1, PositionSensorType:0,PolePairNumber:1,
                                        ContinuousCurrentLimit:5000,OutputCurrentLimit:4000,
                                        ThermalTimeConstantWinding:160,
                                        MaxSpeedInCurrentMode:6930]),
                                    aMap("paramsForProfilePosition", 
                                        [ProfileAcceleration:30000,
                                        ProfileDeceleration:30000,
                                        ProfileVelocity:7000,
                                        QuickStopDeceleration:10000,
                                        MaxFollowingError:2000,
                                        MotionProfileType:0]),
                                    aMap("paramsForHoming",
                                        [HomeOffset:0, MaxProfileVelocity:6930,
                                        SpeedForSwitchSearch:100,
                                        SpeedForZeroSearch:10,
                                        HomingAcceleration:1000,
                                        CurrentThresholdHomingMode:500,
                                        HomePosition:0
                                        ]),
                                    ))
                                    
                            {//begin description of onlineClampXpluxController's children
                            }//end description of onlineClampXplusController's children

                        // can open devices
                        onlineClampYminusController (SimuAutochangerOnlineClampController, 
                                argMap(
                                    a("nodeID","3c"),
                                    a("serialNB","xxxx99999"),
                                    a("onlineClampName","onlineClampYminus"),
                                    aMap("paramsForCurrent", 
                                        [MotorType:1, PositionSensorType:0,PolePairNumber:1,
                                        ContinuousCurrentLimit:5000,OutputCurrentLimit:4000,
                                        ThermalTimeConstantWinding:160,
                                        MaxSpeedInCurrentMode:6930]),
                                    aMap("paramsForProfilePosition", 
                                        [ProfileAcceleration:30000,
                                        ProfileDeceleration:30000,
                                        ProfileVelocity:7000,
                                        QuickStopDeceleration:10000,
                                        MaxFollowingError:2000,
                                        MotionProfileType:0]),
                                    aMap("paramsForHoming",
                                        [HomeOffset:0, MaxProfileVelocity:6930,
                                        SpeedForSwitchSearch:100,
                                        SpeedForZeroSearch:10,
                                        HomingAcceleration:1000,
                                        CurrentThresholdHomingMode:500,
                                        HomePosition:0
                                        ]),
                                    ))
                                    
                            {//begin description of onlineClampYminusController's children
                            }//end description of onlineClampYminusController's children



                //************************************//            
                }//end description of bridge's children
                //************************************//
 //**************************************************************************//
                // end of Bridge
 //**************************************************************************//
     
               inclinometer (InclinometerModule, 
                                argMap(
                                    a("plutoGatewayName",acPlutoGatewayName),
               ))

