simple_brilliant_app 9.0.1 copy "simple_brilliant_app: ^9.0.1" to clipboard
simple_brilliant_app: ^9.0.1 copied to clipboard

Flutter and Lua quickstart app scaffolding and standard library functions for Brilliant Labs Halo and Frame development on Android/iOS

9.0.1 #

  • Renamed examples/ directory to example/ to follow pub.dev layout conventions

9.0.0 #

  • Renamed package from simple_frame_app to simple_brilliant_app
  • Updated dependencies: brilliant_ble (was frame_ble) and brilliant_msg (was frame_msg)
  • Update all imports from package:simple_frame_app/ to package:simple_brilliant_app/
  • Update asset paths from packages/frame_msg/lua/ to packages/brilliant_msg/lua/

8.0.0 #

  • Added Halo device support to SimpleFrameAppState and FrameVisionAppState
  • SimpleFrameAppState: startup display check now uses frame.display.clear() on Halo and the bitmap fill approach on Frame, correctly handling each device's display API
  • New FrameVisionAppState mixin (replaces the prior file-based frame_vision_app.dart):
    • Halo uses RxClick for button input (onClick(ClickType type) abstract method) — sends msg code 0x11 to the frame app
    • Frame uses RxTap for tap input (onTap(int taps) abstract method) — sends msg code 0x10 to the frame app
    • Both onClick and onTap must be implemented when using this mixin
  • Updated frame_ble to 4.0.0 for Halo connection support, Android BLE improvements, and spurious-reconnect fix
  • Updated frame_msg to 3.0.0 for Halo message types (RxClick, TxTextPage, CircularTextLayout) and updated Lua libraries

7.1.0 #

  • Updated frame_ble to 3.0.0. While v3.0.0 additionally supports OTA device firmware updates, SimpleFrameApp and FrameVisionApp don't provide any built-in mechanism to do firmware updates, but users of the framework could make use of it.

7.0.0 #

  • Updated frame_msg to 2.0.0, removing redundant msgCode provided in TxMsg constructor - pass the msgCode separately to FrameBle when sending the message, as this transport-level detail doesn't need to be coupled to the rich message contents.

6.0.3 #

  • Updated frame_msg to 1.0.1 to get the new default autoexposure and white balance limits and initial values

6.0.2 #

  • Updated frame_ble to 1.0.1 to add wait for the bluetooth adapter to be on, particularly for iOS since bluetooth startup can be a bit slower

6.0.1 #

  • Changed image metadata widget text style to 10pt Helvetica to work better across Android and iOS

6.0.0 #

  • NOTE: requires updated firmware with rgb_gain_limit for auto exposure and white balance algorithm
  • Updated FrameVisionApp to allow for rgb_gain_limit to be set to cap the per-channel gains that were amplifying sensor noise.
  • Updated to frame_msg 1.0.0 for the Tx settings classes associated with the rgb_gain_limit parameter and updated auto and manual exposure defualts.

5.0.0 #

  • Migration Step: Add frame_msg: ^0.0.1 package dependency for message classes to pubspec.yaml alongside simple_frame_app
  • Migration Step: Standard Frame messages e.g. TxSprite are imported through the frame_msg package, so in pubspec.yaml reference the assets like packages/frame_msg/lua/sprite.min.lua instead of packages/simple_frame_app/lua/sprite.min.lua. In main.dart instead of e.g. import 'package:simple_frame_app/tx/sprite.dart'; use import 'package:frame_msg/tx/sprite.dart';
  • Migration Step: frame_ble package that handles bluetooth connectivity to Frame no longer has a dependency on the TxMsg abstract class, so the sendMessage(TxMsg) function has changed to sendMessage(int msgCode, Uint8List payload) and can be called like so: frame.sendMessage(msg.msgCode, msg.pack()) if you have constructed a TxMsg.
  • Migration Step: if you previously had an ImageMetadata widget in your widget tree (either a ManualExpImageMetadata or an AutoExpImageMetadata), these are now plain (non-widget) classes, so wrap it in a ImageMetadataWidget to put in the widget tree if required
  • Refactored Brilliant Bluetooth code into new package frame_ble and added dependency
  • Refactored Frame Rx and Tx messages into new package frame_msg and added dependency
  • Apps wanting the simple_frame_app and frame_vision_app scaffolding should continue to use this package, but simpler apps requiring only a bluetooth connection to Frame to run simple Lua commands, or apps doing custom messages but outside the simple_frame_app structure might wish to use frame_ble or (frame_ble plus frame_msg) respectively.

4.0.2 #

  • Bugfix: add guard against completing bluetooth connection Future twice
  • Bugfix: the updated jpeg quality parameter had an incorrect name and was not being set correctly

4.0.1 #

  • Modified camera.lua to split lines that were affected by a bug in the lua minifier. Resolution and Pan values were being affected.

4.0.0 #

  • Updated Frame camera API to match firmware version v25.008.1013 (multiple resolutions, pan, changed quality levels)
  • The default Camera settings Drawer gives resolution options from 256-720 rather than 100-720 because low resolutions appeared to cause issues with autoexposure.

