# 7. MODBUS Communication Protocol

**Read instantaneous flow rate, flow speed, RSSI, and signal quality:**

| 0       | 1            | 2         | 3         | 4      | 5      | 6                              | 7                              |
| ------- | ------------ | --------- | --------- | ------ | ------ | ------------------------------ | ------------------------------ |
| Node ID | Funtion Code | Address 1 | Address 0 | Data 1 | Data 0 | CRC                            | CRC                            |
| 01\~FF  | 04           | 00        | 00        | 00     | 07     | 16 Bit CRC Calculation results | 16 Bit CRC Calculation results |

‌

**Response format:**

| 0       | 1            | 2           | 3                         | 4                         | 5                          | 6                          | 7                          | 8                          | 9                           | 10                          | 11            | 12              | 13       | 14             | 15       | 16              | 17                             | 18                             |
| ------- | ------------ | ----------- | ------------------------- | ------------------------- | -------------------------- | -------------------------- | -------------------------- | -------------------------- | --------------------------- | --------------------------- | ------------- | --------------- | -------- | -------------- | -------- | --------------- | ------------------------------ | ------------------------------ |
| Node ID | Funtion Code | Data length | Integer part of flow rate | Integer part of flow rate | Fraction part of flow rate | Fraction part of flow rate | Integer part of flow speed | Integer part of flow speed | Fraction part of flow speed | Fraction part of flow speed | Upstream RSSI | Downstream RSSI | Reserved | Signal quality | Unit     | Metric/Imperial | CRC                            | CRC                            |
| 01\~FF  | 04           | 0D          | ​Content                  | ​Content                  | ​Content                   | ​Content                   | ​Content                   | ​Content                   | ​Content                    | ​Content                    | ​Content      | ​Content        | 0        | ​Content       | ​Content | ​Content        | 16 Bit CRC Calculation results | 16 Bit CRC Calculation results |

Byte 00 : Node ID‌

Byte 01 : Function code‌

Byte 02 : Data length 10 bytes‌

Byte 03 \~ 04 : Integer part of totalized positive flow rate, Format: 16-bit signed integer‌

Byte 05 \~ 06 : Fraction part of totalized positive flow rate, Format: 16-bit signed integer, divide by 10000 before add to integer part‌

Byte 07 \~ 08 : Integer part of totalized positive flow speed, Format: 16-bit signed integer‌

Byte 09 \~ 10 : Fraction part of totalized positive flow speed, Format: 16-bit signed integer, divide by 10000 before add to integer part‌

Byte 11, 12 : 8-bit unsigned integer, value is between 0 and 100‌

Byte 14 : 8-bit unsigned integer, value is between 0 and 100‌

Byte 15 : 8-bit unsigned integer, convert this number from hexadecimal to decimal, the digit in tens represents the unit of numerator and the digit in ones represents the unit of denominator. The table below shows the corresponding unit for each number.‌

Byte 16 : 8-bit unsigned integer,value is 1 or 2. 1 stands for Metric, 2 stands for Imperial.

**Numerator :**

| Number | Unit                     |
| ------ | ------------------------ |
| 1      | Cubic meter (m³)         |
| 2      | Liter (l)                |
| 3      | USA gallon (gal)         |
| 4      | Imperial Gallon (igl)    |
| 5      | Million USA gallon (Mgl) |
| 6      | Cubic feet (cf)          |
| 7      | USA liquid barrel (bal)  |
| 8      | Oil barrel (ob)          |

‌

**Denominat :**

| Number | Unit   |
| ------ | ------ |
| 1      | Second |
| 2      | Minute |
| 3      | Hour   |
| 4      | Day    |

‌

**Read totalized positive (forward-direction) flow rate :**

| 0       | 1             | 2         | 3         | 4      | 5      | 6                              | 7                              |
| ------- | ------------- | --------- | --------- | ------ | ------ | ------------------------------ | ------------------------------ |
| Node ID | Function Code | Address 1 | Address 0 | Data 1 | Data 0 | CRC                            | CRC                            |
| 01\~FF  | 04            | 00        | 07        | 00     | 05     | 16 Bit CRC Calculation results | 16 Bit CRC Calculation results |

