pyGestalt

Logo

A control system framework for personal automation.

View the Project on GitHub imnp/pygestalt

Standard Service Routines

The following service routines are a part of the standard pyGestalt gestaltVirtualNodes class, and are necessary for supporting essential node behavior. These include associating virtual and physical nodes on the Gestalt network, syncronizing commands across nodes, and for loading new firmware.

Port Service Routine
1 statusRequest
2 bootCommandRequest
3 bootWriteRequest
4 bootReadRequest
5 urlRequest
6 setAddressRequest
7 identifyRequest
8 syncRequest
255 resetRequest

statusRequest

Outbound (Virtual -> Physical Node) Payload Format: Empty

Inbound (Physical -> Virtual Node) Payload Format:

Payload Byte Description
Byte 0 Status (“b” = bootloader, “a” = application)
Byte 1 Application Validity (170 if valid)

bootCommandRequest

Outbound (Virtual -> Physical Node) Payload Format:

Payload Byte Description
Byte 0 Command (0 = start bootloader, 1 = start application)

Inbound (Physical -> Virtual Node) Payload Format:

Payload Byte Description
Byte 0 Response (5 = bootloader started, 9 = app. started)
Byte 1 Page Number (Byte 0)
Byte 2 Page Number (Byte 1)

bootWriteRequest

Outbound (Virtual -> Physical Node) Payload Format:

Payload Byte Description
Byte 0 Command (2 = write page)
Byte 1 Page Number (Byte 0)
Byte 2 Page Number (Byte 1)
Byte 3 -> N Page Data

Inbound (Physical -> Virtual Node) Payload Format:

Payload Byte Description
Byte 0 Response (1 = writing page now)
Byte 1 Page Number (Byte 0)
Byte 2 Page Number (Byte 1)

bootReadRequest

Outbound (Virtual -> Physical Node) Payload Format:

Payload Byte Description
Byte 0 Page Number (Byte 0)
Byte 1 Page Number (Byte 1)

Inbound (Physical -> Virtual Node) Payload Format:

Payload Byte Description
Byte 0 Page Number (Byte 0)
Byte 1 Page Number (Byte 1)
Byte 2 -> N Page Data

urlRequest

Outbound (Virtual -> Physical Node) Payload Format: Empty

Inbound (Physical -> Virtual Node) Payload Format:

Payload Byte Description
Byte 0 -> N Virtual Node URL

setAddressRequest

Outbound (Virtual -> Physical Node) Payload Format:

Payload Byte Description
Byte 0 New Address (Byte 0)
Byte 1 New Address (Byte 1)

Inbound (Physical -> Virtual Node) Payload Format:

Payload Byte Description
Byte 0 -> N Virtual Node URL

identifyRequest

Outbound (Virtual -> Physical Node) Payload Format: Empty

Inbound (Physical -> Virtual Node) Packet: None

syncRequest

Outbound (Virtual -> Physical Node) Payload Format: Empty

Inbound (Physical -> Virtual Node) Packet: None

resetRequest

Outbound (Virtual -> Physical Node) Payload Format: Empty

Inbound (Physical -> Virtual Node) Packet: None