Vstupy a výstupy do Portálu

Vstupy

Digitální

Digitální vstup je definován makrem DIGITAL_INPUT(). Jeho argumentem je název digitálního vstupu, následovaný anonymní metodou s obsluhou argumentu "value".

DIGITAL_INPUT(NAME, {
    // METHOD BODY
    // do something with variable 'value'
});

Tedy například pro vytvoření digitální vstupu s názvem 'custom_digital_input' a vypsání přijaté hodnoty vstupem je třeba napsat

DIGITAL_INPUT(custom_digital_input, {
    printf("custom_digital_value = %d\n", value);
});

Analogový

Podobně jako digital input se vytváří analog input

ANALOG_INPUT(NAME, {
    // METHOD BODY
    // do something with variable 'value'
});

Analogový vstup s názvem 'custom_analog_input' a výpisem svojí hodnoty se tedy vytvoří následovně

ANALOG_INPUT(custom_analog_input, {
    printf("custom_analog_value = %f\n", value);
});

Message

Vstup typu 'message' je trochu odlišný od předchozích dvou variant. Umožňuje příjem několika hodnot různých typů v jedné zprávě. Seznam typů je nutno nadefinovat v hlavičce metody. Jednotlivé argumenty je možno vyčítat z proměnných 'argn', kdy 'n' je počet argumentů (1-8). Tedy nikoliv z proměnné 'value', jako v předchozích dvou případech.

Typy argumentů mohou být

  • bool

  • int

  • float

  • string

Message vstup s jedním argumentem typu 'string'

// message input with 1 argument - string
MESSAGE_INPUT(custom_message_input_str, STRING, {
    printf("received message input string %s\n", arg1);
});

Příklad message vstupu s jedním argumentem typu 'integer'

// message input with 1 argument - integer
MESSAGE_INPUT(custom_message_input_int, INTEGER, {
    printf("received message input integer %d\n", arg1);
});

Kombinovaný message vstup se čtyřmi argumenty typu 'bool', 'int', 'float' a 'string'

// message input with 4 arguments - bool, int, float a string
MESSAGE_INPUT(custom_message_input_combi, BOOLEAN, INTEGER, FLOAT, STRING, {
    printf("received message input bool %d, int %d, float %f, string %s\n", arg1, arg2, arg3, arg4);
});

Výstupy

Prototypy výstupu je nutno definovat v hlavičce kódu.

Digitální

Definice vlastního digitálního výstupu s názvem 'custom_digital_output'

DIGITAL_OUTPUT(custom_digital_output);

Příklad použití v kódu

bool value = 1;
custom_digital_output(value);

Analogový

Analogový výstup s názvem 'custom_analog_output'

ANALOG_OUTPUT(custom_analog_output);

Příklad použití v kódu

float value = 1;
custom_analog_output(value);

Message

Message výstup, analogicky s vstupem, podporuje více argumentů, které je třeba specifikovat. Podporované jsou stejné typy, jako v případě vstupu:

  • bool

  • int

  • float

  • string

Takto může vypadat prototyp funkce s argumentem typu 'string'.

MESSAGE_OUTPUT(custom_message_output_str, STRING);

Kombinovaný prototyp funkce s argumenty typu 'bool', 'int', 'float' a 'string'.

MESSAGE_OUTPUT(custom_message_output_str, BOOLEAN, INTEGER, FLOAT, STRING);

Příklad použí kombinovaného výstupu v aplikaci

bool value_bool = true;
int value_int = 42;
float value_float = 1.234;
char value_string[64];
sprintf(value_string, "test containing another values - %d, %d, %f\n", value_bool, value_int, value_float);
custom_message_output_str(value_bool, value_int, value_float, value_string);

Last updated