Skip to content
No description, website, or topics provided.
Java
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gradle
.idea
app
build/intermediates
gradle/wrapper
._.DS_Store
README.md
androidKhp021215.iml
androidKhp031115.iml
androidKhp061115.iml
androidKhp081215.iml
androidKhp101115-1.iml
androidKhp101215.iml
androidKhp121215.iml
androidKhp131015.iml
androidKhp151015.iml
androidKhp171115.iml
androidKhp181015.iml
androidKhp191015.iml
androidKhp211215.iml
androidKhp261215.iml
androidKhp281015.iml
androidKhp291015.iml
androidKhp3 -210515.iml
androidKhp3 -230515.iml
androidKhp3 -240515.iml
androidKhp3.iml
build.gradle
gradlew
gradlew.bat
import-summary.txt
khpApp010716.iml
khpApp020616.iml
khpApp030616.iml
khpApp040716.iml
khpApp060116.iml
khpApp060416.iml
khpApp090416.iml
khpApp120416.iml
khpApp120616.iml
khpApp140416.iml
khpApp150416.iml
khpApp170416.iml
khpApp200316.iml
khpApp280416.iml
local.properties
settings.gradle

README.md

kheperAndroid

Kheper3 software interface

** Kheper3 communicates with the outside using Bluetooth Low Energy (BLE). (Ref: Android ==> https://github.com/googlesamples/android-BluetoothLeGatt/) Input : Commands to adjust and customize the operations. Output : Kheper periodically sends characteristic parameters.

1- Controls

They consist of an initial character, possibly followed by parameters with a fixed format (without separator).

For internal organizational reasons, the end of a command execution is not reported (Commands with long run time are specified later in the text)

The commands act mostly on ignition curves that can be described as follows:

1 curve in use (CRR)

1 curve being edited (CR)

14 types including 3 curves modified by the user (1 to 14)

1 curve at zero delay (0)

Each curve is described by:

a label of 16 characters (uint8_t) maximum 75 points representing the delay angle in 1/100 of degree per 200 rpm(unsigned integer uint16_t) parity (kheper calculated) "+" Function: 0.25 deg to add in each of the 75 points of the current curve of service (CRR)

"-" Function: 0.25 deg to subtract in each of the 75 points of the current curve of service (CRR)

"S" Function: Stopping the ignition

"Pxxyyyy;" Function:

changes the value of a point on the curve being edited (CR) xx: number of the point (0 to 74) yyyy: point value in 1/100 of a degree (from 0-35999) if xx = 99 the value is assigned to the 75 points of the currently edited curve (CR) "Eccc...c;" Function:

changes the label of the curve being edited (CR) cccc...c: label terminated by "; "(Length limited to 16 characters) "Wx;" Function:

validation and write in flash of curve being edited (CR) x: number of the curve (1, 2 or 3) long run time command (about 1000 msec) "Vxx;" Function:

curve xx goes in use (0 to 14) If the selected curve is not valid, the command is ignored "G;" Function: reset firmware

Example initialization and validation of an ignition curve (Android):

// All points to 1 deg

mBluetoothService.WriteValue ( "P9900100;");

// Point at 1000 rpm to 0.5 deg

mBluetoothService.WriteValue ( "P0500050;");

// Initialize the label tryIt

mBluetoothService.WriteValue ( "EtryIt;");

// Write flash as curve No. 2

mBluetoothService.WriteValue ( "W2;");

// curve no2 in use mBluetoothService.WriteValue ( "V02;");

2- Parameters

Kheper emits periodically (every 500 msec) via the BLE a series of parameters in the following alphanumeric format (fixed format without separator):

Pvvvvvdddddrrccllll..ll \n

with: vvvvv rpm t / min

ddddd delay 1/100 degree

rr position thumbwheel

cc curve # in function

llll ... label of curve in use (up to 16 characters)

Example: P01200002001402tryIt

1200 rpm

2 deg

14 position of thumbwheel

02 ignition curve #

tryIt iginition curve label

You can’t perform that action at this time.