maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Applications (https://talk.maemo.org/forumdisplay.php?f=41)
-   -   [SFOS] [Announce] Rockpool - Pebble daemon for Sailfish (https://talk.maemo.org/showthread.php?t=96490)

abranson 2016-04-06 20:43

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by ruff (Post 1502861)
Managed to fix gecko boostable launch (as always trivial mishap) so will publish now 0.8-3gecko2 rpm in beta - also with horizontal scrolling fix. And if there won't be any complain - should be ready to merge.

Built and works well for me. Didn't see much difference from webkit, but I could see the failure page for Authenticator.

Progress on this: the authenticator app won't show the proper config page until it's finished loading its tokens from the watch, which it tries to trigger by sending an AppMessage: AMReadTokenList. This, and the subsequent AMSetUTCOffset messages both return NACK from the watch and no message comes back, so the settings page is never enabled. I assume there's something wrong with the messages being sent out, but I don't know what yet.

ruff 2016-04-07 05:09

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by abranson (Post 1502949)
This, and the subsequent AMSetUTCOffset messages both return NACK from the watch and no message comes back, so the settings page is never enabled. I assume there's something wrong with the messages being sent out, but I don't know what yet.

The only thing which comes to my mind is improper serialisation of the data which leads to big packet and consequent inbox overflow.
What's the app is it? Can try to debug dumping wireformat packets.

abranson 2016-04-07 06:33

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by ruff (Post 1502957)
The only thing which comes to my mind is improper serialisation of the data which leads to big packet and consequent inbox overflow.
What's the app is it? Can try to debug dumping wireformat packets.

It's this one:

https://apps-prod.getpebble.com/en_U...tion=watchapps

While you're at it, could you tell me what happens when you upload a watch language file? There's a hint in the pebbled source to upload it as a file called 'lang', but I'm getting nothing but NACKs here.

ruff 2016-04-07 11:26

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by abranson (Post 1502960)

Am I doing it right?. Installed the app - it writes No Tokens. Went to settings - it says - Create new token.
So that's it? Till that stage it work for everyone I presume, and I need to store actual token to get to the issue?

abranson 2016-04-07 11:35

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by ruff (Post 1502975)
Am I doing it right?. Installed the app - it writes No Tokens. Went to settings - it says - Create new token.
So that's it? Till that stage it work for everyone I presume, and I need to store actual token to get to the issue?

My settings pages always says 'Re-open settings page'. Never get to the 'create new token' bit. Both the attempted app messages in the JS app fail in the logs, so it fails to initialize. Would love to see what your logs say.

ruff 2016-04-07 11:49

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Ahha, it worked right after install, now when I relaunch it it also shows me "Re-open" stuff.
Now, restarted daemon (to debug) and again got new token page. something strange


Edit: Ok, so to me it works differently. When I click settings when app is not running I'm getting Re-open page.
But subsequent reuqest (swipe right, click settings again) opens Create New Token page.

Code:

[D] JSKitManager::startJsApp:216 - starting JS app "Authenticator"
[D] JSKitManager::loadJsFile:187 - evaluating js file ":/jskitsetup.js"
[D] JSKitManager::loadJsFile:195 - JS script evaluated
[D] JSKitManager::loadJsFile:187 - evaluating js file ":/typedarray.js"
[D] JSKitManager::loadJsFile:195 - JS script evaluated
[D] JSKitManager::startJsApp:250 - loaded script "undefined"
[D] JSKitPebble::invokeCallbacks:357 - invoking callback "ready" "function() { \[code\] }"
[D] JSKitPebble::sendAppMessage:55 - sendAppMessage QMap(("AMReadTokenList", QVariant(int, 1) ) ) 
[D] AppMsgManager::mapAppKeys:168 - Have appkeys: ("AMReadTokenList_Result", "AMSetTokenListOrder", "AMSetUTCOffset", "AMClearTokens", "AMReadTokenList_Finished", "AMReadTokenList", "AMDeleteToken", "AMCreateToken_Name", "AMUpdateToken", "AMCreateToken", "AMCreateToken_ID")
[D] AppMsgManager::send:88 - Queueing appmsg 4 to QUuid("{da96ea4e-7793-4301-9d9a-68714a902730}") with dict QMap((6, QVariant(int, 1) ) ) 
[D] JSKitManager::loadJsFile:187 - evaluating js file ":/cacheLocalStorage.js"
[D] JSKitManager::loadJsFile:195 - JS script evaluated
[D] JSKitManager::startJsApp:274 - going to launch config for QUuid("{da96ea4e-7793-4301-9d9a-68714a902730}")
[D] JSKitManager::showConfiguration:50 - requesting configuration
[D] JSKitPebble::invokeCallbacks:357 - invoking callback "showConfiguration" "function() { \[code\] }"
[D] AppMsgManager::handlePushMessage:358 - Received appmsg PUSH from QUuid("{da96ea4e-7793-4301-9d9a-68714a902730}") with QMap((8, QVariant(int, 1) ) ) 
[D] AppMsgManager::mapAppKeys:199 - checking app key 8 "AMReadTokenList_Finished"
[D] AppMsgManager::handlePushMessage:361 - Mapped dict QMap(("AMReadTokenList_Finished", QVariant(int, 1) ) ) 
[D] AppMsgManager::handlePushMessage:374 - ACKing transaction 1
[D] JSKitManager::handleAppMessage:109 - handling app message QUuid("{da96ea4e-7793-4301-9d9a-68714a902730}") QMap(("AMReadTokenList_Finished", QVariant(int, 1) ) ) 
[D] JSKitPebble::invokeCallbacks:357 - invoking callback "appmessage" "function() { \[code\] }"
[D] JSKitManager::loadJsFile:187 - evaluating js file ":/cacheLocalStorage.js"
[D] JSKitManager::loadJsFile:195 - JS script evaluated
[D] AppMsgManager::handleAckMessage:404 - Got  ACK  to transaction 4
[D] JSKitPebble::sendAppMessage:55 - sendAppMessage QMap(("AMSetUTCOffset", QVariant(double, 7200) ) ) 
[D] AppMsgManager::mapAppKeys:168 - Have appkeys: ("AMReadTokenList_Result", "AMSetTokenListOrder", "AMSetUTCOffset", "AMClearTokens", "AMReadTokenList_Finished", "AMReadTokenList", "AMDeleteToken", "AMCreateToken_Name", "AMUpdateToken", "AMCreateToken", "AMCreateToken_ID")
[D] AppMsgManager::send:88 - Queueing appmsg 5 to QUuid("{da96ea4e-7793-4301-9d9a-68714a902730}") with dict QMap((0, QVariant(double, 7200) ) ) 
[D] AppMsgManager::handleAckMessage:404 - Got  ACK  to transaction 5

here it failed to open proper page, and then next attempt

Code:

[D] JSKitManager::showConfiguration:50 - requesting configuration
[D] JSKitPebble::invokeCallbacks:357 - invoking callback "showConfiguration" "function() { \[code\] }"

worked ok.

Also added alert-box control to gecko bcz the page complains that my token is invalid (cannot decode token). Without alert box clicking on Add button does nothing. Only in logs it's seen that page attempts to raise alert (AsyncMessage: embed:alert)

But settings page accepted token Blah Blah. So now my authenticator can authenticate me for Blah :)
I've tried to enter OAuth token, seems it's for something different :)

