我们正在尝试将TCP流中的值插入到RRDTool数据库中。 即使RRDTool接受第一个值,但下一个值不是。 我们得到错误:转换为浮动不完整:尾部 我们的客户代码是:
#!/usr/bin/env python
import socket
import Adafruit_BBIO.GPIO as GPIO
import Adafruit_BBIO.ADC as ADC
import time
import datetime
TCP_IP = '192.168.1.138'
TCP_PORT = 5005
BUFFER_SIZE = 1024
sensor_pin='P9_40'
light_pin='p8_10'
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
ADC.setup()
GPIO.setup(light_pin, GPIO.OUT)
while True:
reading = ADC.read(sensor_pin)
millivolts = reading * 1800
data = (millivolts-500)/10
data = round(data,2)
MESSAGE = str(data)
s.send(MESSAGE)
time.sleep(10)
s.close()
服务器端是这样的(只有tcp连接部分)
while True:
input=conn.recv(BUFFER_SIZE)
if input:
input = input.replace('\r\n','')
input = input.rstrip('\r|\n')
temp1=float(input)
x=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
y=input
stream.write(dict(x=x, y=y))
rrdtool.update('database/temp.rrd','N:input')
print temp1
conn.close()
stream.close()
我们还尝试将输入值转换为float(temp1)并将其输入到数据库中,但这也不起作用。 (同样的错误)
我们怀疑它与回车或换行有关,但到目前为止还无法找到答案。
欢迎任何提示!
答案 0 :(得分:0)
找到答案: 使用以下代码行将数据输入数据库: rrdtool.update(' database / temp.rrd',' N:%s'%输入)