as3993 ST25RU3993 Firmware
|
Go to the source code of this file.
Functions | |
void | callWrongCommand (void) |
void | callReaderConfig (void) |
void | callTunerTable (void) |
void | callAutoTuner (void) |
void | callAntennaTuner (void) |
void | callAntennaPower (void) |
void | callConfigGen2 (void) |
void | callConfigTxRx (void) |
void | callInventory6B (void) |
void | callReadFromTag6B (void) |
void | callWriteToTag6B (void) |
void | callInventoryGen2 (void) |
void | callSelectTag (void) |
void | callWriteToTag (void) |
void | callChangeFreq (void) |
void | callReadFromTag (void) |
void | callLockUnlockTag (void) |
void | callKillTag (void) |
void | callStartStop (void) |
void | callGenericCommand (void) |
void | callConfigPA (void) |
void | callInventoryParams (void) |
Variables | |
struct callFunction | call_fkt_ [CALL_FKT_SIZE] |
Table to branch into the functions associated with a specific command.
This file provides a table (call_fkt_()) which allows to branch into functions depending on which command has been received. Each command has an 8bit identifier. This identifier is also used as offset in the table, to branch into the corresponding function. The 8bit identifier is rx-ed from the host (command ID) as described in Protocol description.
Definition in file appl_commands_table.c.
void callAntennaPower | ( | void | ) |
This function enables/disables the RF field and is executed when a stream packet with protocol = CMD_ANTENNA_POWER is received.
The payload of the stream packet looks like this:
Byte | 0 | 1 |
---|---|---|
Content | 0x00 for off 0xFF for on | eval_mode |
eval_mode: reserved, should be zero
The device sends back:
Byte | 0 |
---|---|
Content | 0 |
Status of the reply packet indicates success or error.
Definition at line 402 of file appl_commands.c.
void callAntennaTuner | ( | void | ) |
This function sets and reads antenna tuner network related values and is executed when a stream packet with protocol = CMD_ANTENNA_TUNER is received. There are different kind of tuning networks available. The full network which is currently supported by the Firmware looks like this:
On the Femto Reader there is a reduced tuning network: Clen is missing.
The DTCs capacity values range from:
The format of the payload from the host is: Get/Set current tuner parameters:
Byte | 0 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|---|
Content | set_cin | cin | set_clen | clen | set_cout | cout |
The values are only being set if the proper set_X value is set to 1.
The device sends back:
Byte | 0 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|---|
Content | reserved (0) | cin | reserved(0) | clen | reserved(0) | cout |
Reply status will be set to ERR_NONE if operation was successful. If reader does not support tuning status will be set to ERR_REQUEST.
Definition at line 501 of file appl_commands.c.
void callAutoTuner | ( | void | ) |
This function allows to trigger a auto tuning cycle. For in detail information to antenna tuning see callAntennaTuner() and tuner.h.
The function is executed when a stream packet with protocol = CMD_AUTO_TUNER is received. The format of the payload from the host is:
Byte | 0 |
---|---|
Content | auto_tune |
If the auto_tune value is not equal zero a auto tuner cycle will be started:
The device does not send a reply back, but the result of the auto tuning procedure can be read by callAntennaTuner().
Definition at line 612 of file appl_commands.c.
void callChangeFreq | ( | void | ) |
This function sets/adds/measures frequency related stuff and is executed when a stream packet with protocol = CMD_CHANGE_FREQ is received.
The format of the payload received from the host is one of the following:
Get RSSI level
Byte | 0 | 1 .. 3 |
---|---|---|
Content | 1 (SubCmd) | freq |
The reader replies with:
Byte | 0 | 1 | 2 |
---|---|---|---|
Content | I-channel | Q-channel | - |
The reader replies with ERR_REQUEST for HW with no external PA.
Get Reflected Power level
Byte | 0 | 1 .. 3 | 4 |
---|---|---|---|
Content | 2 (SubCmd) | freq | Apply Tuner Setting |
to which the reader replies with:
Byte | 0 | 1 |
---|---|---|
Content | I-channel | Q-channel |
Add frequency to frequency list used for hopping. If clear_list is set the list will be deleted before adding the new frequency. rssi_threshhold and profile_id are global values and not set for every frequency. Therefore the last value which they have been set to is valid.
Byte | 0 | 1 .. 3 | 4 | 5 | 6 |
---|---|---|---|---|---|
Content | 4 (SubCmd) | freq | clear_list | rssi_threshhold(dBm) | profile_id |
Where rssi_threshold is used by the "listen before talk" feature: Before hopping to a new channel the reader listens on the frequency if the rssi value is smaller than this threshold.
profile_id is used by the Reader Suite to enumerate the various frequency profiles.
The reader replies with this:
Byte | 0 |
---|---|
Content | 0x00 |
Status will be set to ERR_MEM if no more frequency can be added (see MAXFREQ). If command was successful status will be ERR_NONE.
Get frequency list related parameters
Byte | 0 |
---|---|
Content | 5 (SubCmd) |
The reader replies with:
Byte | 0 | 1 .. 3 | 4 .. 6 | 7 | 8 |
---|---|---|---|---|---|
Content | profile_id | min_freq | max_freq | curr_num_freqs | host_num_freqs |
Where profile_id and rssi_threshold refer to the values used in SubCmd 4. Values for the other parameters are:
Name | values |
---|---|
min_freq | Minimum frequency of current frequency list. |
max_freq | Maximum frequency of current frequency list. |
curr_num_freq | Number of frequencies in current frequency list. |
host_num_freq | Number of frequencies the host sent to add with SubCmd 4. Might be bigger than curr_num_freq. |
Set frequency hopping related parameters
Byte | 0 | 1 .. 2 | 3 .. 4 | 5 .. 6 | 7 |
---|---|---|---|---|---|
Content | 8 (SubCmd) | listeningTime | maxSendingTime | idleTime | rssi threshold |
The reader replies with:
Byte | 0 |
---|---|
Content | 0x00 |
Status of reply will be ERR_NONE.
Get frequency hopping related parameters
Byte | 0 |
---|---|
Content | 9 (SubCmd) |
The reader replies with:
Byte | 0 .. 1 | 2.. 3 | 4 .. 5 |
---|---|---|---|
Content | listening_time | max_sending_time | idle_time |
Status of reply will be ERR_NONE.
Byte | 0 | 1 .. 3 | 4 .. 5 | 6 | 7 .. 16 |
---|---|---|---|---|---|
Content | 16 (SubCmd) | freq | duration in ms | random | random_data |
Definition at line 2177 of file appl_commands.c.
void callConfigGen2 | ( | void | ) |
This function sets and reads various gen2 related settings and is executed when a stream packet with protocol = CMD_CONFIG_TX_RX is received. Most of the parameters are related to the QUERY commmand of the Gen2 protocol specification.
The format of the payload from the host is:
Byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Content | set_lf | lf | set_coding | coding | set_session | session | set_trext | trext | set_tari | tari | set_qbegin | qbegin | set_sel | sel | set_target | target |
The values are only being set if the proper set_X value is set to 1.
The device sends back:
Byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Content | reserved(0) | lf | reserved(0) | coding | reserved(0) | session | reserved(0) | trext | reserved(0) | tari | reserved(0) | qbegin | reserved(0) | sel | reserved(0) | target |
Values for the different parameters are:
Name | values |
---|---|
lf | 0 = 40 kHz, 3 = 80 kHz not AS3993, 6 = 160 kHz, 8 = 213 kHz, 9 = 256 kHz, 12 = 320 kHz, 15 = 640 kHz |
coding | 0 = FM0, 1 = Miller2, 2 = Miller4, 3 = Miller8 |
session | 0 = S0, 1 = S1, 2 = S2, 3 = S3 |
trext | 0 = short preamble, no pilot tone, 1 = long preamble, pilot tone |
tari | 0 = 6.25 us, 1 = 12.5 us, 2 = 25 us |
qbegin | 0 .. 15. Initial gen2 round is 2^qbegin long. Please be careful with higher values. |
sel | 0 .. 1 = All, 2 = ~SL, 3 = SL |
target | 0 = A, 1 = B |
Definition at line 1383 of file appl_commands.c.
void callConfigPA | ( | void | ) |
This function changes the PA HW configuration and is executed when a stream packet with protocol = CMD_CALL_PA_ID is received.
This function is currently only available for Newton readers. The payload of the stream packet looks like this:
Byte | 0 | 1 |
---|---|---|
Content | ReadWriteMode | Config Word |
ReadWriteMode:
0=> Read, 1=>Write and Read
ConfigWord:
Bit 0 (LSB) : Value for G8
Bit 1 (2LSB): Value for G16
1 => High
0 => Low
The reply of this command looks like this:
Byte | 1 |
---|---|
Content | Config Word |
Status of the reply packet indicates success or error.
Definition at line 3489 of file appl_commands.c.
void callConfigTxRx | ( | void | ) |
This function sets and reads various RF Tx/Rx related settings and is executed when a stream packet with protocol = CMD_CONFIG_TX_RX is received.
The format of the payload from the host is:
Byte | 0 | 1 | 2 | 3 |
---|---|---|---|---|
Content | set_sensitivity | sensitivity | set_antenna | antenna id |
The values are only being set if the proper set_X value is set to 1.
The device sends back:
Byte | 0 | 1 | 2 | 3 |
---|---|---|---|---|
Content | reserved(0) | sensitivity | reserved (0) | antenna id |
Values for the different parameters are:
Name | values |
---|---|
sensitivity | -128 .. 127 (dBm) |
antenna id | 1: antenna port 1 2: antenna port 2 |
Definition at line 1187 of file appl_commands.c.
void callGenericCommand | ( | void | ) |
This function executes an generic command from a previously selected gen2 tag when a stream packet with protocol = CMD_GENERIC_CMD_ID is received.
The format of the payload from the host is:
Byte | 0..3 | 4..5[UpperNibble] | 5[LowerNibble]..6 | 7 | 8 | 9..9+TransmitByteSize |
---|---|---|---|---|---|---|
Content | password | length_transmit_data | length_receive_data | direct command | no_response_time | transmit data |
Parameters are:
The device sends back the following report:
Byte | 0 | 1 | 2..2+ReceivedByteSize |
---|---|---|---|
Content | status | length_received_data | received data |
Definition at line 2683 of file appl_commands.c.
void callInventory6B | ( | void | ) |
This function performs one inventory round using ISO18000-6b protocol. The format of the payload from the host is:
Byte | 0 | 1..8 | 9 |
---|---|---|---|
Content | address | word_data | mask |
where
The device sends back:
Byte | 0 | 1..8 | 9..16 | ... |
---|---|---|---|---|
Content | number of tags | ID of first tag | ID of second tag | ... |
Definition at line 1455 of file appl_commands.c.
void callInventoryGen2 | ( | void | ) |
This function performs a single gen2 protocol inventory round according to
parameters configured by callConfigGen2() and callSelectTag().
The function is executed when a stream packet with protocol = CMD_INVENTORY_GEN2 is received.
The format of the payload from the host is:
Byte | 0 | 1 | 2 |
---|---|---|---|
Content | autoAck | tid(2LSB)+fast(LSB) | rssi |
Where autoAck defines if the autoACK mode of the reader is used. If autoAck = 0 autoACK will not be used, otherwise autoACK will be used. The parameter tid defines if a read of the TID Memory will be performed in inventory rounds. If tid = 1 the TID memory will be read, otherwise no read will be done. Parameter fast defines how the inventory rounds are performed. If fast = 0 the inventory round is executed until the tag is in the Open state. If fast = 1 the inventory round is stopped when the tag reaches Acknowledged state (no Req_RN command is sent). See Gen2 protocol specification page 47: Tag state diagram for details.
The rssi parameter defines which rssi value should be measured when getting a tag. The value of rssi parameter will be written to register 0x29.
The device sends back all the tags using the following report:
Byte | 0 | 1 | 2 | 3 | 4 | 5 .. 7 | 8 | 9 | 10 | 11 .. 11+epclen | 12+epclen | 13+epclen .. 15+epclen | ... |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Content | cyclic | tags_left | tags_in_reply | AGC and status (reg 0x2A) | RSSI_value (reg 0x2B) | base_freq | epclen+pclen | pc[0] | pc[1] | epc | next tag: RSSI | next tag: base_freq | ... |
Sending the reply is implemented in function sendTagData(), which has to be called repeatedly until all tag data has been sent.
Definition at line 1667 of file appl_commands.c.
void callInventoryParams | ( | void | ) |
This function changes some Inventory Parameters and is executed when a stream packet with protocol = CMD_CALL_INV_PARAMS_ID is received.
The payload of the stream packet looks like this:
Byte | 0 | 1..2 | 3 | 4 | 5 | 6 | 7 | 8 | 9..10 | 11 |
---|---|---|---|---|---|---|---|---|---|---|
Content | Write Round Delay | Round Delay | Write Query Adjust Parameters | Adaptive Q | Addtional Rounds | QueryAdjust Up Threshold | QueryAdjust Down Threshold | Write Tuning Parameters | Tuning Interval | Tuning Deviation |
Write Round Delay: 0 => Read, 1 => Write and Read
Round Delay: Inventory Round Delay
Write Query Adjust Parameters: 0 => Read, 1 => Write and Read
Adaptive Q: 0 => Off, 1 => On, see function inventoryGen2
Addtional Rounds: see function gen2SearchForTags
QueryAdjust Up Threshold: see function gen2SearchForTags
QueryAdjust Down Threshold: see function gen2SearchForTags
Write Tuning Parameters: 0 => Read, 1 => Write and Read
Tuning Interval: see function hopFrequencies
Tuning Deviation: see function hopFrequencies
The reply of this command looks like this:
Byte | 0..1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|
Content | Round Delay | Adaptive Q | Addtional Rounds | QueryAdjust Up Threshold | QueryAdjust Down Threshold | Write Tuning Parameters | Tuning Interval | Tuning Deviation |
Status of the reply packet indicates success or error.
Definition at line 3541 of file appl_commands.c.
void callKillTag | ( | void | ) |
This function kills a gen2 tag and is executed when a stream packet with protocol = CMD_KILL_TAG is received.
The format of the payload from the host is:
Byte | 0 .. 3 | 4 |
---|---|---|
Content | kill password | recom |
where:
The device sends back the following report:
Byte | 0 |
---|---|
Content | status |
Definition at line 2594 of file appl_commands.c.
void callLockUnlockTag | ( | void | ) |
This function locks\unlocks a gen2 tag and is executed when a stream packet with protocol = CMD_LOCK_UNLOCK_TAG is received.
The format of the payload from the host is:
Byte | 0..2 | 3 .. 5 |
---|---|---|
Content | mask_and_action | access password |
The device sends back the following report:
Byte | 0 |
---|---|
Content | tag_code |
Definition at line 2534 of file appl_commands.c.
void callReaderConfig | ( | void | ) |
This function gets/sets the current reader config and is executed when a stream packet with protocol = CMD_READER_CONFIG is received. The reader config contains the power down mode which can be changed and various non-changeable parameters like: error codes, FW compile time switches, ...
The format of the payload from the host is:
Byte | 0 | 1 |
---|---|---|
Content | set_powermode | powermode |
The values are only being set if the proper set_X value is set to 1.
The powermode value will be applied to readerPowerDownMode variable and used in powerDownReader() and powerUpReader().
The device reply payload is:
Byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|---|
Content | WrongChipId | InitErrCode | VCO | PA | INPUT | AntSwitch | Tuner | powerDownMode | Hardware ID |
The values for the parameters are:
Parameter | Values |
---|---|
WrongChipId | 0-99: No Error. FW and reader chip match. The value is the last to digits of the reader chip eg: for AS3993 the value is 93. 0xFF: FW is not compatible with the reader chip on this board. |
Init Error | 0: No Error. Init of reader chip was successful. 1: Writing and reading SPI failed. 2: Reset via EN low + high failed. 3: IRQ line failed. 4: Crystal not stable (Bit0 in AGC and Internal Status register 0x2A). 5: PLL not locked (Bit1 in AGC and Internal Status register 0x2A) |
VCO | 0: FW was compiled for internal VCO (INTVCO). 1: FW was compiled for external VCO (EXTVCO). |
PA | 0: FW was compiled for internal PA (INTPA). 1: FW was compiled for external PA (EXTPA). |
Input | 0: FW was compiled for balanced input (BALANCEDINP). 1: FW was compiled for single input (SINGLEINP). |
AntSwitch | 0: FW was not compiled for 2 antenna ports. 1: FW was compiled to use 2 antenna ports (ANTENNA_SWITCH). |
Tuner | Or'ed tuner configuration, every bit repesents a tunable cap (DTC). 0: FW does not support tuning. 0x01: Cin tuner is used (TUNER_CIN). 0x02: Clen tuner is used (TUNER_CLEN). 0x04: Cout tuner is used (TUNER_COUT). other bits: not yet supported. |
powerDownMode | Currently configured power down mode of reader. Available modes are: POWER_DOWN, POWER_NORMAL, POWER_NORMAL_RF and POWER_STANDBY. |
Hardware ID | Identification number for the board (HARDWARE_ID_NUM) Available IDs are defined in as3993_config.h |
If any of the parameters is set to 0xFF an unidentified error/configuration occured.
Definition at line 995 of file appl_commands.c.
void callReadFromTag | ( | void | ) |
This function reads from a previously selected gen2 tag and is executed when a stream packet with protocol = CMD_READ_FROM_TAG is received.
The format of the payload from the host is:
Byte | 0 | 1..4 | 5..8 |
---|---|---|---|
Content | mem_bank | address | password |
rxSize divided by two defines the number of words to be read. If rxSize is odd then word by word reading is used. If even the desired memory is read as one bulk. Parameters are:
The device sends back the following report:
Byte | 0..txSize(max) |
---|---|
Content | data |
If the returned error is ERR_HEADER, the txSize will be odd and the last byte will be the error code returned by the tag.
Definition at line 2433 of file appl_commands.c.
void callReadFromTag6B | ( | void | ) |
This function reads from a tag using ISO18000-6b protocol command READ. The format of the payload from the host is:
Byte | 0..7 | 8 |
---|---|---|
Content | ID | address |
The device sends back:
Byte | 0..7 |
---|---|
Content | word_data |
Definition at line 1508 of file appl_commands.c.
void callSelectTag | ( | void | ) |
This function stores or clears gen2 select command parameters. The gen2 select based on these parameters can be executed with the function performSelects.
A Gen2 tag can be singulated using the given mask for subsequent operations like inventory/read/write. Several (MAX_SELECTS) Select commands can be configured, which are executed sequentially, allowing union and intersection based tag partitioning. See Gen2 protocol specification for further details.
This function is executed when a stream packet with protocol = CMD_SELECT_TAG is received.
The format of the payload received from the host is one of the following:
Clear list of Select commands (no Select commands is executed):
Byte | 0 | ... |
---|---|---|
Content | 0x00 (SubCmd ID) | ignored |
The device sends back status ERR_NONE and no payload.
Add to list of Select commands, execute the Select commands and try to singulate a tag:
Byte | 0 | 1 | 2 | 3 | 4 .. 5 | 6 | 7 | 8 .. 8 + mask_len |
---|---|---|---|---|---|---|---|---|
Content | 0x01 (SubCmd ID) | target | action | mem_bank | address | mask_len | truncate | mask |
The device sends back a status (no payload). ERR_MEM if no more select command can be selected or a specific Gen2 error if singulating tag failed.
Byte | 0 | 1 | 2 | 3 | 4 .. 5 | 6 | 7 | 8 .. 8 + mask_len |
---|---|---|---|---|---|---|---|---|
Content | 0x02 (SubCmd ID) | target | action | mem_bank | address | mask_len | truncate | mask |
Values for the different parameters are:
Name | values |
---|---|
target | 0 = Inventoried (S0), 1 = Inventoried (S1), 2 = Inventoried (S2), 3 = Inventoried (S3), 4 = SL, >4 = RFU |
action | Action tag should perform is Select matches. See Table 6.20 in Gen2 protocol specification. |
mem_bank | 0 = RFU, 1 = EPC, 2 = TID, 3 = User |
address | 16bit pointer in memory bank, where mask should be applied. Will be converted into EBV format before Select command is sent. |
mask_len | Length of mask in bits. |
truncate | 0 = Disable truncation. 1 = Enable truncation. |
mask | Actual mask data. |
Definition at line 1849 of file appl_commands.c.
void callStartStop | ( | void | ) |
This function starts/stops cyclic inventory rounds and is executed when a stream packet with protocol = CMD_START_STOP is received.
The cyclic inventory rounds are performed by calling callInventoryGen2Internal() from the main loop. Therefore after starting a cyclic inventory, the host has to expect data just like after issueing the callInventoryGen2() because sendTagData() will be called repeatedly.
The format of the payload from the host is:
Byte | 0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|---|
Content | update | start | autoAck | tid(2LSB)+fast(LSB) | rssi |
If update is zero the command is ignored. Parameter start defines if the cyclic inventories are started (1) or stopped (0).
For description of autoAck,tid, fast and rssi parameters see callInventoryGen2().
The device sends back:
Byte | 0 |
---|---|
Content | current start value |
Subsequently callInventoryGen2() result packets are returned in a dense continuous loop.
Definition at line 2639 of file appl_commands.c.
void callTunerTable | ( | void | ) |
This function allows to update the tuner table. For in detail information to antenna tuning see callAntennaTuner() and tuner.h.
The function is executed when a stream packet with protocol = CMD_TUNER_TABLE is received. The format of the payload received from the host is one of the following:
Get current tuning table size:
Byte | 0 |
---|---|
Content | 0x00 (SubCmd ID) |
The device sends back:
Byte | 0 | 1 | 2 |
---|---|---|---|
Content | 0x00 (SubCmd ID) | maximum tuning table size this device supports | current tuning table size |
Delete current tuning table:
Byte | 0 |
---|---|
Content | 0x01 (SubCmd ID) |
The device sends back:
Byte | 0 | 1 | 2 |
---|---|---|---|
Content | 0x01 (SubCmd ID) | maximum tuning table size this device supports | n/a |
Add new entry in tuning table:
Byte | 0 | 1..3 | 4 | 5 | 6 | 7 | 8..9 | 10 | 11 | 12 | 13 | 14..15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Content | 0x02 (SubCmd ID) | frequency | Ant1: tune enable | Ant1: cin | Ant1: clen | Ant1: cout | Ant1: I*I+Q*Q | Ant2: tune enable | Ant2: cin | Ant2: clen | Ant2: cout | Ant2: I*I+Q*Q |
Adds the data to the internal tuning table. The first set of data is for antenna 1 the second set for antenna 2.
The device responds:
Byte | 0 | 1 | 2 |
---|---|---|---|
Content | 0x02 (SubCmd ID) | remaining size in tuningTable | n/a |
If no more space is left in tuningTable the status will be set to ERR_NOMEM. If adding to tuningTable was successful status will be set to ERR_NONE.
Byte | 0 | 1 | 2 |
---|---|---|---|
Content | 0xFF | 0x00 | n/a |
Definition at line 880 of file appl_commands.c.
void callWriteToTag | ( | void | ) |
This function writes to a previously selected (callSelectTag()) gen2 tag
and is executed when a stream packet with protocol = CMD_WRITE_TO_TAG is received.
The format of the payload from the host is:
Byte | 0 | 1 | 2 .. 5 | 6 .. (rxsize-1) |
---|---|---|---|---|
Content | mem_bank | address | acces_pw | data |
where
The device sends back:
Byte | 0 | 1 |
---|---|---|
Content | num_words_written | tag error code if status==ERR_HEADER |
Definition at line 1940 of file appl_commands.c.
void callWriteToTag6B | ( | void | ) |
This function writes to a tag using ISO18000-6b protocol command WRITE. The format of the payload from the host is:
Byte | 0..7 | 8 | 9 |
---|---|---|---|
Content | ID of the tag | address | byte_data |
The device sends back:
Byte | 0 |
---|---|
Content | acknowledge |
Definition at line 1552 of file appl_commands.c.
void callWrongCommand | ( | void | ) |
Dummy appl command which is called if an invalid command ID was received. Logs error message and returns error ERR_REQUEST to host.
Definition at line 343 of file appl_commands.c.
struct callFunction call_fkt_[CALL_FKT_SIZE] |
Table of function pointers. The offset in the table matches the command identifier. When a command is received the corresponding function will be called via this table.
Definition at line 67 of file appl_commands_table.c.