abranson 2016-04-07 13:23

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by ruff (Post 1502978)
here it failed to open proper page, and then next attempt

Code:

[D] JSKitManager::showConfiguration:50 - requesting configuration
[D] JSKitPebble::invokeCallbacks:357 - invoking callback "showConfiguration" "function() { \[code\] }"

worked ok.

That's normal - the AMReadTokenList_Finished message has to be received by the watch *before* the ShowConfiguration function is called, otherwise it shows you the re-open page. You're meant to start the app beforehand, which is what that page tells you to do. The difference between your log and mine is that you're getting a response message back, while I'm just getting a NACK:

Code:

[D] JSKitManager::startJsApp:216 - starting JS app "Authenticator"
[D] JSKitManager::loadJsFile:187 - evaluating js file ":/jskitsetup.js"
[D] JSKitManager::loadJsFile:195 - JS script evaluated
[D] JSKitManager::loadJsFile:187 - evaluating js file ":/typedarray.js"
[D] JSKitManager::loadJsFile:195 - JS script evaluated
[D] JSKitManager::startJsApp:250 - loaded script "undefined"
[D] JSKitPebble::invokeCallbacks:357 - invoking callback "ready" "function() { \[code\] }"
[D] JSKitPebble::sendAppMessage:55 - sendAppMessage QMap(("AMReadTokenList", QVariant(int, 1) ) )
[D] AppMsgManager::mapAppKeys:168 - Have appkeys: ("AMReadTokenList", "AMClearTokens", "AMReadTokenList_Finished", "AMCreateToken_ID", "AMReadTokenList_Result", "AMSetUTCOffset", "AMDeleteToken", "AMUpdateToken", "AMCreateToken", "AMCreateToken_Name", "AMSetTokenListOrder")
[D] AppMsgManager::mapAppKeys:172 - "AMReadTokenList"  found as  6  for value  QVariant(int, 1)
[D] AppMsgManager::send:88 - Queueing appmsg 4 to QUuid("{da96ea4e-7793-4301-9d9a-68714a902730}") with dict QMap((6, QVariant(int, 1) ) )
[D] JSKitManager::loadJsFile:187 - evaluating js file ":/cacheLocalStorage.js"
[D] JSKitManager::loadJsFile:195 - JS script evaluated
[D] AppMsgManager::handleAckMessage:405 - Got  NACK  to transaction 4
[D] JSKitConsole::log:61 - "AM transmit failed: NACK from watch, continuing"
[D] JSKitPebble::sendAppMessage:55 - sendAppMessage QMap(("AMSetUTCOffset", QVariant(double, 7200) ) )
[D] AppMsgManager::mapAppKeys:168 - Have appkeys: ("AMReadTokenList", "AMClearTokens", "AMReadTokenList_Finished", "AMCreateToken_ID", "AMReadTokenList_Result", "AMSetUTCOffset", "AMDeleteToken", "AMUpdateToken", "AMCreateToken", "AMCreateToken_Name", "AMSetTokenListOrder")
[D] AppMsgManager::mapAppKeys:172 - "AMSetUTCOffset"  found as  0  for value  QVariant(double, 7200)
[D] AppMsgManager::send:88 - Queueing appmsg 5 to QUuid("{da96ea4e-7793-4301-9d9a-68714a902730}") with dict QMap((0, QVariant(double, 7200) ) )
[D] AppMsgManager::handleAckMessage:405 - Got  NACK  to transaction 5
[D] JSKitConsole::log:61 - "AM transmit failed: NACK from watch, continuing"

