dgtdriver

The dgtdriver flutter package allows you to quickly get you dgt-board connected to your Android application.

preview

Getting Started with dgtdriver + usb_serial

Add dependencies to pubspec.yaml

dependencies:
	dgtdriver: ^0.0.1
	usb_serial: ^0.2.4

include the package

import 'package:dgtdriver/dgtdriver.dart';
import 'package:usb_serial/usb_serial.dart';

add compileOptions to android\app\build.gradle

android {
    ...
    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
    ...
}

you can do optional more steps to allow usb related features, for that please take a look at the package we depend on: usb_serial.

Connect to a connected board and listen to its events:

List<UsbDevice> devices = await UsbSerial.listDevices();
    List<UsbDevice> dgtDevices = devices.where((d) => d.vid == 1115).toList();
    UsbPort usbDevice = await dgtDevices[0].create();
    await usbDevice.open();

    DGTCommunicationClient client = DGTCommunicationClient(usbDevice.write);
    usbDevice.inputStream.listen(client.handleReceive);
    
    if (dgtDevices.length > 0) {
      // connect to board and initialize
      DGTBoard nBoard = new DGTBoard();
      await nBoard.init(client);
      print("DGTBoard connected - SerialNumber: " +
          nBoard.getSerialNumber() +
          " Version: " +
          nBoard.getVersion());

      // set connected board
      setState(() {
        connectedBoard = nBoard;
      });

      // set board to update mode
      nBoard.setBoardToUpdateMode();
    }

In action

To get a quick look, it is used in the follwoing project, which is not open source yet.

https://khad.im/p/white-pawn

Updates soon

sorry for the lack of information, i will soon:

  • update this readme
  • add an example
  • add some tests maybe
  • make it crossplatform compatible (currently it depends on usb_serial package which makes it android exclusive. Linux, OSX and Windows should be possible aswell)

Libraries

Answer
ClockAnswer
ClockAnswerType
ClockButton
ClockCommand
ClockMessage
Command
DGTBoard
DGTCommunicationClient
DGTMessage
DGTProtocol
FieldUpdate
FieldUpdate
GetBoard
GetClockInfo
GetClockVersion
GetSerialNumber
GetVersion
Piece
SendClockAscii
SendClockBeep
SendClockSet
SendReset
SendUpdate
SendUpdateBoard
SendUpdateNice