I develop a BLE application, using Core Bluetooth in my iPhone app.
My iPhone communicates with linux with bleno launched.
The problem is that it cannot work with more than one characteristic or service, though just one characteristic works nice.
Here is my code for iOS and .js code for Node.js:
http://pastebin.com/k5pUrbLt
http://pastebin.com/biCWLmJ3
Thank you!
P.S. That's what i get in console:
2014-07-24 13:18:02.819 lexy[142:60b] didDiscoverPeripheral
2014-07-24 13:18:04.503 lexy[142:60b] didDiscoverServices
2014-07-24 13:18:04.506 lexy[142:60b] D61191C0-FCE8-4F5A-912C-15EE39D927B4
I.e. I successfully discover and connect to the peripheral, but I do not find any characteristics. In that case I have one service with many characteristics.
iOS can work with multiple characteristics and multiple services on a remote device.
Your ObjC code seems okay (1 service with 2 characteristics).
Console output suggests that you send a discoverCharacteristics request but that it hangs and never returns. You could add logging to the didDisconnectPeripheral delegate method to see if there is a disconnect happening.
What you could also do is to look at the logs of the Bluetooth stack and to compare them to how the logs look like if you access a TI Sensor Tag (those tags are the hello world of BLE).
iOS 7.1 instructions for Bluetooth logs are located here, for iOS 8 you'll have to resort to Apple's official way to get the logs (installation of a configuration profile) but their logs contain less information than the ones by BluetoothCompanion.
Apparently, it works on Ubuntu 14.04, but doesn't work on OpenSuse 13.1.
Related
I'm trying to implement Device Single Sign-On for a couple applications I'm "experimenting" with. The apps are in the same WL 6.2 project and are based on the "Form Based Authentication" Tutorial on developers site.
Ignoring the obvious - that I mistyped something - I'm mostly baffled that it works in the iOS Simulator, but not on my iPhone. I realize that working on the iOS simulator is no guarantee for the real device.
Someone showed me a video on this topic using an Android device, so I suppose the large question is - should this work on an iPhone? If so, any thoughts on what to look for?
TIA
-bob-
From the comments, by user3530200:
i was "signing" the apps improperly in XCODE. Once I confirmed that
the ID prefix was the same, it started to work. Item 3 at this link. For reference, step 3 # http://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.2.0/com.ibm.worklight.dev.doc/devref/t_enabling_simple_data_sharing_native_iOS.html
I'm developing a Worklight Application that uses Geofence APIs. everything is working on the Worklight web emulator but I dunno how to test this feature on a mobile device.
How can I test going inside a Geofence radius? can I emulate GPS coordinates?
Thanks,
You can use the emulation capabilities in Android (DDMS perspective when using the Eclipse ADT plugins), or in XCode (for iOS). Note that in Android, the timestamps used when manually giving data points start from midnight for the given date.
As mentioned by Srik in the comment above, there also exist additional applications which you can use to feed in mock geo locations (although you may need to turn on the Allow Mock Locations option in the developer settings area).
I am working on a Chrome packaged app that requires multicast communication over the local network and is specifically targeting Chromebook users. The 'Network Communication' documentation on the packaged app site is outdated and the chrome.socket API documentation is lacking. I was able to get some idea of how to get multicast working by looking through Chrome's 'multicast' sample app (https://github.com/GoogleChrome/chrome-app-samples/tree/master/multicast).
I tested my app by loading it into the Chrome browser on my Mac and everything worked great. I loaded it onto my Chromebook and multicast did not work. I then tried the 'multicast' sample app on my Mac and Chromebook with the same result. The 'multicast' sample app is a chat app. When loaded on both computers on the same network, everything works as expected on the Mac - I can send chat messages out and receive chat messages. On the Chromebook I can send chat messages but not receive them - including the ones that the Chromebook sent.
According to this post - Chrome Sockets API Behaves Differently on Chrome OS (vs. Ubuntu, Windows)? - it looks like Chromebook has a restricted firewall that is blocking UDP packets. I followed the instructions on the post to turn on developer mode and allow UDP packets and that allowed my app to run as expected, but that is not a solution for me. I can't expect Chromebook users to run in developer mode to run my app.
Anyone know if it is possible to allow UDP packets on the Chromebook without going into developer mode? Is there an undocumented permission I can add to my manifest to override the Chromebook UDP restrictions (this seems possible since the 'udp-multicast-membership' permission included in the 'multicast' sample app is undocumented)? This seems like a long shot but chrome.socket.create can be given optional socket options which don't appear to be documented anywhere. Maybe there is something I can add there? And why have Chrome sample apps that don't run on a Chromebook???
---UPDATE---
In case someone is having a similar problem, it looks like this has already been filed as a bug and been looked at just within the past couple of weeks.
https://code.google.com/p/chromium/issues/detail?id=275737
I have no idea when it will actually make its way to a Chromebook update.
Regarding:
I have no idea when it will actually make its way to a Chromebook
update.
usually ChromeOS follows the same release schedule as desktop chrome, with new stable versions coming out about every 6 weeks. But because of the holidays in December when lots of people are on vacation, there is sometimes a hiccup. You can give the dev channel a try and see if the fix showed up there yet: https://support.google.com/chromebook/answer/1086915?hl=en
I have created a APP using GCM which works correctly on Android platform 4.1 and 4.03 (I.e. Gets a RegId and register itself in my server and can even recieve a GCM), but when I start the emulator for android 2.3 (API 10) then the app gets installed but never registered I.E never gets RegId. When I start (install) the application for the first time then it receives a GCM message which I do not understand where it comes from but I can see that the device is not registered in my server. I also used a HTC phone with 2.3.3 android software and stil same result. Can any one see what the problem might be?
On the emulator it should normally not work, because it will not have a google account tied to the device. It is requiered for a device to have a google account and Google Play installed to register for an id.
The phone on the other hand should work.
GCM will Work from Android 2.2.
Refer this tutorial it may help you,
http://androidv5.wordpress.com/2012/08/15/how-to-implement-google-cloud-messaging/
it works fine for me.
Is there a way to test iphone OS 3.0 p2p applications?
Can I run multiple iphone simulator instances? Aperantly no.
Any help?
I put up a detailed post on how to do this a couple weeks ago, so I'll just refer you to it: http://ramin.firoozye.com/2009/06/18/debugging-peer-to-peer-and-wifi-apps-on-the-iphone/
Try to get permission from work or someplace with several computers on a LAN to run several instances. This will let you test network stuff, too.
According to this forum post you will need to test it on two real devices.
You must use 2 hardware devices for testing gamekit p2p connections.
Untested, but you should be able to run two instances of the iPhone Simulator by duplicating it..
Run the simulator as normal for phone 1.
For the second, go to /Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/ and copy (not move) the application somewhere (your Desktop?). When you run the copy, it will ask where the Developer Tools are installed and the application to run. Provide this and it should run a second copy.
Also, perhaps you could test it on both your real phone and the simulator?
I found a solution:
activate tethering on your iPhone
connect your mac with the simulator on it to the phone
Now you can test the gamekit on your sim and your iPhone
(I also have internet-sharing activated on my macbook - but I think the tethering-part is important... oh, this implies that bluetooth is running on the iPhone and the mac, of course)...
I'm pretty happy I found this solution - this was a major drawback...
I try to the same test on my macbook OS5.0 and iPhone 3gs , the iPhone simulator app can see the iPhone device via the app , but can not connected ... does this problem cause the bluetooth device is unauthorized ?
install VMware seem great but too trouble...