3.2.0 #

  • Made batteryLevel available from simple_frame_app to implementing apps

3.1.0 #

  • Removed 50ms delay that was introduced between packet sends to verify reliability, uploads should be faster

3.0.0 #

  • Changed RxPhoto to rotate back to upright by default. Specify upright: false in the constructor to save a few cycles if you don't need it

2.0.3 #

  • Changed default invalid plain_text color VOID/0, changed to WHITE/1

2.0.2 #

  • Removed unusable quality 100 from camera settings drawer

2.0.1 #

  • Changed camera_capture_and_send() to remove all delays between sends on Frameside, just retry on bluetooth send failure. Overall performance improvement, but retry counts of 10, 50, 100+ occur with some packets suggesting further improvement is possible.

2.0.0 #

  • Renamed printInstructions(), tapHandler() to standardized names of onRun(), onTap(), and added onCancel() abstract function to allow implementing app class to perform app-specific initialization and cleanup

1.8.0 #

  • Added frame_vision_app mixin as a specialized form of simple_frame_app for computer vision applications. Separate templates are now provided in templates/ for simple_frame_app and frame_vision_app apps. Frame Vision Apps automatically listen for taps which can be used to capture photos, and provide a hook for a vision processing pipeline when photos are captured. Auto and Manual exposure camera settings are supported and a settings drawer widget is provided.

1.7.0 #

  • Fixed scan/connect/reconnect code to be able to be called synchronously, and properly awaited.
  • Added helper startup method to try scanning, connecting, starting Frame app and optionally running phoneside run() method, suitable for use in some apps from initState()

1.6.1 #

  • Fixed bitmask bug causing analog_gain_limit and manual_analog_gain to be incorrectly parsed in Lua

1.6.0 #

  • Added rudimentary support for TxSprite.fromImageBytes() to load arbitrary PNG or JPG files for display on Frame (previously limited to indexed PNG files of 2, 4, or 16 colors only)

1.5.1 #

  • Corrected 'GRAY' to 'GRAY' for plain_text display to match firmware

1.5.0 #

  • Added simple moving average smoothing option for IMU data

1.4.1 #

  • Tweaked Lua source file for image_sprite_block to prevent a bug introduced by the minifier stripping out necessary parentheses

1.4.0 #

  • Added RxIMU parser and corresponding frameside sender for streaming magnetometer (compass) and accelerometer data from Frame

1.3.0 #

  • Added TxImageSpriteBlock for splitting an image into lines of TxSprite, allowing for progressive/incremental rendering. Also supports in-place updates of sprite lines for continuously updating images.

1.2.0 #

  • Updated TxCameraSettings and camera.lua to support both autoexposure and manual exposure/gain photos

1.1.1 #

  • removed extra logging statements in text_sprite_block.lua

1.1.0 #

  • implemented TxTextSpriteBlock more fully to support multi-line text, including scrolling frameside when the number of lines sent exceeds maxDisplayRows. The call to rasterize() has been updated to require providing indices for lines to rasterize.

1.0.1 #

  • fixed TextUtils to change wrapTextSplit to wrapText, i.e. wrapText now returns List<String>, so join('\n') the result if a single string is required

1.0.0 #

  • removed deprecated *DataResponse functions, use Rx classes instead (RxAudio, RxPhoto, RxTap)

0.1.0 #

  • Added Rx classes in place of imageDataResponse, audioDataResponse, tapDataResponse.
  • Deprecated TextUtils.wrapText(Split), going forward use the wrapText that returns a List of Strings and join them if you need the single String

0.0.9 #

  • Added audioDataStreamResponse support for real-time streaming of Frame audio data
  • Added tapDataReponse as a multi-tap-detection subscription from Frame
  • Added wrapTextSplit and deprecated wrapText in TextUtils, returning a List<String> instead of a String so the caller to quickly select the first, last or a sliding window of Strings to enable scrolling. If a newline-joined single String is desired, it can quickly be assembled with a join()
  • Performance: modified logging calls with expensive string interpolations to use a closure so they are not evaluated if not logged at the current logging level

0.0.8 #

  • Added initial audioDataResponse support for Frame audio data as whole audio clips

0.0.7 #

  • Updated camera code (lua and dart) with camera parameters from recent firmware updates - exposure_speed, analog_gain_limit, white_balance_speed etc.

0.0.6 #

  • Added TxTextSpriteBlock message type to send a paragraph of text for display on Frame. Supports Unicode (including right-to-left) script. Rasterization is performed phoneside and text is sent as a series of TxSprites
  • Renamed tx/text.dart and lua/text.lua to plain_text to match class names - no interface change, just update imports/assets

0.0.1 #

  • Early prototypes
0
likes
140
points
72
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Flutter and Lua quickstart app scaffolding and standard library functions for Brilliant Labs Halo and Frame development on Android/iOS

Repository (GitHub)
View/report issues

License

ISC (license)

Dependencies

brilliant_ble, brilliant_msg, flutter, flutter_blue_plus, image, logging

More

Packages that depend on simple_brilliant_app