‌

**Response format:**

| 0       | 1             | 2           | 3                                            | 4                                            | 5                                            | 6                                            | 7                                             | 8                                             | 9                                             | 10                                            | 11       | 12       | 13                             | 14                             |
| ------- | ------------- | ----------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | -------- | -------- | ------------------------------ | ------------------------------ |
| Node ID | Function Code | Data length | Integer part of totalized positive flow rate | Integer part of totalized positive flow rate | Integer part of totalized positive flow rate | Integer part of totalized positive flow rate | Fraction part of totalized positive flow rate | Fraction part of totalized positive flow rate | Fraction part of totalized positive flow rate | Fraction part of totalized positive flow rate | Reserved | Unit     | CRC                            | CRC                            |
| 01\~FF  | 04            | 0A          | ​Content                                     | ​Content                                     | ​Content                                     | ​Content                                     | ​Content                                      | ​Content                                      | ​Content                                      | ​Content                                      | 0        | ​Content | 16 Bit CRC Calculation results | 16 Bit CRC Calculation results |

Byte 00 : Node ID‌

Byte 01 : Function code‌

Byte 02 : Data length 10 bytes‌

Byte 03 \~ 06 : 32-bits signed integer‌

Byte 07 \~ 10 : 32-bits signed integer, divide by 1000000 before add to integer part‌

Byte 12 : Value is between 1 and 8. The table below shows the corresponding unit for each number.

| Number | Unit                     |
| ------ | ------------------------ |
| 1      | Cubic meter (m³)         |
| 2      | Liter (l)                |
| 3      | USA gallon (gal)         |
| 4      | Imperial Gallon (igl)    |
| 5      | Million USA gallon (Mgl) |
| 6      | Cubic feet (cf)          |
| 7      | USA liquid barrel (bal)  |
| 8      | Oil barrel (ob)          |

‌

**Read totalized negative (reverse-direciton) flow rate:**

| 0       | 1             | 2         | 3         | 4      | 5      | 6                              | 7                              |
| ------- | ------------- | --------- | --------- | ------ | ------ | ------------------------------ | ------------------------------ |
| Node ID | Function Code | Address 1 | Address 0 | Data 1 | Data 0 | CRC                            | CRC                            |
| 01\~FF  | 04            | 00        | 0C        | 00     | 05     | 16 Bit CRC Calculation results | 16 Bit CRC Calculation results |

​‌

**Response format:**

| 0       | 1             | 2           | 3                                            | 4                                            | 5                                            | 6                                            | 7                                             | 8                                             | 9                                             | 10                                            | 11       | 12       | 13                             | 14                             |
| ------- | ------------- | ----------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | -------- | -------- | ------------------------------ | ------------------------------ |
| Node ID | Function Code | Data length | Integer part of totalized negative flow rate | Integer part of totalized negative flow rate | Integer part of totalized negative flow rate | Integer part of totalized negative flow rate | Fraction part of totalized negative flow rate | Fraction part of totalized negative flow rate | Fraction part of totalized negative flow rate | Fraction part of totalized negative flow rate | Reserved | Unit     | CRC                            | CRC                            |
| 01\~FF  | 04            | 0A          | ​Content                                     | ​Content                                     | ​Content                                     | ​Content                                     | ​Content                                      | ​Content                                      | ​Content                                      | ​Content                                      | 0        | ​Content | 16 Bit CRC Calculation results | 16 Bit CRC Calculation results |

Byte 00 : Node ID‌

Byte 01 : Function code‌

Byte 02 : Data length 10 bytes‌

Byte 03 \~ 06 : 32-bits signed integer‌

Byte 07 \~ 10 : 32-bits signed integer, divide by 1000000 before add to integer part‌

Byte 12 : Value is between 1 and 8. The table below shows the corresponding unit for each number.

