Live Pen™ 2 - Template and Pidget Support
The Live Pen™ 2 uses the same template family as Live Pen™ 1 (DP-201), namely template family 10. That is, the Live Pen™ 1 and the Live Pen™ 2 follow the exact same template update process and use the exact same template binaries. The initial template release that will be included in the Live Pen™ 2 is the latest one currently available, GUC41 which is also included in the Live Pen™ 1 since firmware version 7B.
This means that the Live Pen™ 2 can detect when the user ticks on any pidget that the Live Pen™ 1 supports.
Any segment that is not mapped in the template family, is locked.
If the Live Pen™ 2 is used on any paper that is 'locked' according to the definition above the pen will 'error buzz' as long as the pen tip is pressed towards that paper.
The Live Pen™ 2 only relays the pidgets to the host application via notifications and as event blocks in the STF2 file. Send pidgets and pair pidgets are special in that they result in action (or lack thereof) in the pen, so they will need special consideration.
When the user enters a pidget that is recognized by the pen, a connection attempt to a paired device is initiated.
When the user exits a pidget that is recognized by the pen, a confirmation vibration (see MMI implementation) is made and an event block is added to the STF2 file.
If the pen has a paired device within reach, exiting the pidget (by pen up or stroke continues outside the pidget) will also result in a notification being sent to the device. If that device is outside reach, the pen will error buzz when the connection attempt has failed.
If the exited pidget is a 'send pidget' (see below), the 'pSend' field in the notification will be set. In addition to that, the pen will lock the stroke storage and not accept any new strokes until either connection to host has failed or the host gets and deletes the strokes in the pen, according to the flow chart below.
|All pidgets except pairing pidgets||If Bluetooth is on and the pen is paired, an attempt is made to connect to the host.|
|All 'send pidgets'||The "pSend" field in the notification is set to True.|
Send and pair pidgets
To distinguish which pidgets that are send and pair pidgets the pen uses a scheme based on the Live Pen™ 1 source code.
The pidget ID is composed of several fields of varying bit length, where the first byte is the pidget type. The remaining fields are related to persistence (whether the data should be removed from the pen after send), device to send to and service type (page, book, etc.). In this pen all such information is processed on the server side, so the server can determine what to do based on pidget ID. The only thing for the pen to determine before sending the notification is whether to set the 'pSend' field.
When ignoring all such details, the pen has the following definition for these special pidgets.
|Pidget type||Pidget ID|
0x04 as most significant byte (e.g. 0x0411, 0x0412, ...)
0x0551 - 0x0554 and 0x0562
Note that this describes how the pen distinguishes between different pidget types. Which pidgets the pen actually recognizes as pidgets at all is determined by its templates (which may not cover all possible variations that are described above).
See also the document "Paper Template Description" for a detailed description of which pidgets are supported by the Live Pen™ 2, specifically which IDs correspond to send and pair pidgets (which is a relevant part for this pen). Note that also other 'utility pidgets' are recognized and stored as STF2 entries (e.g. battery pidget), but without any other action done by the pen.