I'm thinking that it might be a hardware thing - I have a classic and you're on a time round which may have some extra token capability. I think if we release the gecko version, people can test and we'll know for sure.

ruff 2016-04-07 16:33

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Ok, so I'm merging then gecko+wip(notifications) into the master and raising PR?

abranson 2016-04-07 16:36

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Let's do it! The gecko dependency is really unnoticeable, and is probably best switched while we're still calling it beta!

It'd be nice to do the language thing before we call it 1.0, but not necessary. A few more watchapp debugs and I think I'll do it. We already support a lot more than pebbled and rockwork do.

ruff 2016-04-07 16:46

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
yeah, translations is exactly what I've spent last several hours for.
Shouldn't we include websockets to 1.0? I.e. full pebble jskit support.
Ah, actually it works (translation) just not under debugger. Normal icon tap launches translated app (in sdk it's always "C")

Fuzzillogic 2016-04-07 16:48

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Pebbled had the option to switch to silent profile whenever the watch was connected. I.e., when you walked out of range, silent mode was disabled, so you could still hear when the phone was ringing. This option didn't make it to rockpool yet?

abranson 2016-04-07 17:07

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
I meant the pbl file upload so we can support setting the language on the watch for non-latin alphabets. Great to have more translations though. I'd like the keep the websockets back for now because I haven't found an app to test them, and I'll have to mirror coderus' qt5websockets packages, and I'm not sure if that's a good idea...

Quote:

Originally Posted by Fuzzillogic (Post 1503009)
Pebbled had the option to switch to silent profile whenever the watch was connected. I.e., when you walked out of range, silent mode was disabled, so you could still hear when the phone was ringing. This option didn't make it to rockpool yet?

I forgot about that one! Afaik that was dropped in RockWork.

ruff 2016-04-07 17:14

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by abranson (Post 1503011)
I forgot about that one! Afaik that was dropped in RockWork.

Probably because ubuntu doesn't support com.nokia.profiled interface :)

As for cyrillic - my PTR shows cyrillic messages without problem, maybe PTR has built-in utf support though.

abranson 2016-04-07 20:07

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by ruff (Post 1503012)
Probably because ubuntu doesn't support com.nokia.profiled interface :)

This wouldn't have to impact the libpebble part at all - the sailfish part can act on the connected and disconnected signals. That would be quick - I'll do that.

Quote:

Originally Posted by ruff (Post 1503012)
As for cyrillic - my PTR shows cyrillic messages without problem, maybe PTR has built-in utf support though.

That is weird. What with that and the authenticator working, I'm beginning to think your PTR is a very special watch :)

piggz 2016-04-07 20:19

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
no joy with authenticator using the latest beta here...im on the origonal pebble btw, not time/round

ruff 2016-04-07 20:35

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by abranson (Post 1503026)
This wouldn't have to impact the libpebble part at all - the sailfish part can act on the connected and disconnected signals. That would be quick - I'll do that.

Yes, it's only that I've just introduced com.nokia.mce interface in the WIP commits (for notifications) and now another part of this tree.

ruff 2016-04-07 20:44

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by piggz (Post 1503030)
no joy with authenticator using the latest beta here...im on the origonal pebble btw, not time/round

Can you confirm it works ok on android/ios? I.e. app could be migrated to time series with no backward compatibility.

abranson 2016-04-07 20:46

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
It has separate resources for aplite, basalt and chalk, and it wouldn't install otherwise. Could well be a bug though.

wickedsten 2016-04-07 20:56

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
About Cyrillic... I still have Pb Classic and switched to Rockpool, then updated FW to latest one. For sure have no cyrillic at all. Then I've tried to install custom FW with cyrillic - and get watches in with [] instead of all symbols. After going to recovery mode and installing native FW from another device I've got Classic with latest FW... and cyrillic symbols. So far all notifications are shown correctly in both latin and cyrillic.

ruff 2016-04-07 21:09

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by abranson (Post 1503034)
It has separate resources for aplite, basalt and chalk, and it wouldn't install otherwise. Could well be a bug though.

Yes, however gears have separate limits, so even if it compiles, it doesn't mean runtime is fine. Just to be sure it's really rockpool-specific(maybe for the certain platform) problem.

Speaking about the platform. Can you estimate from the top of your head protocol-level changes btw pebbled(2.x) and rockworkd(3.x) implementation? I'm just thinking whether ios/android could be falling back to older proto when speaking to aplite for certain transfer types. Which may lead to nacks for pure 3.x comm.

piggz 2016-04-07 21:11

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by ruff (Post 1503033)
Can you confirm it works ok on android/ios? I.e. app could be migrated to time series with no backward compatibility.

im not sure i follow you...used to work ok on the timeline fw on my bb10

abranson 2016-04-07 21:34

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by ruff (Post 1503036)
Yes, however gears have separate limits, so even if it compiles, it doesn't mean runtime is fine. Just to be sure it's really rockpool-specific(maybe for the certain platform) problem.

Speaking about the platform. Can you estimate from the top of your head protocol-level changes btw pebbled(2.x) and rockworkd(3.x) implementation? I'm just thinking whether ios/android could be falling back to older proto when speaking to aplite for certain transfer types. Which may lead to nacks for pure 3.x comm.

Afaik the appmessage protocol is identical in v2 and v3. The code is pretty much identical between rockwork/rockpool and pebbled.

Bundyo 2016-04-08 05:09

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
All Pebbles communicate in UTF-8. However in older models there was no space for the font characters, maybe that changed with PTR. Anyway, simple language pack install should bring cyrillic support to Pebble. You can find several such LPs here:

https://forums.getpebble.com/discuss...Comment_153542

Not sure if this can be installed through Rockpool, but works a treat on an Android device. Since the language pack survives firmware upgrades, you need to do this only once.

abranson 2016-04-08 05:22

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
That's what was suspected, thanks for the confirmation. If anyone can sniff that process and tell me how it's uploaded I'd be very grateful. I'm afraid I have no Android device I can use.

ruff 2016-04-08 06:34

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by abranson (Post 1503038)
Afaik the appmessage protocol is identical in v2 and v3. The code is pretty much identical between rockwork/rockpool and pebbled.

Ok, then we need logs from watches to understand why it's nacking appmsg. The message is fairly simple - simple scalar value, nothing what could potentially be wrongly serialized.



Does anyone have annotated firmware disassembly accidentally? To look for possible reasons to nack.

abranson 2016-04-08 06:57

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by ruff (Post 1503056)
Ok, then we need logs from watches to understand why it's nacking appmsg. The message is fairly simple - simple scalar value, nothing what could potentially be wrongly serialized.

I tried to switch the type of that first request for the token list to different types, but that didn't help. It could still be bad serialization, but there's only so many ways you can send a '1'.


Quote:

Originally Posted by ruff (Post 1503056)
Does anyone have annotated firmware disassembly accidentally? To look for possible reasons to nack.

Appmessages on the whole work fine, but I think it's the binary on the watch that decides whether to ack or nack in response. I found the source:

https://github.com/cpfair/pTOTP

I think the next step is to confirm that iOS and Android work with older watches on v3, then we can try to contact the author.

ruff 2016-04-08 07:57

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Yes I've looked at the code already and didn't find anything there, that's why i suspect it's firmware which is refusing appmessage for certain reason. In that case it may not even reach the app.

abranson 2016-04-08 08:06

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
I'd like some more confirmation of this behavior in other watches. My watch might need a reset or something. Are you ready with the gecko branch? It definitely needs that.

ruff 2016-04-08 08:19

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
yes, nothing atm on my list for it.
Do you want to merge gecko-only or the WIP which also includes mce handler and changed notification filter? with german translation and alert dialog on top of that.

abranson 2016-04-08 08:23

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
However much you think is ready. I like the 'upgrade available' notice btw :)