| Number | Unit                     |
| ------ | ------------------------ |
| 1      | Cubic meter (m³)         |
| 2      | Liter (l)                |
| 3      | USA gallon (gal)         |
| 4      | Imperial Gallon (igl)    |
| 5      | Million USA gallon (Mgl) |
| 6      | Cubic feet (cf)          |
| 7      | USA liquid barrel (bal)  |
| 8      | Oil barrel (ob)          |

‌

**Read totalized net flow rate:**

| **0**   | 1            | 2         | 3         | 4      | 5      | 6                              | 7                              |
| ------- | ------------ | --------- | --------- | ------ | ------ | ------------------------------ | ------------------------------ |
| Node ID | Funtion Code | Address 1 | Address 0 | Data 1 | Data 0 | CRC                            | CRC                            |
| 01\~FF  | 04           | 00        | 11        | 00     | 05     | 16 Bit CRC Calculation results | 16 Bit CRC Calculation results |

‌

**Response format:**

| 0       | 1             | 2           | 3                                       | 4                                       | 5                                       | 6                                       | 7                                        | 8                                        | 9                                        | 10                                       | 11       | 12       | 13                             | 14                             |
| ------- | ------------- | ----------- | --------------------------------------- | --------------------------------------- | --------------------------------------- | --------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | -------- | -------- | ------------------------------ | ------------------------------ |
| Node ID | Function Code | Data length | Integer part of totalized net flow rate | Integer part of totalized net flow rate | Integer part of totalized net flow rate | Integer part of totalized net flow rate | Fraction part of totalized net flow rate | Fraction part of totalized net flow rate | Fraction part of totalized net flow rate | Fraction part of totalized net flow rate | Reserved | Unit     | CRC                            | CRC                            |
| 01\~FF  | 04            | 0A          | ​Content                                | ​Content                                | ​Content                                | ​Content                                | ​Content                                 | ​Content                                 | ​Content                                 | ​Content                                 | 0        | ​Content | 16 Bit CRC Calculation results | 16 Bit CRC Calculation results |

Byte 00 : Node ID‌

Byte 01 : Function code‌

Byte 02 : Data length 10 bytes‌

Byte 03 \~ 06 : 32-bits signed integer‌

Byte 07 \~ 10 : 32-bits signed integer, divide by 1000000 before add to integer part‌

Byte 12 : Value is between 1 and 8. The table below shows the corresponding unit for each number.

| Number | Unit                     |
| ------ | ------------------------ |
| 1      | Cubic meter (m³)         |
| 2      | Liter (l)                |
| 3      | USA gallon (gal)         |
| 4      | Imperial Gallon (igl)    |
| 5      | Million USA gallon (Mgl) |
| 6      | Cubic feet (cf)          |
| 7      | USA liquid barrel (bal)  |
| 8      | Oil barrel (ob)          |

‌

**Clear all totalized flow rate:**

| **0**   | 1             | 2         | 3         | 4      | 5      | 6                              | 7                              |
| ------- | ------------- | --------- | --------- | ------ | ------ | ------------------------------ | ------------------------------ |
| Node ID | Function Code | Address 1 | Address 0 | Data 1 | Data 0 | CRC                            | CRC                            |
| 01\~FF  | 14            | 00        | 00        | 00     | 00     | 16 Bit CRC Calculation results | 16 Bit CRC Calculation results |

‌

**Clear totalized net flow rate:**

| **0**   | 1             | 2         | 3         | 4      | 5      | 6                              | 7                              |
| ------- | ------------- | --------- | --------- | ------ | ------ | ------------------------------ | ------------------------------ |
| Node ID | Function Code | Address 1 | Address 0 | Data 1 | Data 0 | CRC                            | CRC                            |
| 01\~FF  | 15            | 00        | 00        | 00     | 00     | 16 Bit CRC Calculation results | 16 Bit CRC Calculation results |

‌

**Clear totalized positive (forward-direction) flow rate:**

| **0**   | 1             | 2         | 3         | 4      | 5      | 6                              | 7                              |
| ------- | ------------- | --------- | --------- | ------ | ------ | ------------------------------ | ------------------------------ |
| Node ID | Function Code | Address 1 | Address 0 | Data 1 | Data 0 | CRC                            | CRC                            |
| 01\~FF  | 16            | 00        | 00        | 00     | 00     | 16 Bit CRC Calculation results | 16 Bit CRC Calculation results |

