                //-------------------------
                // BEGIN Bridge To CHANGER description
                // Bridge
                bridge (SimuBridgeToCanOpenHardware,
                        argMap(
                            ref("tcpProxy"),
                            //carousel CANopen devices
                            ref("clampXminusController"),
                            ref("clampXplusController"),
                            ref("carouselController"),
                            ref("hyttc580"),                            
                            ref("ai814"),
                            ref("pt100"),
                            //autochanger CANopen devices
                            ref(acPlutoGatewayName),
                            ref("linearRailMasterController"),
                            ref("linearRailSlaveController"),                            
                            ref("latchXminusController"),
                            ref("latchXplusController"),
                            ref("onlineClampXminusController"),
                            ref("onlineClampXplusController"),
                            ref("onlineClampYminusController"),
                            ))

                {//begin description of bridgeToChanger's children          

                            // tcp Proxy
                            tcpProxy (SimuCanOpenProxy,
                                argMap(
                                    a("portNumber", 54321),
                                    a("fieldBusTimeout", 2000),
                                    a("myClientName","TestBench"),
                                    a("hardwareBootTimeout",2500), 
                                    ))
                            
                            //Carousel controllers
                            "$clampXminusControllerName" (SimuCarouselClampController,
                                    argMap( 
                                    a("nodeID","1a"),
                                    a("serialNB","79003317"),
                                    aMap("paramsForCurrent", [MotorType:11, PositionSensorType:3,PolePairNumber:8,
                                            ContinuousCurrentLimit:2360,OutputCurrentLimit:4720,
                                            ThermalTimeConstantWinding:160,
                                            MaxSpeedInCurrentMode:25]),
                                    aMap("paramsForProfilePosition", [MotionProfileType:0]),
                                    aMap("paramsForHoming",[HomeOffset:0]),
                                    ))  

                            "$clampXplusControllerName" (SimuCarouselClampController,
                                    argMap( 
                                    a("nodeID","1b"),
                                    a("serialNB","79003313"),
                                    aMap("paramsForCurrent", [MotorType:11, PositionSensorType:3,PolePairNumber:8,
                                            ContinuousCurrentLimit:2360,OutputCurrentLimit:4720,
                                            ThermalTimeConstantWinding:160,
                                            MaxSpeedInCurrentMode:25]),
                                    aMap("paramsForProfilePosition", [MotionProfileType:0]),
                                    aMap("paramsForHoming",[HomeOffset:0]),
                                    ))
                                
                            carouselController (SimuCarouselController,
                                argMap( 
                                a("nodeID","1c"),
                                a("serialNB","7900xxxxx"),
                                aMap("paramsForCurrent", 
                                    [ContinuousCurrentLimit:3440,
                                    OutputCurrentLimit:6880,
                                    MaxSpeedInCurrentMode:2000,
                                    MotorType:10,PolePairNumber:1,
                                    PositionSensorType:1]),
                                aMap("paramsForProfilePosition", 
                                    [MinPositionLimit:-300,
                                    MaxPositionLimit:550000,
                                    MotionProfileType:0]),
                                aMap("paramsForHoming",[HomeOffset:0]),
                                ))
                            
                            // can open devices to read carousel clamps sensors
                            hyttc580 (CanOpenDevice,
                                    argMap(
                                        a("nodeID","1d"),
                                        a("serialNB","44110125008180")))
                            
                            // can open devices to read carousel brakes sensors and temperatures
                            ai814 (SimuCanOpenADC,
                                    argMap(
                                        a("nodeID","1e"),
                                        a("serialNB","c7yyyyyy"),
                                        a("transmissionType","1")))

                            // can open devices to read carousel brakes sensors and temperatures
                            pt100 (CanOpenDevice, 
                                    argMap(
                                        a("nodeID","1f"),
                                        a("serialNB","c7zzzzzz")))

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

                        // autochanger 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

                        // autochanger 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


                         // autochanger can open devices   
                        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

                        // autochanger 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

                        // autochanger 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

                        // autochanger 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

                        // autochanger 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 bridgeToChanger's children
                //----------------------------------------------
                // END Bridge To CHANGER description
                //----------------------------------------------