func main() { flag.Parse() d, err := dev.NewDevice(*device) if err != nil { log.Fatalf("can't new device : %s", err) } ble.SetDefaultDevice(d) // Scan for specified durantion, or until interrupted by user. fmt.Printf("Scanning for %s...\n", *du) ctx := ble.WithSigHandler(context.WithTimeout(context.Background(), *du)) chkErr(ble.Scan(ctx, *dup, advHandler, nil)) }
func main() { flag.Parse() d, err := dev.NewDevice("default") if err != nil { log.Fatalf("can't new device : %s", err) } ble.SetDefaultDevice(d) // Advertise for specified durantion, or until interrupted by user. fmt.Printf("Advertising for %s...\n", *du) ctx := ble.WithSigHandler(context.WithTimeout(context.Background(), *du)) chkErr(ble.AdvertiseNameAndServices(ctx, "Gopher")) }
func main() { flag.Parse() d, err := dev.NewDevice(*device) if err != nil { log.Fatalf("can't new device : %s", err) } ble.SetDefaultDevice(d) // Default to search device with name of Gopher (or specified by user). filter := func(a ble.Advertisement) bool { return strings.ToUpper(a.LocalName()) == strings.ToUpper(*name) } // If addr is specified, search for addr instead. if len(*addr) != 0 { filter = func(a ble.Advertisement) bool { return strings.ToUpper(a.Address().String()) == strings.ToUpper(*addr) } } // Scan for specified durantion, or until interrupted by user. fmt.Printf("Scanning for %s...\n", *sd) ctx := ble.WithSigHandler(context.WithTimeout(context.Background(), *sd)) cln, err := ble.Connect(ctx, filter) if err != nil { log.Fatalf("can't connect : %s", err) } go func() { cln.Disconnected() fmt.Printf("[ %s ] is disconnected \n", cln.Address()) }() fmt.Printf("Discovering profile...\n") p, err := cln.DiscoverProfile(true) if err != nil { log.Fatalf("can't discover profile: %s", err) } // Start the exploration. explore(cln, p) // Disconnect the connection. (On OS X, this might take a while.) fmt.Printf("Disconnecting [ %s ]... (this might take up to few seconds on OS X)\n", cln.Address()) cln.CancelConnection() }
func setup(c *cli.Context) error { if curr.device != nil { return nil } fmt.Printf("Initializing device ...\n") d, err := dev.NewDevice("default") if err != nil { return errors.Wrap(err, "can't new device") } ble.SetDefaultDevice(d) curr.device = d // Optinal. Demostrate changing HCI parameters on Linux. if dev, ok := d.(*linux.Device); ok { return errors.Wrap(updateLinuxParam(dev), "can't update hci parameters") } return nil }
func main() { flag.Parse() d, err := dev.NewDevice(*device) if err != nil { log.Fatalf("can't new device : %s", err) } ble.SetDefaultDevice(d) testSvc := ble.NewService(lib.TestSvcUUID) testSvc.AddCharacteristic(lib.NewCountChar()) testSvc.AddCharacteristic(lib.NewEchoChar()) if err := ble.AddService(testSvc); err != nil { log.Fatalf("can't add service: %s", err) } // Advertise for specified durantion, or until interrupted by user. fmt.Printf("Advertising for %s...\n", *du) ctx := ble.WithSigHandler(context.WithTimeout(context.Background(), *du)) chkErr(ble.AdvertiseNameAndServices(ctx, "Gopher", testSvc.UUID)) }