‌

**Clear totalized negative (reverse-direction) flow rate:**

| **0**   | 1             | 2         | 3         | 4      | 5      | 6                              | 7                              |
| ------- | ------------- | --------- | --------- | ------ | ------ | ------------------------------ | ------------------------------ |
| Node ID | Function Code | Address 1 | Address 0 | Data 1 | Data 0 | CRC                            | CRC                            |
| 01\~FF  | 17            | 00        | 00        | 00     | 00     | 16 Bit CRC Calculation results | 16 Bit CRC Calculation results |

## 7.6 Read upstream and downstream PT1000 temperature, instantaneous flow and error bits: (available starting from fw 1.2.2)

Read upstream and downstream PT1000 temperature, instantaneous flow and error bits:

| **0**   | 1             | 2         | 3         | 4      | 5      | 6                              | 7                              |
| ------- | ------------- | --------- | --------- | ------ | ------ | ------------------------------ | ------------------------------ |
| Node ID | Function Code | Address 1 | Address 0 | Data 1 | Data 0 | CRC                            | CRC                            |
| 01\~FF  | 04            | 00        | 16        | 00     | 05     | 16 Bit CRC Calculation results | 16 Bit CRC Calculation results |

Response format:

<table data-header-hidden><thead><tr><th>0</th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th><th>11</th><th>12</th><th>13</th><th>14</th><th data-hidden>15</th></tr></thead><tbody><tr><td>0</td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>Node ID</td><td>Function Code</td><td>Data length</td><td>Upstream temperature multiplied by 10, rounded to the nearest integer (format: 16-Bit signed integer multiplied by ten)</td><td>Upstream temperature multiplied by 10, rounded to the nearest integer (format: 16-Bit signed integer multiplied by ten)</td><td>Downstream temperature multiplied by 10, rounded to the nearest integer (Format: 16-Bit signed integer multiplied by ten)</td><td>Downstream temperature multiplied by 10, rounded to the nearest integer (Format: 16-Bit signed integer multiplied by ten)</td><td>Integer portion of the flow rate (format: 16-Bit signed integer)</td><td>Integer portion of the flow rate (format: 16-Bit signed integer)</td><td>Decimal portion of the flow rate (format: 16-Bit signed integer). It needs to be divided by 10000 before being added to the integer portion.</td><td>Decimal portion of the flow rate (format: 16-Bit signed integer). It needs to be divided by 10000 before being added to the integer portion.</td><td>Reserved</td><td>error code</td><td>CRC</td><td>CRC</td><td></td></tr><tr><td>01~FF</td><td>04</td><td>0A</td><td>00</td><td>00</td><td>00</td><td>00</td><td>00</td><td>00</td><td>00</td><td>00</td><td></td><td>00000000</td><td>16 Bit CRC Calculation results</td><td>16 Bit CRC Calculation results</td><td></td></tr></tbody></table>

Byte 00 : Node ID‌&#x20;

Byte 01 : Function code‌

Byte 02 : Data length 8 bytes&#x20;

Byte 03 \~ 04 : Upstream temperature multiplied by 10, rounded to the nearest integer (format: 16-Bit signed integer multiplied by ten)&#x20;

Byte 05 \~ 06 : Downstream temperature multiplied by 10, rounded to the nearest integer (Format: 16-Bit signed integer multiplied by ten)

Byte 07 \~ 08 : Integer part of the flow rate, format: 16-Bit signed integer&#x20;

Byte 09 \~ 10 : Decimal portion of the flow rate , format: 16-Bit signed integer, before adding it to the integer portion, divide it by 10000

Byte 12 : error code

## 7.6.1 Resetting Totalised Flow Data：

Clear All Totalised Flow Data:

| **0**   | 1             | 2         | 3         | 4      | 5      | 6                 | 7                 |
| ------- | ------------- | --------- | --------- | ------ | ------ | ----------------- | ----------------- |
| Node ID | Function Code | Address 1 | Address 0 | Data 1 | Data 0 | CRC               | CRC               |
| 01\~FF  | 14            | 00        | 00        | 00     | 00     | 16 Bit CRC result | 16 Bit CRC result |

