kinomajs.md

November 1, 2016 ยท View on GitHub

#Navigating the KinomaJS Application Framework Source Code and Documentation

Note: In this document, 'KinomaJS' refers to the JavaScript application framework for embedded devices created by Kinoma, not the entire Kinoma software stack.

The source code for the KinomaJS application framework is contained in kinomajs/kinoma/kpr. This document is an overview of what's there, complete with links to source code and documentation.


##Extensions

The extensions folder contains the source code for KinomaJS features related to network connectivity, including Wi-Fi configuration and a variety of network protocols.

###Network Protocols

KinomaJS has its own implementations of the following network protocols. Links in the Protocol column lead to the source code. The samples are part of our collection of KinomaJS sample apps.

ProtocolDocumentationSamples
CoAPCreating a CoAP Client and Server in KinomaJS applications: Provides an overview of CoAP and explains how to use it in KinomaJS applicationscoap-client
coap-server
HTTPEmbedding an HTTP Server in your Application: Describes how to start, stop, and customize your app's HTTP serverbasic-web-service-request
MQTT
SSDPNet Scanner: describes SSDP and how it's used on Kinoma Createssdp
WebSocketswebsocket-client
websocket-server
ZeroconfZeroconf troubleshooting guide: For developers who encounter problems when using Pins Sharing or other Zeroconf featureszeroconf

##Libraries

The libraries folder contains several JavaScript libraries. Some are built-in to the platform, others must be added to the build path. The table below provides a description of each and links to the corresponding source code, documentation, and (where applicable) to samples that showcase them from our collection of KinomaJS sample apps.

LibraryDescriptionDocumentationSamples
ControlsTemplates for basic on-screen buttons, radio buttons, checkboxes, sliders, switches, and input fieldsAdding User Interface Controls : Describes how to use a selection of sample modules and assets to create onscreen input controls.[basic-checkbox] (https://github.com/Kinoma/KPR-examples/tree/master/basic-checkbox)
controls-buttons
CreationsTemplates for frequently used UI elements, such as dialogs, headers, and graphs-level-meter

This module is mainly used by the built-in apps on the home screen of Kinoma Create, rather than those in the samples repository
HIDAllows you to make Linux platforms (e.g. Kinoma Create) act as an HID keyboard, a mouse, and/or gamepadPrototyping Peripherals with Kinoma Create: Explains how to build peripherals using your Kinoma Create Version 2 with the KinomaJS HID libraryhid-gamepad
hid-keyboard
hid-mouse
LowPANBLLs for the KinomaJS BLE implementation; accessed through the Pins module.KinomaJS BLE V2 API : Describes the class-based BLE V2 API, which supports both BLE central and peripheral roles.ble-ancs
ble-clapper
ble-keyboard
+many more

Walkthrough tutorials available in our our hardware tutorials
MobileFrameworkA collection of templates for a variety of features useful for developing mobile apps, including scrollers, screen transitions, and headers/footers-basic-scroller
basic-dialog
menu-button
+many more
MultiTouchLibSimplifies programming controls for devices with touch screens; includes multi-touch handling, swiping gestures, and more-multitouch-picture
multitouch-slide-browser
PinsThe API to communicate with the BLLs of sensors/external hardware attached to the pin connectors on Kinoma CreateSee the Programming with Hardware links in the Kinoma Create section of the root README of this repositorydigital-in-hello-world
analog-starter
pwm-tricolor-led
+many more

Walkthrough tutorials for a collection of common sensors are available in our our hardware tutorials
TransitionsA collection of basic Transitions that can be used to switch between screens of an app-transitions
serial-7segment-display

##Projects

The projects folder contains tools built using the KinomaJS platform, including the Kinoma Create and Kinoma Element launchers.

###Kinoma Create

The Kinoma Create subfolder includes:

  • The source code of the built-in apps seen on the home screen of Kinoma Create.
  • The source code of the Pins simulators used when apps using built-in BLLs are run on the Kinoma Create simulator.
  • Source code for the shells that host the Kinoma Create software in simulation and on the device.

###Kinoma Element

The Kinoma Element subfolder includes:

  • The source code of the Pins simulators used when apps using built-in BLLs are run on the Kinoma Element simulator.
  • The source code for shell that hosts the Kinoma Element simulator.

##Sources

The sources folder contains the C code that implements the KinomaJS application framework; in other words, it contains the native implementation of the JavaScript objects that KinomaJS applications and shells interact with.


##Notes

The tech-notes folder contains additional documentation on miscellaneous topics that may be of interest to developers:

Note: These resources are also available in the Tech Notes section of the Kinoma website