Zeo Mobile, intermezzo
So why am I hacking the Zeo, or [hacking / learning how it works] ?
I think there are two ways of acquiring new skills and learning things.
The first is practice and failing, and demonstration. Which sort of supports the idea that you learn something best when you try to explain it to other people.
The second is curiosity, or scratching an itch.
Where you might learn something specific with the first method, the second can lead you in wild and woolly ways around bends and twists and turns you never expected.
I've a very broad skill set but its hard to get motivated to practice in depth, or push further than the superficial without a project or slight goal in mind. Ultimately our portfolio of work is the sum of our projects and what we can present from them.. see what I did there? 1st leads to 2nd and back to 1st...
I knew the Zeo had an Android app, and an iOS app (would that was still available.. gee) so I would be getting deep into Android app databases, possibly programming and scripting. And I had a slight notion the headband would be using WiFi or Bluetooth. WiFi is mostly easy these days but power hungry.. Bluetooth sips power so it was more likely. Maybe even BLE or Bluetooth 4.0 but due to the age of the device.. it really wasn't likely.
Bluetooth is a fantastic technology made really hard by very poor user docs. The politics of the Special Interest Groups (SIGs) read like legal documents and are often the basis of lawsuits.. lawyers in suits.
Worse the technical documents are often demonstrations of the prowsess of the researchers producing them and very hard to understand. And some people really don't realize they make egregious mistakes in the documents.. which are easy to over look because they are so opaque and dense.. sometimes arbitrary.. which the Bluetooth docs very much are arbitrary in some ways.
The best way then to learn is to "poke around" and see an implementation.
At first I thought to simply understand and compile the OpenZeo > ZeoCSV demo app on Github, but quickly found out it was incomplete, and very old.. and Google had recently ripped the wholey stuffing out of the development community by pushing everyone away from Eclipse with ADT and towards Android Studio.. and removing documents that had rested on the developer website for years.. people are really crying out there that Google tore a hole in the fabric of the web and space time.. it makes compiling or understanding old apps very hard... Archive.org is crippled with respect to this and isn't really of much use.
To make matters far worse.. Google tossed a document called Migration.html out on the web and didn't make much of it.. except if you try to use the old ADT with Eclipse beyond SDK version 22 (Android 5.0 was version 23) things break all over the place.
Marching on, I did acheive a ZeoCSV version that worked using another persons Github as the base for an app that did compile and sideload. Then found an older ZeoCSV by Nicholas Barry did it even better and he had uploaded that to the Google Playstore.. great I thought.. until I realized people would have problems distriguishing them from one another and the Amazon Fire tablet while running Android doesn't have access to the Playstore unless you first root it and then sideload the Google Playstore app.. gee.
So now there is a growing confusion over the ZeoCSV apps, sideload or playstore version, and who made theirs, and when, and which version supports which features. Clif-notes are Nicholas Barry's Google Playstore version with the Purple background is the best one for now, it shares [all] of the sleep records with your choice of method through secondary apps on your device to your destination, be that your email box, google drive, one drive, amazon drive, own cloud, dropbox, boxnet, or the local file system of the device itself. The key is [Look for the Purple background] once you install the app. If its purple, you have the correct app.
Then there is the ZeoViewer application for Windows desktop. This is also an alienrat production that is freely downloadable. It installs and leaves a shortcut on your desktop. I tested it on Windows 7, but did not test it on Windows 8.x or Windows 10.
Nicholas released an older ZeoCSV (only side load available now) that exported files that ZeoViewer cannot read, he fixed that this year, very recently and the new ZeoCSV app [Purple background edition] which exports 'complete' sleep record csv files which ZeoViewer [can open].. actually it [Imports] them into a local database on the Windows 7 pc, once imported they stay there and you can refer to them again and again after opening and closing the ZeoViewer program. This makes the ZeoViewer a central [hub] for your sleep records. The ZeoViewer can also re-Export the records, or a slice of records into a CSV file which you can open in any spreadsheet program like Excel if you like later.
While all of that was going on.. I've been going down the path of learning [better] and fixing my Windows 7 desktop [Bluetooth] stack.
Much of my problems were understanding the diferences between XP and Windows 7 bluetooth stack implementations. The [User Interface] Microsoft created for it in XP was [ripped apart] in Windows 7 as the company transitioned from a [GUI] user interface into a [WUI] user interface.
GUI was a XeroxParc invention more or less, that Apple adopted and Microsoft adopted in Windows 95, and ever since its been very popular the world over.
Iconography taught by "showing" or brokered on "intuition" as the common human language to enable people to learn to use programs.. that eroded with the [data management hysteria] surrounding Word with the ribbon user interface. A few people became panicked over deprecating older iconography and were very [verbally] oriented and felt they had to catalog every function on a ribbon bar.. that lead to [english words as a search navigation] paradigm.. and not everyone is fluent in "words" that a program or industry uses for its jargon.. (let alone national cultures).
So effectively Windows 7 [-hid-] much of the [GUI] user interface.. this got really [warped] with the Windows 8 user interface.. when they kept word navigation.. but hid the [search] tools.. and did not communicate even their own confusion.
Basically what happened was in a graphical Windows 8 ... [GUI] was dead. [WUI] was the backup interface.. for the new [TUI] touch interface.. which no one understood.. the iconography was terrible.. (massive understatement) and gyrating and animated (it was multi-dynamic icon) so the whole thing shifted like a blurry mess. Turning things off, disabling animated tiles started a word fight between Microsoft and Users that ended with the apocalyptic and childish press release [ "We're not stubborn" ]
- the key with WinXP is [use your intuition 'Luke', icon navigation]
- the key with Win7 is [use your search tool 'Leia', word navigation]
- the key with Win8x is [use your touch page 'Data', page navigation]
Back to Bluetooth - the XP interface was simply a Control Panel applet and a [system tray Applet] for accessing [the Radio], [the Device Installer] and [the Settings menu]. It could not have been simpler. The Windows 7 interface [-hid-] the Control Panel applet and dynamically made the system tray Applet.. "appear" and "disappear" at seemingly random intervals.. never mind the plugin play device installer did the same [Hide and Seek] games when actually searching for device drivers. Gosh.
I discovered there are actually registry entries for restoring the XP behavior in Windows 7 and things started to make sense again. This information came as a benefit of windows server admins attempting to copy or [port] the Bluetooth services and tools from desktop to server.. because many preferred to run server on the desktop for higher network performance and connection space.
Once I could [-use-] the user interface for Bluetooth again.. gosh darn it microsoft.. gosh darn it.. it was immediately apparent the Zeo was using SDP - service discovery protocol, to advertise it has two serial port services for SPP and iAP device type drivers for anyone to use. It was also apparent any Android device running the MyZeo app was advertising via SDP - a Zeo Android service.
.. to be continued