Clear Net Totalised Flow:

| **0**   | 1             | 2         | 3         | 4      | 5      | 6                 | 7                 |
| ------- | ------------- | --------- | --------- | ------ | ------ | ----------------- | ----------------- |
| Node ID | Function Code | Address 1 | Address 0 | Data 1 | Data 0 | CRC               | CRC               |
| 01\~FF  | 15            | 00        | 00        | 00     | 00     | 16 Bit CRC result | 16 Bit CRC result |

Clear Forward Totalised Flow:

| **0**   | 1             | 2         | 3         | 4      | 5      | 6                 | 7                 |
| ------- | ------------- | --------- | --------- | ------ | ------ | ----------------- | ----------------- |
| Node ID | Function Code | Address 1 | Address 0 | Data 1 | Data 0 | CRC               | CRC               |
| 01\~FF  | 16            | 00        | 00        | 00     | 00     | 16 Bit CRC result | 16 Bit CRC result |

Clear Reverse Totalised Flow:

| **0**   | 1             | 2         | 3         | 4      | 5      | 6                 | 7                 |
| ------- | ------------- | --------- | --------- | ------ | ------ | ----------------- | ----------------- |
| Node ID | Function Code | Address 1 | Address 0 | Data 1 | Data 0 | CRC               | CRC               |
| 01\~FF  | 17            | 00        | 00        | 00     | 00     | 16 Bit CRC result | 16 Bit CRC result |

## 7.7 Single Data Read Command (Updated in Firmware 1.2.6)

### 7.7.1      04 Single Data Read - Memory Register List

<table><thead><tr><th width="112">Addr</th><th>Name</th><th width="137">Type</th><th width="103">Length</th></tr></thead><tbody><tr><td>0x00</td><td>Flow Integer Part</td><td>int16_t</td><td>1</td></tr><tr><td>0x01</td><td>Flow Fractional Part × 10,000</td><td>int16_t</td><td>1</td></tr><tr><td>0x02</td><td>Velocity Integer Part</td><td>int16_t</td><td>1</td></tr><tr><td>0x03</td><td>Velocity Fractional Part</td><td>int16_t</td><td>1</td></tr><tr><td>0x16</td><td>Upstream Temperature × 10</td><td>int16_t</td><td>1</td></tr><tr><td>0x17</td><td>Downstream Temperature × 10</td><td>int16_t</td><td>1</td></tr><tr><td>0x1B</td><td>Forward Totalised Flow × 100</td><td>int32_t</td><td>2</td></tr><tr><td>0x1D</td><td>Reverse Totalised Flow × 100</td><td>int32_t</td><td>2</td></tr><tr><td>0x1F</td><td>Net Totalised Flow × 100</td><td>int32_t</td><td>2</td></tr><tr><td>0x21</td><td>Heat Integer Part</td><td>int16_t</td><td>1</td></tr><tr><td>0x22</td><td>Heat Fractional Part × 10,000</td><td>int16_t</td><td>1</td></tr></tbody></table>

### **7.7.2** Read Command Example

A. Reading Big Endian Forward Totalised Flow Data

(TX) Example Transmission :&#x20;

| **0**   | 1             | 2         | 3         | 4      | 5      | 6                 | 7                 |
| ------- | ------------- | --------- | --------- | ------ | ------ | ----------------- | ----------------- |
| Node ID | Function Code | Address 1 | Address 0 | Data 1 | Data 0 | CRC               | CRC               |
| 01      | 04            | 00        | 1B        | 00     | 02     | 16 Bit CRC result | 16 Bit CRC result |

Node ID Byte 01 : Node identifier 01

Function code Byte 01 : Function code 04&#x20;

Addr Byte 02\~03 : 00 1B (Memory address corresponding to forward totalised flow).

Length Byte 05 \~ 06 : 00 02 (corresponding to 2 registers for forward totalised flow ×100).