ruff 2016-04-08 08:25

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
gecko is the biggest piece, the rest are pretty straight forward. So merging WIP then.

abranson 2016-04-08 10:10

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
ARM uploaded. I've built the x86 package, but I want to test that on the tablet before I upload it, and my tablet's at home so I'll do it later.

HtheB 2016-04-08 11:53

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by abranson (Post 1503072)
ARM uploaded. I've built the x86 package, but I want to test that on the tablet before I upload it, and my tablet's at home so I'll do it later.

Thanks for the new build!

Any idea if we can get the weather function to work on Mario Time?

abranson 2016-04-08 12:19

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by HtheB (Post 1503078)
Thanks for the new build!

Any idea if we can get the weather function to work on Mario Time?

I can't test that one on my creaky old pebble. Shame, looks cool, if a bit of a battery drain maybe...

HtheB 2016-04-08 18:15

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by abranson (Post 1503081)
I can't test that one on my creaky old pebble. Shame, looks cool, if a bit of a battery drain maybe...

Why not?
It should also work on original Pebble...

ruff 2016-04-09 00:54

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
I think I've finally fixed last missing piece from the original rockwork gui - content sharing page (used for sharing screenshots and sending pebble logs). Now can focus on functional fixes and new features.

Boxeri 2016-04-09 10:04

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Rockpool is really great app. Thank you abranson and ruff, worthy of donation.

Since Whatsup is not currently working that well, I am considering installing Whatsapp from android side. Does Rockpool work with that also? Anyone tried?

ruff 2016-04-09 12:10

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by abranson (Post 1503026)
This wouldn't have to impact the libpebble part at all - the sailfish part can act on the connected and disconnected signals. That would be quick - I'll do that.

I've added GUI support for this, expected API call - setProfile(int state, string profile)
where state enum { Connected, Disconnected } and profile one of the com.nokia.profiled.get_profiles or empty string (to disable profile change).

piggz 2016-04-09 12:23

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
I gave up on Authenticator, and found that QuickAuth works fine and does the same job.

ruff 2016-04-09 12:37

Re: [Announce] Rockpool - Pebble daemon for Sailfish
 
Quote:

Originally Posted by piggz (Post 1503148)
I gave up on Authenticator, and found that QuickAuth works fine and does the same job.

Sorry for that but i really can't help here because for me it works just fine without any issue. Glad you found workable alternative.


All times are GMT. The time now is 19:37.

vBulletin® Version 3.8.8