;; (define-type dim (record mass::int time::int length::int angle::int))

(define-block
  cruise_ctrl


  (
    cruise_ctrl__VehicleSpeed__In1_1_1
  )

  (
    cruise_ctrl__Controller__In1__Out1_1_1
    cruise_ctrl__Controller__In2__Out1_1_1
    cruise_ctrl__Controller__Out1__In1_1_1
    cruise_ctrl__VehiclesDynamics__In1__Out1_1_1
    cruise_ctrl__VehiclesDynamics__In2__Out1_1_1
    cruise_ctrl__VehiclesDynamics__Out1__In1_1_1
    cruise_ctrl__ComputeVelocity__In1_1_1
    cruise_ctrl__ComputeVelocity__Out1_1_1
    cruise_ctrl__Divide__In1_1_1
    cruise_ctrl__Divide__In2_1_1
    cruise_ctrl__Divide__Out1_1_1
    cruise_ctrl__ReferenceSpeed__Out1_1_1
    cruise_ctrl__VehicleMass__Out1_1_1
  )

  (
    (cruise_ctrl__Controller cruise_ctrl__Controller__In1__Out1_1_1 cruise_ctrl__Controller__In2__Out1_1_1 cruise_ctrl__Controller__Out1__In1_1_1)
    (cruise_ctrl__VehiclesDynamics cruise_ctrl__VehiclesDynamics__In1__Out1_1_1 cruise_ctrl__VehiclesDynamics__In2__Out1_1_1 cruise_ctrl__VehiclesDynamics__Out1__In1_1_1)
  )

  (
    (- cruise_ctrl__ReferenceSpeed__Out1_1_1 (mk-record 0 -1 1 0))
    (- cruise_ctrl__VehicleMass__Out1_1_1 (mk-record 1 0 0 0))
    (- cruise_ctrl__VehicleSpeed__In1_1_1 (mk-record 0 -1 1 0))

    (- cruise_ctrl__ComputeVelocity__Out1_1_1 (increment cruise_ctrl__ComputeVelocity__In1_1_1 1 1))
    (- cruise_ctrl__Divide__Out1_1_1  (+ cruise_ctrl__Divide__In1_1_1 (inverse cruise_ctrl__Divide__In2_1_1)))
    
    (- cruise_ctrl__VehiclesDynamics__In1__Out1_1_1 cruise_ctrl__ComputeVelocity__Out1_1_1)
    (- cruise_ctrl__VehicleSpeed__In1_1_1 cruise_ctrl__ComputeVelocity__Out1_1_1)
    (- cruise_ctrl__Controller__In2__Out1_1_1 cruise_ctrl__ComputeVelocity__Out1_1_1)
    (- cruise_ctrl__Divide__In1_1_1 cruise_ctrl__VehiclesDynamics__Out1__In1_1_1)
    (- cruise_ctrl__Controller__In1__Out1_1_1 cruise_ctrl__ReferenceSpeed__Out1_1_1)
    (- cruise_ctrl__Divide__In2_1_1 cruise_ctrl__VehicleMass__Out1_1_1)
    (- cruise_ctrl__VehiclesDynamics__In2__Out1_1_1 cruise_ctrl__Controller__Out1__In1_1_1)
    (- cruise_ctrl__ComputeVelocity__In1_1_1 cruise_ctrl__Divide__Out1_1_1)
  )
)