CRC: (Error-checking code).<br>

(RX) Example Response :

<table data-header-hidden><thead><tr><th>0</th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th data-hidden>15</th></tr></thead><tbody><tr><td>0</td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>15</td></tr><tr><td>Node ID</td><td>Function Code</td><td>Data length</td><td>Forward Totalised Flow × 100：32-Bit signed</td><td>Forward Totalised Flow × 100：32-Bit signed</td><td>Forward Totalised Flow × 100：32-Bit signed</td><td>Forward Totalised Flow × 100：32-Bit signed</td><td>CRC</td><td>CRC</td><td></td></tr><tr><td>01</td><td>04</td><td>04</td><td>00</td><td>12</td><td>D6</td><td>87</td><td>16 Bit CRC result</td><td>16 Bit CRC result</td><td></td></tr></tbody></table>

Node ID Byte 00 : Node identifier 01

Function code Byte 01 : Function code 04&#x20;

Length Byte 02 : 00 04 Data length in 4 bytes&#x20;

Data Byte 03 \~ 06 :  00 12 D6 87 Forward totalised flow ×100 in big endian format (32-bit signed integer).

CRC: (Error-checking code).

#### B. Reading Flow Integer Part TX / RX Example

<table><thead><tr><th width="233">TX Example</th><th>ID</th><th>FUNC</th><th>ADDR</th><th>ADDR</th><th>LEN</th><th>LEN</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Flow Integer Part</td><td>0x01</td><td>0x04</td><td>0x00</td><td>0x00</td><td>0x00</td><td>0x01</td><td></td><td></td></tr></tbody></table>

<table><thead><tr><th width="227">RX Example(big endian)</th><th width="112">Parameter </th><th>ID</th><th>FUNC</th><th>LEN</th><th>DATA</th><th>DATA</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Flow Integer Part </td><td>1234.5</td><td>0x01</td><td>0x04</td><td>0x02</td><td>0x04</td><td>0xD2</td><td></td><td></td></tr><tr><td></td><td>-1234.5</td><td>0x01</td><td>0x04</td><td>0x02</td><td>0xFB</td><td>0x2E</td><td></td><td></td></tr></tbody></table>

#### C. Reading Flow Fractional Part \*10000  TX / RX Example

<table><thead><tr><th width="231">TX Example</th><th width="79">ID</th><th>FUNC</th><th>ADDR</th><th>ADDR</th><th>LEN</th><th>LEN</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Flow Fractional Part *10000</td><td>0x01</td><td>0x04</td><td>0x00</td><td>0x01</td><td>0x00</td><td>0x01</td><td></td><td></td></tr></tbody></table>

<table><thead><tr><th width="232">RX Example(big endian)</th><th width="113">Parameter </th><th>ID</th><th>FUNC</th><th>LEN</th><th>DATA</th><th>DATA</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Flow Fractional Part *10000</td><td>1234.5</td><td>0x01</td><td>0x04</td><td>0x02</td><td>0x13</td><td>0x88</td><td></td><td></td></tr><tr><td></td><td>-1234.5</td><td>0x01</td><td>0x04</td><td>0x02</td><td>0xEC</td><td>0x78</td><td></td><td></td></tr></tbody></table>

#### D. Reading Velocity Integer Part TX / RX Example

<table><thead><tr><th width="202">TX Example</th><th>ID</th><th>FUNC</th><th>ADDR</th><th>ADDR</th><th>LEN</th><th>LEN</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Velocity Integer Part</td><td>0x01</td><td>0x04</td><td>0x00</td><td>0x02</td><td>0x00</td><td>0x01</td><td></td><td></td></tr></tbody></table>

<table><thead><tr><th width="238">RX Example(big endian)</th><th width="113">Parameter</th><th>ID</th><th>FUNC</th><th>LEN</th><th>DATA</th><th>DATA</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Velocity Integer Part</td><td>12.34</td><td>0x01</td><td>0x04</td><td>0x02</td><td>0x00</td><td>0x0C</td><td></td><td></td></tr><tr><td></td><td>-12.34</td><td>0x01</td><td>0x04</td><td>0x02</td><td>0xFF</td><td>0xF4</td><td></td><td></td></tr></tbody></table>

