本文整理汇总了Golang中github.com/hybridgroup/gobot.On函数的典型用法代码示例。如果您正苦于以下问题:Golang On函数的具体用法?Golang On怎么用?Golang On使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了On函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: main
func main() {
gbot := gobot.NewGobot()
r := raspi.NewRaspiAdaptor("raspi")
button := gpio.NewButtonDriver(r, "button", "11")
led := gpio.NewLedDriver(r, "led", "7")
work := func() {
gobot.On(button.Event("push"), func(data interface{}) {
fmt.Println("button pressed")
led.On()
})
gobot.On(button.Event("release"), func(data interface{}) {
fmt.Println("button released")
led.Off()
})
}
robot := gobot.NewRobot("buttonBot",
[]gobot.Connection{r},
[]gobot.Device{button, led},
work,
)
gbot.AddRobot(robot)
gbot.Start()
}
开发者ID:aryanugroho,项目名称:gobot,代码行数:27,代码来源:raspi_button.go
示例2: main
func main() {
gbot := gobot.NewGobot()
chipAdaptor := chip.NewChipAdaptor("chip")
wiichuck := i2c.NewWiichuckDriver(chipAdaptor, "wiichuck")
work := func() {
gobot.On(wiichuck.Event("joystick"), func(data interface{}) {
fmt.Println("joystick", data)
})
gobot.On(wiichuck.Event("c"), func(data interface{}) {
fmt.Println("c")
})
gobot.On(wiichuck.Event("z"), func(data interface{}) {
fmt.Println("z")
})
gobot.On(wiichuck.Event("error"), func(data interface{}) {
fmt.Println("Wiichuck error:", data)
})
}
robot := gobot.NewRobot("chuck",
[]gobot.Connection{chipAdaptor},
[]gobot.Device{wiichuck},
work,
)
gbot.AddRobot(robot)
gbot.Start()
}
开发者ID:nathany,项目名称:gobot,代码行数:33,代码来源:chip_wiichuck.go
示例3: main
func main() {
gbot := gobot.NewGobot()
a := api.NewAPI(gbot)
a.Start()
// digital
board := edison.NewEdisonAdaptor("edison")
button = gpio.NewGroveButtonDriver(board, "button", "2")
blue = gpio.NewGroveLedDriver(board, "blue", "3")
green = gpio.NewGroveLedDriver(board, "green", "4")
red = gpio.NewGroveLedDriver(board, "red", "5")
buzzer = gpio.NewGroveBuzzerDriver(board, "buzzer", "7")
touch = gpio.NewGroveTouchDriver(board, "touch", "8")
// analog
rotary = gpio.NewGroveRotaryDriver(board, "rotary", "0")
sensor = gpio.NewGroveTemperatureSensorDriver(board, "sensor", "1")
sound = gpio.NewGroveSoundSensorDriver(board, "sound", "2")
work := func() {
Reset()
gobot.On(button.Event(gpio.Push), func(data interface{}) {
TurnOff()
fmt.Println("On!")
blue.On()
})
gobot.On(button.Event(gpio.Release), func(data interface{}) {
Reset()
})
gobot.On(touch.Event(gpio.Push), func(data interface{}) {
Doorbell()
})
gobot.On(rotary.Event("data"), func(data interface{}) {
fmt.Println("rotary", data)
})
gobot.On(sound.Event("data"), func(data interface{}) {
DetectSound(data.(int))
})
gobot.Every(1*time.Second, func() {
CheckFireAlarm()
})
}
robot := gobot.NewRobot("airlock",
[]gobot.Connection{board},
[]gobot.Device{button, blue, green, red, buzzer, touch, rotary, sensor, sound},
work,
)
gbot.AddRobot(robot)
gbot.Start()
}
开发者ID:yargevad,项目名称:gobot-workshop-2016,代码行数:60,代码来源:step8.go
示例4: main
func main() {
gbot := gobot.NewGobot()
e := edison.NewEdisonAdaptor("edison")
button := gpio.NewGroveButtonDriver(e, "button", "2")
work := func() {
gobot.On(button.Event(gpio.Push), func(data interface{}) {
fmt.Println("On!")
})
gobot.On(button.Event(gpio.Release), func(data interface{}) {
fmt.Println("Off!")
})
}
robot := gobot.NewRobot("bot",
[]gobot.Connection{e},
[]gobot.Device{button},
work,
)
gbot.AddRobot(robot)
gbot.Start()
}
开发者ID:aryanugroho,项目名称:gobot,代码行数:27,代码来源:edison_grove_button.go
示例5: main
func main() {
gbot := gobot.NewGobot()
beagleboneAdaptor := beaglebone.NewBeagleboneAdaptor("beaglebone")
button := gpio.NewMakeyButtonDriver(beagleboneAdaptor, "button", "P8_9")
work := func() {
gobot.On(button.Event("push"), func(data interface{}) {
fmt.Println("button pressed")
})
gobot.On(button.Event("release"), func(data interface{}) {
fmt.Println("button released")
})
}
robot := gobot.NewRobot("makeyBot",
[]gobot.Connection{beagleboneAdaptor},
[]gobot.Device{button},
work,
)
gbot.AddRobot(robot)
gbot.Start()
}
开发者ID:aryanugroho,项目名称:gobot,代码行数:26,代码来源:beaglebone_makey_button.go
示例6: main
func main() {
gbot := gobot.NewGobot()
board := edison.NewEdisonAdaptor("edison")
button = gpio.NewGroveButtonDriver(board, "button", "2")
blue = gpio.NewGroveLedDriver(board, "blue", "3")
green = gpio.NewGroveLedDriver(board, "green", "4")
work := func() {
Reset()
gobot.On(button.Event(gpio.Push), func(data interface{}) {
TurnOff()
fmt.Println("On!")
blue.On()
})
gobot.On(button.Event(gpio.Release), func(data interface{}) {
Reset()
})
}
robot := gobot.NewRobot("airlock",
[]gobot.Connection{board},
[]gobot.Device{button, blue, green},
work,
)
gbot.AddRobot(robot)
gbot.Start()
}
开发者ID:yargevad,项目名称:gobot-workshop-2016,代码行数:32,代码来源:step3.go
示例7: obstacle
func (ia *AI) obstacle() {
d := new(Data)
ch := make(chan bool)
gobot.On(ia.buttonObstacle.Event("push"), func(data interface{}) {
d.startPushingTime = time.Now()
log.Println("Le bouton poussoir est enfonce")
ia.sendMessageAI(rocproto.AiCodes_OBSTACLE)
select {
case <-time.After(time.Second * 3):
ia.toggle(true)
log.Println("Ai control")
ia.unlockRobot()
log.Println("Ai releasing Control")
ia.toggle(false)
break
case <-ch:
fmt.Println("c'etait un obstacle passager, retour a la normale")
break
}
})
gobot.On(ia.buttonObstacle.Event("release"), func(data interface{}) {
log.Println("Button poussoir est relache")
ia.sendMessageAI(rocproto.AiCodes_N_OBSTACLE)
ch <- true
})
}
开发者ID:Remote-Oculus-Controller,项目名称:R.O.C-CONTROLS,代码行数:30,代码来源:obstacle.go
示例8: main
func main() {
gbot := gobot.NewGobot()
sparkCore := spark.NewSparkCoreAdaptor("spark", "device_id", "access_token")
led := gpio.NewLedDriver(sparkCore, "led", "D7")
button := gpio.NewButtonDriver(sparkCore, "button", "D5")
work := func() {
gobot.On(button.Event("push"), func(data interface{}) {
led.On()
})
gobot.On(button.Event("release"), func(data interface{}) {
led.Off()
})
}
robot := gobot.NewRobot("spark",
[]gobot.Connection{sparkCore},
[]gobot.Device{button, led},
work,
)
gbot.AddRobot(robot)
gbot.Start()
}
开发者ID:aryanugroho,项目名称:gobot,代码行数:27,代码来源:spark_core_button.go
示例9: main
func main() {
gbot := gobot.NewGobot()
api.NewAPI(gbot).Start()
pebbleAdaptor := pebble.NewPebbleAdaptor("pebble")
pebbleDriver := pebble.NewPebbleDriver(pebbleAdaptor, "pebble")
work := func() {
pebbleDriver.SendNotification("Hello Pebble!")
gobot.On(pebbleDriver.Event("button"), func(data interface{}) {
fmt.Println("Button pushed: " + data.(string))
})
gobot.On(pebbleDriver.Event("tap"), func(data interface{}) {
fmt.Println("Tap event detected")
})
}
robot := gobot.NewRobot("pebble",
[]gobot.Connection{pebbleAdaptor},
[]gobot.Device{pebbleDriver},
work,
)
gbot.AddRobot(robot)
gbot.Start()
}
开发者ID:heupel,项目名称:gobot,代码行数:28,代码来源:pebble.go
示例10: main
func main() {
gbot := gobot.NewGobot()
e := edison.NewEdisonAdaptor("edison")
button := gpio.NewButtonDriver(e, "myButton", "2")
led := gpio.NewLedDriver(e, "myLed", "4")
work := func() {
gobot.On(button.Event("push"), func(data interface{}) {
led.On()
})
gobot.On(button.Event("release"), func(data interface{}) {
led.Off()
})
}
robot := gobot.NewRobot("buttonBot",
[]gobot.Connection{e},
[]gobot.Device{led, button},
work,
)
gbot.AddRobot(robot)
gbot.Start()
}
开发者ID:laibulle,项目名称:jenpi,代码行数:27,代码来源:edison_button_led.go
示例11: TestWiichuckDriverUpdateButtons
func TestWiichuckDriverUpdateButtons(t *testing.T) {
//when data["c"] is 0
chann := make(chan bool)
wii := initTestWiichuckDriver()
wii.data["c"] = 0
wii.updateButtons()
gobot.On(wii.Event(C), func(data interface{}) {
gobot.Assert(t, true, data)
chann <- true
})
<-chann
//when data["z"] is 0
chann = make(chan bool)
wii = initTestWiichuckDriver()
wii.data["z"] = 0
wii.updateButtons()
gobot.On(wii.Event(Z), func(data interface{}) {
gobot.Assert(t, true, data)
chann <- true
})
<-chann
}
开发者ID:katgironpe,项目名称:gobot,代码行数:29,代码来源:wiichuck_driver_test.go
示例12: main
func main() {
gbot := gobot.NewGobot()
// create a ardrone adapter
aAdapter := ardrone.NewArdroneAdaptor("Drone")
// create a leap adaptor to connect to the leap motion via web socket.
lAdapter := leap.NewLeapMotionAdaptor("leap", "127.0.0.1:6437")
c := leapdrone.NewController(lAdapter, aAdapter)
// implement leap worker
leapWorker := func() {
// NOTE: leap motion driver only add message event to it.
gobot.On(c.LDriver.Event("message"), func(data interface{}) {
lp := data.(leap.Frame)
for _, v := range lp.Hands {
// XXX: catch the first hand id and ignore other annoying hands
hand := lb.NewHand(v, 200)
if hand.IsForward() {
fmt.Printf("moving forward\n")
}
if hand.IsBackward() {
fmt.Printf("moving backward\n")
}
if hand.IsRight() {
fmt.Printf("moving right\n")
}
if hand.IsLeft() {
fmt.Printf("moving left\n")
}
if hand.IsUpward() {
fmt.Printf("moving up\n")
}
if hand.IsDownward() {
fmt.Printf("moving down\n")
}
continue
}
})
}
// implement ARDrone worker
droneWorker := func() {
c.ADriver.TakeOff()
gobot.On(c.ADriver.Event("flying"), func(data interface{}) {
gobot.After(3*time.Second, func() {
c.ADriver.Land()
})
})
}
// add a leap robot to gobot
gbot.AddRobot(c.LeapRobot(leapWorker))
// add a ardrone robot to gobot
// TODO: temporarily disable drone robot.
// gbot.AddRobot(c.DroneRobot(droneWorker))
_ = droneWorker
// start
gbot.Start()
}
开发者ID:alienlien,项目名称:leapdrone,代码行数:60,代码来源:example.go
示例13: main
func main() {
gbot := gobot.NewGobot()
board := firmata.NewFirmataAdaptor("arduino", os.Args[1])
// digital devices
button := gpio.NewButtonDriver(board, "button", "2")
blue := gpio.NewLedDriver(board, "blue", "3")
work := func() {
gobot.On(button.Event(gpio.Push), func(data interface{}) {
fmt.Println("On!")
blue.On()
})
gobot.On(button.Event(gpio.Release), func(data interface{}) {
fmt.Println("Off!")
blue.Off()
})
}
robot := gobot.NewRobot("airlock",
[]gobot.Connection{board},
[]gobot.Device{button, blue},
work,
)
gbot.AddRobot(robot)
gbot.Start()
}
开发者ID:yargevad,项目名称:gobot-workshop-2016,代码行数:31,代码来源:step2.go
示例14: main
func main() {
gbot := gobot.NewGobot()
firmataAdaptor := firmata.NewFirmataAdaptor("firmata", "/dev/ttyACM0")
wiichuck := i2c.NewWiichuckDriver(firmataAdaptor, "wiichuck")
work := func() {
gobot.On(wiichuck.Event("joystick"), func(data interface{}) {
fmt.Println("joystick", data)
})
gobot.On(wiichuck.Event("c"), func(data interface{}) {
fmt.Println("c")
})
gobot.On(wiichuck.Event("z"), func(data interface{}) {
fmt.Println("z")
})
gobot.On(wiichuck.Event("error"), func(data interface{}) {
fmt.Println("Wiichuck error:", data)
})
}
robot := gobot.NewRobot("chuck",
[]gobot.Connection{firmataAdaptor},
[]gobot.Device{wiichuck},
work,
)
gbot.AddRobot(robot)
gbot.Start()
}
开发者ID:nathany,项目名称:gobot,代码行数:33,代码来源:firmata_wiichuck.go
示例15: main
func main() {
gbot := gobot.NewGobot()
e := edison.NewEdisonAdaptor("edison")
touch := gpio.NewGroveTouchDriver(e, "touch", "2")
work := func() {
gobot.On(touch.Event(gpio.Push), func(data interface{}) {
fmt.Println("On!")
})
gobot.On(touch.Event(gpio.Release), func(data interface{}) {
fmt.Println("Off!")
})
}
robot := gobot.NewRobot("blinkBot",
[]gobot.Connection{e},
[]gobot.Device{touch},
work,
)
gbot.AddRobot(robot)
gbot.Start()
}
开发者ID:cjqian,项目名称:gobot_toys,代码行数:27,代码来源:edison_grove_touch.go
示例16: main
func main() {
gbot := gobot.NewGobot()
firmataAdaptor := firmata.NewFirmataAdaptor("firmata", "/dev/ttyACM0")
button := gpio.NewMakeyButtonDriver(firmataAdaptor, "button", "2")
led := gpio.NewLedDriver(firmataAdaptor, "led", "13")
work := func() {
gobot.On(button.Event("push"), func(data interface{}) {
led.On()
})
gobot.On(button.Event("release"), func(data interface{}) {
led.Off()
})
}
robot := gobot.NewRobot("makeyBot",
[]gobot.Connection{firmataAdaptor},
[]gobot.Device{button, led},
work,
)
gbot.AddRobot(robot)
gbot.Start()
}
开发者ID:aryanugroho,项目名称:gobot,代码行数:27,代码来源:firmata_makey_button.go
示例17: main
func main() {
gbot := gobot.NewGobot()
chipAdaptor := chip.NewChipAdaptor("chip")
button := gpio.NewButtonDriver(chipAdaptor, "button", "XIO-P6")
led := gpio.NewLedDriver(chipAdaptor, "led", "XIO-P7")
work := func() {
gobot.On(button.Event("push"), func(data interface{}) {
led.On()
})
gobot.On(button.Event("release"), func(data interface{}) {
led.Off()
})
}
robot := gobot.NewRobot("buttonBot",
[]gobot.Connection{chipAdaptor},
[]gobot.Device{button, led},
work,
)
gbot.AddRobot(robot)
gbot.Start()
}
开发者ID:nathany,项目名称:gobot,代码行数:25,代码来源:chip_button_led.go
示例18: main
func main() {
gbot := gobot.NewGobot()
e := edison.NewEdisonAdaptor("edison")
m := mqtt.NewMqttAdaptor("mqtt", "tcp://192.168.0.90:1883", "pump")
lever := gpio.NewButtonDriver(e, "lever", "2")
fault := gpio.NewButtonDriver(e, "fault", "4")
pump := gpio.NewDirectPinDriver(e, "pump", "13")
work := func() {
dgram := url.Values{
"name": {"Four"},
"dispenser_id": {"4"},
"drink_id": {"0"},
"event": {"online"},
"details": {"dispenser"},
}
pumping := false
served := byte(0)
m.On("startPump", func(data []byte) {
if !pumping {
pumping = true
pump.DigitalWrite(1)
served++
dgram.Set("event", "online")
dgram.Set("drink_id", fmt.Sprintf("%v", served))
m.Publish("pumped", []byte(dgram.Encode()))
gobot.After(2*time.Second, func() {
pump.DigitalWrite(0)
pumping = false
})
}
})
gobot.On(lever.Event("push"), func(data interface{}) {
m.Publish("pump", []byte{})
})
m.On("startFault", func(data []byte) {
dgram.Set("event", "error")
m.Publish("fault", []byte(dgram.Encode()))
})
gobot.On(fault.Event("push"), func(data interface{}) {
m.Publish("startFault", []byte{})
})
}
gbot.AddRobot(gobot.NewRobot("brewmachine",
[]gobot.Connection{e, m},
[]gobot.Device{lever, fault, pump},
work,
))
gbot.Start()
}
开发者ID:hybridgroup,项目名称:gobot-demos,代码行数:58,代码来源:pump.go
示例19: main
func main() {
flag.Parse()
// Initialize Intel Edison
edisonAdaptor := edison.NewEdisonAdaptor("edison")
edisonAdaptor.Connect()
lightSensor := gpio.NewGroveLightSensorDriver(edisonAdaptor, "light", *sensorLightPin, *sensorPollingInterval)
lightSensor.Start()
gobot.On(lightSensor.Event("data"), func(data interface{}) {
raw := float64(data.(int))
// convert to lux
resistance := (1023.0 - raw) * 10.0 / raw * 15.0
light = 10000.0 / math.Pow(resistance, 4.0/3.0)
lightUpdated = time.Now()
log.Debugln("illuminance: ", light)
})
soundSensor := gpio.NewGroveSoundSensorDriver(edisonAdaptor, "sound", *sensorSoundPin, *sensorPollingInterval)
soundSensor.Start()
gobot.On(soundSensor.Event("data"), func(data interface{}) {
sound = float64(data.(int))
soundUpdated = time.Now()
log.Debugln("sound level: ", sound)
})
tempSensor := gpio.NewGroveTemperatureSensorDriver(edisonAdaptor, "temp", *sensorTempPin, *sensorPollingInterval)
tempSensor.Start()
gobot.On(tempSensor.Event("data"), func(data interface{}) {
celsius = data.(float64)
fahrenheit = celsius*1.8 + 32
tempUpdated = time.Now()
log.Debugln("temperature: ", celsius)
})
// Initialize prometheus exporter
exporter := NewExporter()
prometheus.MustRegister(exporter)
log.Infof("Listening on: %s", *listenAddress)
http.Handle(*metricPath, prometheus.Handler())
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte(`
<html>
<head>
<title>IoT Edison exporter</title>
</head>
<body>
<h1>Prometheus exporter for sensor metrics from Intel Edison</h1>
<p><a href='` + *metricPath + `'>Metrics</a></p>
</body>
</html>
`))
})
log.Fatal(http.ListenAndServe(*listenAddress, nil))
}
开发者ID:roman-vynar,项目名称:edison_exporter,代码行数:56,代码来源:edison_exporter.go
示例20: main
func main() {
gbot := gobot.NewGobot()
bleAdaptor := ble.NewBLEAdaptor("ble", os.Args[1])
drone := ble.NewBLEMinidroneDriver(bleAdaptor, "drone")
work := func() {
gobot.On(drone.Event("battery"), func(data interface{}) {
fmt.Printf("battery: %d\n", data)
})
gobot.On(drone.Event("status"), func(data interface{}) {
fmt.Printf("status: %d\n", data)
})
gobot.On(drone.Event("flying"), func(data interface{}) {
fmt.Println("flying!")
gobot.After(5*time.Second, func() {
fmt.Println("forwards...")
drone.Forward(10)
})
gobot.After(10*time.Second, func() {
fmt.Println("backwards...")
drone.Backward(10)
})
gobot.After(15*time.Second, func() {
fmt.Println("right...")
drone.Right(10)
})
gobot.After(20*time.Second, func() {
fmt.Println("left...")
drone.Left(10)
})
gobot.After(25*time.Second, func() {
fmt.Println("landing...")
drone.Land()
})
})
gobot.On(drone.Event("landed"), func(data interface{}) {
fmt.Println("landed.")
})
drone.TakeOff()
}
robot := gobot.NewRobot("minidrone",
[]gobot.Connection{bleAdaptor},
[]gobot.Device{drone},
work,
)
gbot.AddRobot(robot)
gbot.Start()
}
开发者ID:yargevad,项目名称:gobot-workshop-2016,代码行数:56,代码来源:3-move.go
注:本文中的github.com/hybridgroup/gobot.On函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论