func (this *ZIOBoardDevice) readDHT22(pin byte) (value se.ValueMap, err error) { valuestr, err := this.board.Send([]byte{CMD_READ_DHT22, pin}) if err != nil { return } log.Println("readDHT22", valuestr, err) values := strings.Split(valuestr, ",") if len(values) > 1 { value = se.NewValueMap(values[1]) value["temp"] = values[1] value["hum"] = values[0] } else { value = se.NewValueMap("novalue") } return }
func (this *ZIOBoardDevice) GetValue(address string) (value se.ValueMap, err error) { value = se.NewValueMap("") // if !this.OK() { // err = fmt.Errorf("arduino device %s is in error state. %s", address, value) // return // } if pin, ok := this.pins[address]; ok { if pin.mode == MODE_INPUT { if pin.chType == "dht22" { value, err = this.readDHT22(pin.pin) return } } } return }
func (this *FirmataDevice) GetValue(address string) (se.ValueMap, error) { return se.NewValueMap(""), nil }