#### E. Reading Velocity Fractional Part\*100000 TX / RX Example

<table><thead><tr><th width="177">TX Example</th><th width="82">ID</th><th>FUNC</th><th>ADDR</th><th>ADDR</th><th>LEN</th><th>LEN</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Velocity Fractional Part*100000</td><td>0x01</td><td>0x04</td><td>0x00</td><td>0x03</td><td>0x00</td><td>0x01</td><td></td><td></td></tr></tbody></table>

<table><thead><tr><th width="236">RX Example(big endian)</th><th width="118">Parameter</th><th width="77">ID</th><th>FUNC</th><th>LEN</th><th>DATA</th><th>DATA</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Velocity Fractional Part*100000</td><td>12.34</td><td>0x01</td><td>0x04</td><td>0x02</td><td>0x0D</td><td>0x48</td><td></td><td></td></tr><tr><td></td><td>-12.34</td><td>0x01</td><td>0x04</td><td>0x02</td><td>0xF2</td><td>0xB8</td><td></td><td></td></tr></tbody></table>

#### F. Reading Upstream Temperature\*10 TX / RX Example

<table><thead><tr><th width="180">TX Example</th><th>ID</th><th>FUNC</th><th>ADDR</th><th>ADDR</th><th>LEN</th><th>LEN</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Upstream Temperature*10</td><td>0x01</td><td>0x01</td><td>0x04</td><td>0x16</td><td>0x00</td><td>0x01</td><td></td><td></td></tr></tbody></table>

<table><thead><tr><th width="245">RX Example(big endian)</th><th width="111">Parameter</th><th>ID</th><th>FUNC</th><th>LEN</th><th>DATA</th><th>DATA</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Upstream Temperature*10</td><td>10.9</td><td>0x01</td><td>0x04</td><td>0x02</td><td>0x00</td><td>0x6D</td><td></td><td></td></tr></tbody></table>

G. Reading Downstream Temperature\*10 TX / RX Example

<table><thead><tr><th width="195">TX Example</th><th>ID</th><th>FUNC</th><th>ADDR</th><th>ADDR</th><th>LEN</th><th>LEN</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Downstream Temperature*10</td><td>0x01</td><td>0x04</td><td>0x00</td><td>0x17</td><td>0x00</td><td>0x01</td><td></td><td></td></tr></tbody></table>

<table><thead><tr><th width="270">RX Example(big endian)</th><th width="113">Parameter</th><th>ID</th><th>FUNC</th><th>LEN</th><th>DATA</th><th>DATA</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Downstream Temperature*10</td><td>0.2</td><td>0x01</td><td>0x04</td><td>0x02</td><td>0x00</td><td>0x02</td><td></td><td></td></tr></tbody></table>

#### H. Reading Forward Totalised Flow TX / RX Example

<table><thead><tr><th width="214">TX Example</th><th>ID</th><th>FUNC</th><th>ADDR</th><th>ADDR</th><th>LEN</th><th>LEN</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Forward Totalised Flow*100</td><td>0x01</td><td>0x04</td><td>0x00</td><td>0x1B</td><td>0x00</td><td>0x02</td><td></td><td></td></tr></tbody></table>

<table><thead><tr><th width="253">RX Example(big endian)</th><th width="111">Parameter</th><th>ID</th><th>FUNC</th><th>LEN</th><th>DATA</th><th>DATA</th><th>DATA</th><th>DATA</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Forward Totalised Flow*100</td><td>12345.67</td><td>0x01</td><td>0x04</td><td>0x04</td><td>0x00</td><td>0x12</td><td>0xD6</td><td>0x87</td><td></td><td></td></tr></tbody></table>

#### I. Reading Reverse Totalised Flow TX / RX Example

<table><thead><tr><th width="219">TX Example</th><th width="74">ID</th><th>FUNC</th><th>ADDR</th><th>ADDR</th><th>LEN</th><th>LEN</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Reverse Totalised Flow*100</td><td>0x01</td><td>0x04</td><td>0x00</td><td>0x1D</td><td>0x00</td><td>0x02</td><td></td><td></td></tr></tbody></table>

