github.com/simpleiot/simpleiot@v0.18.3/sim/node.go (about) 1 package sim 2 3 import ( 4 "log" 5 "time" 6 7 "github.com/simpleiot/simpleiot/api" 8 "github.com/simpleiot/simpleiot/data" 9 ) 10 11 func packetDelay() { 12 time.Sleep(5 * time.Second) 13 } 14 15 // NodeSim simulates a simple node 16 func NodeSim(portal, nodeID string) { 17 log.Printf("starting simulator: ID: %v, portal: %v\n", nodeID, portal) 18 19 sendPoints := api.NewSendPoints(portal, nodeID, "", time.Second*10, false) 20 tempSim := NewSim(72, 0.2, 70, 75) 21 voltSim := NewSim(2, 0.1, 1, 5) 22 voltSim2 := NewSim(5, 0.5, 1, 10) 23 24 for { 25 points := make([]data.Point, 3) 26 points[0] = data.Point{ 27 Type: "temp", 28 Value: tempSim.Sim(), 29 } 30 31 points[1] = data.Point{ 32 Key: "V0", 33 Type: "volt", 34 Value: voltSim.Sim(), 35 } 36 37 points[2] = data.Point{ 38 Key: "V1", 39 Type: "volt", 40 Value: voltSim2.Sim(), 41 } 42 43 err := sendPoints(points) 44 if err != nil { 45 log.Println("Error sending points:", err) 46 } 47 packetDelay() 48 } 49 }