2019-04-19 16:46:19 +02:00
|
|
|
#!/usr/bin/python
|
|
|
|
from __future__ import division
|
|
|
|
import os,sys,random, time,datetime
|
|
|
|
from subprocess import Popen
|
|
|
|
|
|
|
|
# Check script argument
|
|
|
|
if len(sys.argv) != 6:
|
2019-05-16 14:32:18 +02:00
|
|
|
print("Usage: "+sys.argv[0]+" <mysqlServerIp> <nbSensors> <nbSensorsFactor> <requestPerSensor> <sendInterval>")
|
2019-04-19 16:46:19 +02:00
|
|
|
exit(1)
|
|
|
|
|
|
|
|
# Init script parameters
|
|
|
|
serverIp=sys.argv[1]
|
|
|
|
nbSensors=int(sys.argv[2])
|
|
|
|
nbSensorsFactor=int(sys.argv[3])
|
|
|
|
effectiveNbSensors=nbSensors*nbSensorsFactor
|
|
|
|
requestPerSensor=int(sys.argv[4])
|
2019-05-16 14:32:18 +02:00
|
|
|
sendInterval=int(sys.argv[5])
|
2019-04-19 16:46:19 +02:00
|
|
|
avgSiteTemp=list()
|
|
|
|
for i in range(0,effectiveNbSensors):
|
|
|
|
avgSiteTemp.append(random.randint(-10,30))
|
|
|
|
|
|
|
|
|
|
|
|
def insert(sensorId, value):
|
|
|
|
""" Send value of sensorId into the database """
|
|
|
|
stamp=int(time.mktime(datetime.datetime.today().timetuple()))
|
|
|
|
insertCMD = "mysql -u user --password=mysql --host="+serverIp+" experiment -e"
|
|
|
|
insertCMD=insertCMD.split()
|
|
|
|
insertCMD.append("INSERT INTO temperature (id,stamp,val) VALUES("+str(sensorId)+","+str(stamp)+","+str(value)+");")
|
|
|
|
Popen(insertCMD) # Run command asynchronously
|
|
|
|
|
|
|
|
def send():
|
|
|
|
""" Send temperature of each sensors into the database """
|
|
|
|
for i in range(0,effectiveNbSensors):
|
|
|
|
insert(i,random.gauss(avgSiteTemp[i], 3))
|
|
|
|
|
|
|
|
|
|
|
|
# Print infos
|
|
|
|
print("Launching clients with:")
|
|
|
|
print(" - Mysql Server IP {:>20}".format(serverIp))
|
|
|
|
print(" - Number of sensors {:>18}".format(effectiveNbSensors))
|
|
|
|
print(" - Number of request per sensor {:>7}".format(effectiveNbSensors))
|
|
|
|
|
|
|
|
# Send data
|
|
|
|
for i in range(0, requestPerSensor):
|
|
|
|
send()
|
2019-05-16 14:32:18 +02:00
|
|
|
time.sleep(sendInterval) # We assume send() take no time
|
2019-04-19 16:46:19 +02:00
|
|
|
|
|
|
|
|