<table><thead><tr><th width="190">RX Example(big endian)</th><th width="116">Parameter</th><th>ID</th><th>FUNC</th><th>LEN</th><th>DATA</th><th>DATA</th><th>DATA</th><th>DATA</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Reverse Totalised Flow*100</td><td>-76543.21</td><td>0x01</td><td>0x04</td><td>0x04</td><td>0xFF</td><td>0x8B</td><td>0x34</td><td>0x4F</td><td></td><td></td></tr></tbody></table>

#### J. Reading Net Totalised Flow TX / RX Example

<table><thead><tr><th width="219">TX Example</th><th width="81">ID</th><th>FUNC</th><th>ADDR</th><th>ADDR</th><th>LEN</th><th>LEN</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Net Totalised Flow*100</td><td>0x01</td><td>0x04</td><td>0x00</td><td>0x1F</td><td>0x00</td><td>0x02</td><td></td><td></td></tr></tbody></table>

<table><thead><tr><th width="234">RX Example(big endian)</th><th width="113">Parameter</th><th>ID</th><th>FUNC</th><th>LEN</th><th>DATA</th><th>DATA</th><th>DATA</th><th>DATA</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Net Totalised Flow*100</td><td>12345.67</td><td>0x01</td><td>0x04</td><td>0x04</td><td>0x00</td><td>0x12</td><td>0xD6</td><td>0x87</td><td></td><td></td></tr><tr><td></td><td>-12345.67</td><td>0x01</td><td>0x04</td><td>0x04</td><td>0xFF</td><td>0xED</td><td>0x29</td><td>0x79</td><td></td><td></td></tr></tbody></table>

#### K. Reading Heat Integer Part TX / RX Example

<table><thead><tr><th width="203">TX Example</th><th>ID</th><th>FUNC</th><th>ADDR</th><th>ADDR</th><th>LEN</th><th>LEN</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td><h4> Heat Integer Part</h4></td><td>0x01</td><td>0x04</td><td>0x00</td><td>0x21</td><td>0x00</td><td>0x01</td><td></td><td></td></tr></tbody></table>

<table><thead><tr><th width="227">RX Example(big endian)</th><th width="133">Parameter</th><th>Return Value</th><th>ID</th><th>FUNC</th><th>LEN</th><th>DATA</th><th>DATA</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td><h4> Heat Integer Part</h4></td><td>123.4567</td><td>123</td><td>0x01</td><td>0x04</td><td>0x02</td><td>0x00</td><td>0x7B</td><td></td><td></td></tr><tr><td></td><td>-123.4567</td><td>-123</td><td>0x01</td><td>0x04</td><td>0x02</td><td>0xFF</td><td>0x85</td><td></td><td></td></tr></tbody></table>

#### L. Reading Heat Fractional Part\*10000 TX / RX Example

<table><thead><tr><th width="256">TX Example</th><th width="90">ID</th><th>FUNC</th><th>ADDR</th><th>ADDR</th><th>LEN</th><th>LEN</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Heat Fractional Part*10000</td><td>0x01</td><td>0x04</td><td>0x00</td><td>0x22</td><td>0x00</td><td>0x01</td><td></td><td></td></tr></tbody></table>

<table><thead><tr><th width="256">RX Example(big endian)</th><th width="111">Parameter</th><th>Return Value</th><th>ID</th><th>FUNC</th><th>LEN</th><th>DATA</th><th>DATA</th><th>CRC</th><th>CRC</th></tr></thead><tbody><tr><td>Heat Fractional Part*10000</td><td>123.4567</td><td>4567</td><td>0x01</td><td>0x04</td><td>0x02</td><td>0x11</td><td>0xD7</td><td></td><td></td></tr><tr><td></td><td>-123.4567</td><td>-4567</td><td>0x01</td><td>0x04</td><td>0x02</td><td>0xEE</td><td>0x29</td><td></td><td></td></tr></tbody></table>
