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

(define-block
  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__Controller__Error__In1_1_1
    cruise_ctrl__Controller__Error__In2_1_1
    cruise_ctrl__Controller__Error__Out1_1_1
    cruise_ctrl__Controller__IntegralGain__In1_1_1
    cruise_ctrl__Controller__IntegralGain__Out1_1_1
    cruise_ctrl__Controller__IntegralGain__Constant_1_1
    cruise_ctrl__Controller__PastHistory__In1_1_1
    cruise_ctrl__Controller__PastHistory__Out1_1_1
    cruise_ctrl__Controller__ProportionalGain__In1_1_1
    cruise_ctrl__Controller__ProportionalGain__Out1_1_1
    cruise_ctrl__Controller__ProportionalGain__Constant_1_1
    cruise_ctrl__Controller__Saturation__In1_1_1
    cruise_ctrl__Controller__Saturation__Out1_1_1
    cruise_ctrl__Controller__TotalControlSignal__In1_1_1
    cruise_ctrl__Controller__TotalControlSignal__In2_1_1
    cruise_ctrl__Controller__TotalControlSignal__Out1_1_1
  )

  (
  )

  (
    (- cruise_ctrl__Controller__Out1__In1_1_1 (mk-record 0 0 0 0))

    (- cruise_ctrl__Controller__Error__Out1_1_1 cruise_ctrl__Controller__Error__In1_1_1)
    (- cruise_ctrl__Controller__Error__In1_1_1 cruise_ctrl__Controller__Error__In2_1_1)
    (- cruise_ctrl__Controller__IntegralGain__Out1_1_1 (+ cruise_ctrl__Controller__IntegralGain__In1_1_1 cruise_ctrl__Controller__IntegralGain__Constant_1_1))
    (- cruise_ctrl__Controller__PastHistory__Out1_1_1 (increment cruise_ctrl__Controller__PastHistory__In1_1_1 1 1))
    (- cruise_ctrl__Controller__ProportionalGain__Out1_1_1 (+ cruise_ctrl__Controller__ProportionalGain__In1_1_1 cruise_ctrl__Controller__ProportionalGain__Constant_1_1))
    (- cruise_ctrl__Controller__Saturation__Out1_1_1 cruise_ctrl__Controller__Saturation__In1_1_1)
    (- cruise_ctrl__Controller__TotalControlSignal__Out1_1_1 cruise_ctrl__Controller__TotalControlSignal__In1_1_1)
    (- cruise_ctrl__Controller__TotalControlSignal__In1_1_1 cruise_ctrl__Controller__TotalControlSignal__In2_1_1)
    
    (- cruise_ctrl__Controller__Saturation__In1_1_1 cruise_ctrl__Controller__TotalControlSignal__Out1_1_1)
    (- cruise_ctrl__Controller__Error__In2_1_1 cruise_ctrl__Controller__In2__Out1_1_1)
    (- cruise_ctrl__Controller__Out1__In1_1_1 cruise_ctrl__Controller__Saturation__Out1_1_1)
    (- cruise_ctrl__Controller__IntegralGain__In1_1_1 cruise_ctrl__Controller__PastHistory__Out1_1_1)
    (- cruise_ctrl__Controller__TotalControlSignal__In1_1_1 cruise_ctrl__Controller__IntegralGain__Out1_1_1)
    (- cruise_ctrl__Controller__Error__In1_1_1 cruise_ctrl__Controller__In1__Out1_1_1)
    (- cruise_ctrl__Controller__TotalControlSignal__In2_1_1 cruise_ctrl__Controller__ProportionalGain__Out1_1_1)
    (- cruise_ctrl__Controller__ProportionalGain__In1_1_1 cruise_ctrl__Controller__Error__Out1_1_1)
    (- cruise_ctrl__Controller__PastHistory__In1_1_1 cruise_ctrl__Controller__Error__Out1_1_1)
  )
)