You found that the problem was due to another app:
Das bezog sich auf WunderLINQ und nicht auf den CI Controller. Deswegen habe ich ja auch zu WunderLINQ gewechselt, weil das Zoomen nicht richtig ging.
Implemented in Kurviger 2.1.8.
Sorry to bring this old topic again to the table.
I use carpe iter control unit since a while and I had several times issues with key mapping. With installed and active CI- Controller, there is some basic mapping to kurviger. Could it be, when activate carpe iter in kurviger (setting external device), there is a double remapping and this can cause issues? For example: ci controller maps hardware button B from [esc] to [-] (zoom out) and kurviger is looking for [esc] but receive [-] and do nothing.
Without CI-Controller (just as native external keyboard device) i see the following mapping:
Arrows Up, Down, Left, Right
Push center = [enter]
short press = a
long press = b
short press = [esc]
long press = c
Unfortunately I can’t see the mapping for kurviger when CI- Controller is active. He adapts the mapping according the active App and only when this app is active, it sends the events. After this tests, I’m quite sure, the mapping in kurviger works only correct, when CI Controller App is not installed or when at kurviger settings “keyboard” is selected and carpe iter mapping for kurviger is correct.
Nevertheless, the CI- Controller app is not very stable an I would like to suggest to update actual carpe iter mapping in kurviger as follows:
Arrow Up, Arrow down, Arrow left, Arrow right = scroll map.
(Push center) [Enter] = [C] (center map to user location)
(short press) a = [+] zoom in
(long press) b = N (Navigation pause / resume)
(short press) [esc] = [-] zoom out
(long press) c = B (add bookmark)
Any doubts, remarks, ideas from other CI users?
App does not do anything special for any external device.
It just maps Android keys to map functions.
“Carpe Iter” key mappings are similar to “Keyboard”:
(mentioned in documentation)
For zoom in / out probably not all keys are needed?
Suggestions need to describe: Android key code → app / map function.
Important: the Android key codes must be used by the external device.
Available Android key codes:
Ok. I’m not software engineer but according your linked documentation, my suggestion gives this carpe iter profile:
Device output keycode = kurviger keycode (function)
KEYCODE_ENTER = KEYCODE_C (center map to user location)
KEYCODE_A = KEYCODE_PLUS (zoom in)
KEYCODE_ B = KEYCODE_N (Navigation pause / resume)
KEYCODE_ESCAPE = KEYCODE_MINUS (zoom out)
KEYCODE_C = KEYCODE_B (add bookmark)
The device has arrows + plus / minus + 3 keys (A, B, C)?
Then the functions could be:
- Zoom in: PLUS
- Zoom out: MINUS
- Move map: UP, DOWN, LEFT, RIGHT
- Center on user location : C
- Navigation pause / resume : A
- Add bookmark: B
Provided that their keys correspond to the similar Android key codes.
sometimes a picture is better than words
Thanks, it would be nice if all external devices provide documentation…
(and how they work with Android code)
On our topic, how many and what buttons do Carpe Iter devices have?
- Plus / Minus
- A, B, C
Do they support long press?
However, the functions seem to fit the existing buttons.
(so long press is not needed)
Note that when you select “Keyboard”: the “C” key centers on user location and “B” adds bookmark.
(so you can already test those keys)
Then my above suggestion can work?
Yes. (See my post above).
Device have 2 Button an one Joystick.
C and B works already but not with the buttons which I prefer.
If there are only 4 directions + 2 buttons [A / B],
why in your above post, you mention Plus / Minus and C?
What do you mean? We must select sane defaults.
“Keyboard” maps them to Android key codes C / B.
Does the 2nd button add a bookmark?
i.e. mapped to Android key code B
If only 4 directions + 2 buttons [A / B] are available,
most users would prefer to move + zoom the map.
But first we must clarify what buttons are available.
(and what Android key codes they have)
Users report above that they can zoom [+ / -] or center location [C] with “Keyboard” selection:
KEYCODE Arrows Up, Down, Left, Right
Push on center = KEYCODE_ENTER
short press = KEYCODE_A
long press = KEYCODE_B
short press = KEYCODE_ESCAPE
long press = KEYCODE_C
All this KEYCODES are 1:1 from device without mapping from Ci Service or DMD2!
Thanks, where did you find them?
Selecting “Keyboard”, long press button A add bookmark?
Selecting “Keyboard”, long press button B center on user location?
yes for both questions.
To get this events, I connected device via bluetooth and used the android app HardwareKeybordCheck. It shows nicely the output.
So a possible mapping could be:
(and according your suggestion)
- Directions: Move map
- Press center (KEYCODE_ENTER): Center on user location
- Press (KEYCODE_A): Zoom in
- Long press (KEYCODE_B): Navigation pause / resume
- Press (KEYCODE_ESCAPE): Zoom out
- Long press (KEYCODE_C): Add bookmark
We could keep the plus / minus for zoom, why some users mentioned they work?
That would be perfect for me
Zoom in / out works only with mapping from CI App.
The good thing is, it can work for both uses:
- case native controller support:
- select carpe iter device in kurviger external device setting => mapping in kurviger
- case with Ci Controller / DMD2
- select keyboard in kurviger external device setting => mapping at CI App.
Thanks for checking!
These additions will be available in the next app update.
I applied for beta-test right now. As soon as it will be available, I’ll check it and report back.
2.2 (Beta) testing is currently closed and as they are additions, they can be in the next update.