Skip to content

Portable data terminal and local outlet applications kit

License

Notifications You must be signed in to change notification settings

dkdhub/dkd-outlet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 

Repository files navigation

DKD Outlet Kit

Devices

The DKD Outlet operates as local MQTT broker that conforms v3.1.1 specification of the protocol. With an eye to the limitation of freeware version of the software it may be used as a lightweight replacement of other brokers to handle local equipment and sensors among other production tasks.

Authorization

Freeware version of DKD Outlet is auth and encryption free, so any device may connect the instance.

Configurations

Everything described in this section is of reference and advisory nature. The embedded configuration covers everything needed for work and doesn’t require additional configuring.

Netty

netty.epoll

Linux systems can use epoll instead of nio. To get a performance gain and reduced GC. See http://netty.io/wiki/native-transports.html for more information

netty.mqtt.message_size

by default the max size of message is set at 8092 bytes. See http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/mqtt-v3.1.1-errata01-os-complete.html#_Toc442180836 for more information about payload size specs.

java options
-Dnetty.epoll=true
-Dnetty.mqtt.message_size=8092

Logging

Custom config

-Dlogback.configurationFile=$(pwd)/logback.xml
logback.xml
<configuration scan="false">
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} %-5level [%thread] %logger{36} - %msg%n</pattern>
        </encoder>

        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
    </appender>

    <root level="WARN">
        <appender-ref ref="STDOUT"/>
    </root>
    <root level="ERROR">
        <appender-ref ref="STDOUT"/>
    </root>
    <root level="INFO">
        <appender-ref ref="STDOUT"/>
    </root>

    <logger name="org.eclipse.jetty" level="INFO"/>
    <logger name="dkd-outlet" level="INFO"/>
</configuration>

Starting the app

Local Outlet

DKD Outlet is a complex multi-platform build that includes Java application and Web UI. It serves local filesystem for delivering raw data and has embedded filemanager to handle structured data. The UI part will be started automatically and once started will connect the backend side. This app aims to assist user in handling the DKD sorting tasks locally and requires neither Internet connection nor any additional services enabled.

Starting the app
$ cd /path/to/your/application
$ java -jar dkd-outlet-<version>-standalone.jar

Once started, the application will create database and temporary catalog at the directory it has been run from:

dkd-outlet.mv.db
tmp-storage
Warning
Those file system entities will contain everything needed for the application to work and to rever self in case of crash. Please, be careful - once these entities removed there are no ways to recover your data.
Ports the application is listening on:
  • 10800/TCP - API service (HTTP server)

  • 10883/TCP - Device connections (MQTT broker)

  • 11883/TCP - UI connections (MQTT broker)

Portable Data Terminal

PDT app is an Android application aimed to handle sorting/fulfill tasks handy and comfortably. It may Work with DKDHUB API for registered users, but also may be used locally as a client for DKD Outlet. In order to switch your PDT to the local server just open application settings and switch to localmode following by server address and simple configuration.

Once task is loaded to the mobile app it will require network connectivity only for synchronising the task’s results with server.

Mobile clients may find one another using Bluetooth and Wi-Fi AdHoc as well as via server using messaging protocol. The latest one option intended for covering complex needs of synchronising multiple devices that run different versions of DKD Software of managed by different OSes (like, for instance, Android and iOS).

The tasks and all their data are stored locally on device until manually deleted by user.

The rationale for that is simple: this applications kit brings to SMB retail and small logistic units ability to stay operational under all and any circumstances. Even on complete blackouts, on the fields without network coverage, in bomb shelter and so on. Once the task is received on device it may be distributed and synchronised across devices group using built in p2p protocol. Once conditions are recovered - the result may be pushed back to server at any moment.

License

The DKD Outlet software is Freemium and does not require any additional activities to be done to get its components working. The software distributes 'as is' in binary form and is free of charge. However, shareware is a proprietary software kind and does not imply any additional warranty, source code access, passing out any intellectual properties rights among other conditions. In all and any other parts therein that does not confront the previously mentioned, the DKD Outlet software is covered by Commercial Licence Agreement for DKD and/or DKDHUB products that placed aside at this repository.

Copyrights

© 2021-2023 Fern Flower Lab and affiliates