This version focuses on implementing Bluetooth phone connectivity and all associated logic and interface items. Connectivity will focus on phone call handling, contact sync, text message notification display and music streaming.
Emphasis will be set on ease of use and simplicity, automatic error correction with usual Bluetooth connection issues and connection restoration/recovery without user interaction.
Firmware development is continuing based on LVGL, CAN and processor intercommunication standards. Firmware updates will be provided in a separate series, from the firmware team.
Changes
Call/Phone Menu
- Phone main menu and all associated graphics created.
- Custom dial pad graphics and logic created.
- Contact list graphics created.
- Recent calls list graphics created.
- Ability to scroll through contacts alphabetically
- Pop up menu with alphabet to quickly skip to certain contact letters. Only display letters that have corresponding contacts.
- Display up to 5 phone numbers for each contact and associated device types
- Display recent calls list, call type and call time. Implement imperial/metric conversions to correspond to system imperial/metric settings.
- Implement active call graphics. Ability to display up to 10 active calls, scroll between them and activate them as necessary.
Upper InfoMenu
- Reorganized connection icons.
- Added phone network connection status.
- Added phone network signal level.
Bluetooth Device Settings
- Bluetooth options integrated with the rest of the settings database.
- Ability to turn Bluetooth on and off.
- Device auto start setting – Bluetooth is on or off when system starts.
- Auto connect setting – attempt to connect all paired devices on system start or not.
- Available devices – display a list of phone devices that are available to connect/pair and their current connection/paired status.
Phone Options
- Active call infomenu location (left/right) – left or right popup infomenu will be used for active calls when not in the main “Call” menu.
- Display message notifications.
- Message notification timeout (5-15s).
- Display paired phones.
- Unpair paired phones.
- Switch default phone if more than one phone is paired. System only attempts to connect to default/active phone.
- Sync contacts (on/off).
- Sync text messages (on/off).
Pairing Interface
- Display customized list of available Bluetooth devices.
- Display device type via custom icons.
- Display device signal strength via custom graphics.
- Implement side infomenu buttons to allow for unpairing/connecting/disconnecting devices.
- Filter list to allow just phone device connections.
- Display device connection status with custom graphics.
- Display device pairing status with custom graphics.
- Ability to pair devices.
- Ability to cancel active pairing operations.
- Ability to display custom notifications regarding pairing and connection operations.
- Ability to display and confirm/decline pairing pin code requests.
Bluetooth Manager
- Implement Bluetooth manager that handles all Bluetooth connectivity logic.
- Ability to turn Bluetooth adapter on/off.
- Ability to set Bluetooth adapter in pairing mode.
- Ability to set Bluetooth adapter in discoverable/hidden mode.
- Ability to set Bluetooth advertisement details based on specific UUIDs.
- Ability to scan for devices and provide customized results.
- Connect known devices.
- Connect new devices.
- Scan for new devices.
- Pair devices.
- Unpair devices.
- Perform connection error checking and make sure the connection is stable.
- Reconnect disconnect devices based on disconnection origin. If an error occurs, reattempt connection a certain number of times and reimplement all protocols.
- Create agent to handle Bluetooth specific requests.
- Create OBEX agent to handle OBEX specific requests. Automatically approve requests based on pre-approved UUIDs.
- Create PBAP sessions.
- Create MAP sessions.
- Monitor MNS sessions.
- Ability to initiate phone calls.
- Ability to send text messages.
- Ability to change call status (hold/active/hang up/answer).
- Ability to switch between multiple calls.
- Ability to mute connected devices.
- Ability to set volume for connected devices.
- Display active/incoming call contact info by matching call number info with info from the contact database.
- Extract signal level from connected Bluetooth device.
- Extract network connection status from connected Bluetooth device.
Phone Book Manager
- Communicate with Bluetooth devices according to PBAP standards.
- Download entire phone book.
- Download entire recent calls history as provided by the device.
- Generate SQL databases to store curated data.
- Initiate and monitor OBEX transfers to download required data.
- Parse all contacts and extract name info and up to 5 phone numbers. Eliminate contacts with no info, no number info or other generic useless data.
- Parse all recent call info and extract name info, number info, call type, call date.
Message Manager
- Communicate with Bluetooth devices according to MAP standards.
- Request data from device based on specific filters.
- Generate temporary message database.
- Monitor incoming message notifications and extract new messages as necessary.
- Change status of messages on Bluetooth device (read/unread).
- Delete messages from the MNS based on read/unread status.
- Push messages to Bluetooth device for immediate sending.