# horst T controller for humidity cell
# serial settings: 9600 baud/8 bits/parity even/1 stop
# special binary protocol, byte order is inversed! (float3 means byte 0 is at position 3)

namespace eval vaisala {} {
}

proc stdConfig::vaisala {{label ""} {temp_path "/t"}} {
  if {$label eq ""} {
    variable name
    set label $name
  }

  controller std "\r\n"
  prop startcmd "vers"

  obj Vaisala_hmt330 rd
  prop readcmd "send"
  prop update vaisala::update
  kids $label {
    node tpath -text par $temp_path
    node td upd
    #node tdf upd :# taupunkt ueber eis
  }
}

proc vaisala::update {} {
  lassign [sct result] td tdf
  updateval [sct]/td $td
  # updateval [sct]/tdf $tdf
  set p0 [hcell::psat $td]
  set p1 [hcell::psat [hvali [hval [sct]/tpath]]]
  sct update [expr min(120., 100.0 * $p0 / $p1)]
  return idle
}
