to allow user to confirm before every attempt. Users will learn to
set this when T650s are in the mix. Save a new preference, and up the
stream version. Up beta version. Add the preference both to the prefs
dialog and to the bluetooth connection (for guest) dialog, with both
impacting the same field in gamePrefs.
postEmptyEvent; pass transport type with incoming packets so they can
be rejected if not on expected channel (to stop IR, which is always
on, from injecting into a BT game); do BT work and fire timers even
when menu is down; don't let robot run until after board is drawn for
the first time; on startup, don't let robot run until after board is
drawn once. Up version to b3.
and use it to send and check for heartbeats over any transport.
Caller must supply a reset proc which is called when heartbeat hasn't
been received in too long. No changes required to comms protocol, but
that means the heartbeat interval is fixed at compile time: can't be
negotiated, and the two ends had better agree. Currently tested with
linux host and PalmOS guest, where only the first heartbeat failure is
recovered from. So there's some debugging to be done still.
With this checkin rfcomm works between two Treos and between Treos and
linux, though with plenty of bugs around reconnecting yet to find.
However, it turns out that even using rfcomm a Treo650 gives no notice
to the other device when shutting down the connection, so rfcomm
doesn't help. Rfcomm is probably not worth using, but the code's now
here and can be turned on in the Makefiles.
data with the goal of detecting disconnects more quickly. Stops
working after a few packets (client only tested against host on linux
so far), and doesn't compile for ARM yet, but the framework is there.
Am framing packets on Palm side which may not be necessary.
it's needed, removing those passed into _init and _send. When client
is unable to connect to host, raise alert to user and give choice to
continue trying. Clear 'suspendBT' flag when user manually resends or
opens different game. Currently this happens only on guest's failure
to find registered SDP; should also extend to remote device not
running at all and to host failure to send to guest.
getting a new connection, making a callback that calls resend_all().
This means a lot of duplication, but duplication is free with
bluetooth. The underlying problem is that packets are reported as
sent not when acked by the other side, but when passed to a lower
level that may not be connected at all.
crash; erase bt status area even when no comms in order to erase after
turning bt off; in connect dlg, use a trigger rather than field and
button for host name.
by icons or something prettier later. For new games dialog, replace
hard-coded list of controls to ignore with a runtime list. This
allows checkboxes and fields to be enabled and disabled more easily.
Works around Palm's lack of a control state meaning "visible but
inactive" that works for all form elements.
trying to connect after losing contact with server. With this
checkin, a game between palm and linux can be interrupted by either or
both and restarted, with either in either role. Haven't tested
palm-on-palm yet. App stop speed is much better now too.
a BT game: track states so can shutdown cleanly; transition from
master to slave; mechanism to defer work from callbacks to the main
loop. Can now quit and restart as guest against host on linux. Have
not tested between two Treos.
A full robot vs. robot game now works between two Treos. Added UI to
choose BT as transport mechanism, and added new send proc to establish
socket connection between host and guest. Works only for two devices:
no piconet yet. No error recovery, ability to quit game in middle,
start new game, etc.