Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

Committer:
davidjhoward
Date:
Tue Sep 06 20:08:13 2016 +0000
Revision:
7:c0c03193612d
Parent:
4:c35db3946fd8
Child:
8:abe51ae5ef8b
make mDot global

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jmarkel44 0:65cfa4873284 1 /******************************************************************************
davidjhoward 4:c35db3946fd8 2 *
jmarkel44 0:65cfa4873284 3 * File: ModbusMaster.cpp
jmarkel44 0:65cfa4873284 4 * Desciption: source for the ICE Modbus Master
jmarkel44 0:65cfa4873284 5 *
jmarkel44 0:65cfa4873284 6 *****************************************************************************/
jmarkel44 0:65cfa4873284 7 #include "global.h"
jmarkel44 0:65cfa4873284 8 #include <stdio.h>
jmarkel44 0:65cfa4873284 9 #include "BLEDataHandler.h"
davidjhoward 4:c35db3946fd8 10 #include "ModbusMaster.h"
jmarkel44 0:65cfa4873284 11
jmarkel44 0:65cfa4873284 12 /*****************************************************************************
jmarkel44 0:65cfa4873284 13 * Function: ModbusMaster
jmarkel44 0:65cfa4873284 14 * Description: entry point for the Modbus Master
jmarkel44 0:65cfa4873284 15 *
jmarkel44 0:65cfa4873284 16 * @param (IN) args (user-defined arguments)
jmarkel44 0:65cfa4873284 17 * @return none
jmarkel44 0:65cfa4873284 18 *****************************************************************************/
davidjhoward 7:c0c03193612d 19
jmarkel44 0:65cfa4873284 20 void ModbusMaster(void const *args)
jmarkel44 0:65cfa4873284 21 {
jmarkel44 0:65cfa4873284 22 printf("\r%s has started...\n", __func__);
jmarkel44 0:65cfa4873284 23
davidjhoward 7:c0c03193612d 24 char scratch_buf[1024];
davidjhoward 7:c0c03193612d 25 bool status = GLOBAL_mdot->readUserFile("scratch.json", (void *)scratch_buf, 1024);
davidjhoward 7:c0c03193612d 26 if( status != true ) {
davidjhoward 7:c0c03193612d 27 printf("\r(%d)read file failed, status=%d\n", __LINE__, status);
davidjhoward 7:c0c03193612d 28 }
davidjhoward 7:c0c03193612d 29 else
davidjhoward 7:c0c03193612d 30 {
davidjhoward 7:c0c03193612d 31 printf("\r(%d)Read File SUCCESS: %s\n", __LINE__, scratch_buf );
davidjhoward 7:c0c03193612d 32 }
davidjhoward 7:c0c03193612d 33
jmarkel44 0:65cfa4873284 34 while ( true ) {
davidjhoward 4:c35db3946fd8 35 // Send request to Fluorometer
davidjhoward 4:c35db3946fd8 36 printf("\rsending request to FLU\n");
davidjhoward 4:c35db3946fd8 37 modbus_read_L1V(1,9,13);
davidjhoward 4:c35db3946fd8 38 // Wait 30mS
davidjhoward 4:c35db3946fd8 39 printf("\rsent request to FLU\n");
davidjhoward 4:c35db3946fd8 40 osDelay(30);
davidjhoward 4:c35db3946fd8 41 printf("\rgetting TRASAR readings\n");
davidjhoward 4:c35db3946fd8 42 // Read data from Fluorometer
davidjhoward 4:c35db3946fd8 43 MB_FLU_VALUES flu_values;
davidjhoward 4:c35db3946fd8 44 if( mbFluGetData( &flu_values ) == false ) {
davidjhoward 4:c35db3946fd8 45 printf("\rCould not get TRASAR readings, power cycle\n");
davidjhoward 4:c35db3946fd8 46 DigitalOut flu_power(PA_11);
davidjhoward 4:c35db3946fd8 47 flu_power = 1; // turn modbus power off
davidjhoward 4:c35db3946fd8 48 osDelay(1000);
davidjhoward 4:c35db3946fd8 49 flu_power = 0; // provide power to the modbus
davidjhoward 4:c35db3946fd8 50 flu_values.trasar = 0.0;
davidjhoward 4:c35db3946fd8 51 osDelay(5000);
davidjhoward 4:c35db3946fd8 52 return;
davidjhoward 4:c35db3946fd8 53 }
jmarkel44 0:65cfa4873284 54 }
davidjhoward 4:c35db3946fd8 55 }
davidjhoward 4:c35db3946fd8 56
davidjhoward 4:c35db3946fd8 57
davidjhoward 4:c35db3946fd8 58 volatile char modbus_buffer_char;
davidjhoward 4:c35db3946fd8 59 volatile bool modbus_interrupt_complete = false;
davidjhoward 4:c35db3946fd8 60
davidjhoward 4:c35db3946fd8 61 uint8_t modbus_input_buffer[SIZE_MB_BUFFER];// 1byte address + 1 byte function +1 byte number of regs + 12 bytes of data + 2 bytes for crc response frame from slave
davidjhoward 4:c35db3946fd8 62 volatile uint8_t modbus_input_buffer_counter = 0;
davidjhoward 4:c35db3946fd8 63
davidjhoward 4:c35db3946fd8 64 //Frame crc calucation
davidjhoward 4:c35db3946fd8 65 uint16_t modbus_crc(uint8_t* buf, int len)
davidjhoward 4:c35db3946fd8 66 {
davidjhoward 4:c35db3946fd8 67 uint16_t crc = 0xFFFF;
davidjhoward 4:c35db3946fd8 68
davidjhoward 4:c35db3946fd8 69 for (int pos = 0; pos < len; pos++) {
davidjhoward 4:c35db3946fd8 70 crc ^= (uint16_t)buf[pos]; // XOR byte into least sig. byte of crc
davidjhoward 4:c35db3946fd8 71
davidjhoward 4:c35db3946fd8 72 for (int i = 8; i != 0; i--) {
davidjhoward 4:c35db3946fd8 73 // Loop over each bit
davidjhoward 4:c35db3946fd8 74 if ((crc & 0x0001) != 0) {
davidjhoward 4:c35db3946fd8 75 // If the LSB is set
davidjhoward 4:c35db3946fd8 76 crc >>= 1; // Shift right and XOR 0xA001
davidjhoward 4:c35db3946fd8 77 crc ^= 0xA001;
davidjhoward 4:c35db3946fd8 78 } else // Else LSB is not set
davidjhoward 4:c35db3946fd8 79 crc >>= 1; // Just shift right
davidjhoward 4:c35db3946fd8 80 }
davidjhoward 4:c35db3946fd8 81 }
davidjhoward 4:c35db3946fd8 82 // Note, this number has low and high bytes swapped, so use it accordingly (or swap bytes)
davidjhoward 4:c35db3946fd8 83 return crc;
davidjhoward 4:c35db3946fd8 84 }
davidjhoward 4:c35db3946fd8 85
davidjhoward 4:c35db3946fd8 86 RawSerial modbus(PA_2, PA_3);
davidjhoward 4:c35db3946fd8 87 DigitalOut modbus_enable0(PB_0);
davidjhoward 4:c35db3946fd8 88 DigitalOut modbus_enable1(PB_1);
davidjhoward 4:c35db3946fd8 89
davidjhoward 4:c35db3946fd8 90 void modbus_init( uint16_t baudRate )
davidjhoward 4:c35db3946fd8 91 {
davidjhoward 4:c35db3946fd8 92 modbus.baud(baudRate);
davidjhoward 4:c35db3946fd8 93 modbus.attach(&modbus_recv, RawSerial::RxIrq);
davidjhoward 4:c35db3946fd8 94 }
davidjhoward 4:c35db3946fd8 95
davidjhoward 4:c35db3946fd8 96 //call back when character goes into RX buffer for RS485 modbus
davidjhoward 4:c35db3946fd8 97 void modbus_recv()
davidjhoward 4:c35db3946fd8 98 {
davidjhoward 4:c35db3946fd8 99
davidjhoward 4:c35db3946fd8 100 if (modbus.readable()) {
davidjhoward 4:c35db3946fd8 101 modbus_buffer_char = modbus.getc();
davidjhoward 4:c35db3946fd8 102 if (modbus_input_buffer_counter == 0 && modbus_buffer_char == 0x00) {
davidjhoward 4:c35db3946fd8 103 modbus_input_buffer_counter = 0;
davidjhoward 4:c35db3946fd8 104 } else {
davidjhoward 4:c35db3946fd8 105 modbus_input_buffer[modbus_input_buffer_counter] = modbus_buffer_char;
davidjhoward 4:c35db3946fd8 106 modbus_input_buffer_counter++;
davidjhoward 4:c35db3946fd8 107 }
davidjhoward 4:c35db3946fd8 108 }
davidjhoward 4:c35db3946fd8 109
davidjhoward 4:c35db3946fd8 110 if (modbus_input_buffer_counter > modbus_input_buffer[2] + 4) {
davidjhoward 4:c35db3946fd8 111 modbus_interrupt_complete = true;
davidjhoward 4:c35db3946fd8 112 modbus_input_buffer_counter = 0;
davidjhoward 4:c35db3946fd8 113 }
davidjhoward 4:c35db3946fd8 114 }
davidjhoward 4:c35db3946fd8 115
davidjhoward 4:c35db3946fd8 116 // Read modbus master frame
davidjhoward 4:c35db3946fd8 117 void modbus_read_L1V(uint8_t slave_address, uint16_t firstReg, uint16_t noRegs)
davidjhoward 4:c35db3946fd8 118 {
davidjhoward 4:c35db3946fd8 119 uint8_t L1V[8] = {slave_address, 0x04, 0x00, 0x02, 0x00, 0x02, 0xD1, 0x16};
davidjhoward 4:c35db3946fd8 120
davidjhoward 4:c35db3946fd8 121 L1V[2] = (firstReg >> 8) & 0xFF;
davidjhoward 4:c35db3946fd8 122 L1V[3] = firstReg & 0xFF;
davidjhoward 4:c35db3946fd8 123 L1V[4] = (noRegs >> 8) & 0xFF;
davidjhoward 4:c35db3946fd8 124 L1V[5] = noRegs & 0xFF;
davidjhoward 4:c35db3946fd8 125 L1V[6] = modbus_crc(L1V,6) & 0xFF;
davidjhoward 4:c35db3946fd8 126 L1V[7] = (modbus_crc(L1V,6)>>8) & 0xFF;
davidjhoward 4:c35db3946fd8 127
davidjhoward 4:c35db3946fd8 128 modbus_enable0 = 1;
davidjhoward 4:c35db3946fd8 129 modbus_enable1 = 1;
davidjhoward 4:c35db3946fd8 130
davidjhoward 4:c35db3946fd8 131 for (uint8_t i = 0; i < 8; i++)
davidjhoward 4:c35db3946fd8 132 modbus.putc(L1V[i]);
davidjhoward 4:c35db3946fd8 133
davidjhoward 4:c35db3946fd8 134 wait_ms(2);
davidjhoward 4:c35db3946fd8 135 modbus_enable0 = 0;
davidjhoward 4:c35db3946fd8 136 modbus_enable1 = 0;
davidjhoward 4:c35db3946fd8 137
davidjhoward 4:c35db3946fd8 138 }
davidjhoward 4:c35db3946fd8 139
davidjhoward 4:c35db3946fd8 140 bool mbInterruptComplete()
davidjhoward 4:c35db3946fd8 141 {
davidjhoward 4:c35db3946fd8 142 if (modbus_interrupt_complete) {
davidjhoward 4:c35db3946fd8 143 modbus_interrupt_complete = false;
davidjhoward 4:c35db3946fd8 144 return true;
davidjhoward 4:c35db3946fd8 145 } else {
davidjhoward 4:c35db3946fd8 146 return false;
davidjhoward 4:c35db3946fd8 147 }
davidjhoward 4:c35db3946fd8 148 }
davidjhoward 4:c35db3946fd8 149
davidjhoward 4:c35db3946fd8 150 bool mbFluGetData( MB_FLU_VALUES *flu_values )
davidjhoward 4:c35db3946fd8 151 {
davidjhoward 4:c35db3946fd8 152 MR_REGISTER_FLOAT trasar;
davidjhoward 4:c35db3946fd8 153 MR_REGISTER_FLOAT tag;
davidjhoward 4:c35db3946fd8 154 MR_REGISTER_FLOAT rz;
davidjhoward 4:c35db3946fd8 155 MR_REGISTER_FLOAT rs;
davidjhoward 4:c35db3946fd8 156 MR_REGISTER_FLOAT tra_back;
davidjhoward 4:c35db3946fd8 157 MR_REGISTER_FLOAT turb;
davidjhoward 4:c35db3946fd8 158 MR_REGISTER_WORD cf;
davidjhoward 4:c35db3946fd8 159 // MR_REGISTER_WORD crc;
davidjhoward 4:c35db3946fd8 160
davidjhoward 4:c35db3946fd8 161 if (mbInterruptComplete() != true ) {
davidjhoward 4:c35db3946fd8 162 return false;
davidjhoward 4:c35db3946fd8 163 }
davidjhoward 4:c35db3946fd8 164
davidjhoward 4:c35db3946fd8 165 // printf("Address: %d, Function: %d, No Regs: %d, \r\n",modbus_input_buffer[0],modbus_input_buffer[1],modbus_input_buffer[2]/2);
davidjhoward 4:c35db3946fd8 166 //
davidjhoward 4:c35db3946fd8 167 // printf("Data: %x%x,%x%x,%x%x,%x%x,%x%x,%x%x,\r\n%x%x,%x%x,%x%x,%x%x,%x%x,%x%x,\r\n%x%x\r\n",
davidjhoward 4:c35db3946fd8 168 // modbus_input_buffer[3],modbus_input_buffer[4], modbus_input_buffer[5],modbus_input_buffer[6], // Trasar
davidjhoward 4:c35db3946fd8 169 // modbus_input_buffer[7],modbus_input_buffer[8], modbus_input_buffer[9],modbus_input_buffer[10], // Tag
davidjhoward 4:c35db3946fd8 170 // modbus_input_buffer[11],modbus_input_buffer[12], modbus_input_buffer[13],modbus_input_buffer[14], // Rz
davidjhoward 4:c35db3946fd8 171 // modbus_input_buffer[15],modbus_input_buffer[16], modbus_input_buffer[17],modbus_input_buffer[18], // Rs
davidjhoward 4:c35db3946fd8 172 // modbus_input_buffer[19],modbus_input_buffer[20], modbus_input_buffer[21],modbus_input_buffer[22], // TraBack
davidjhoward 4:c35db3946fd8 173 // modbus_input_buffer[23],modbus_input_buffer[24], modbus_input_buffer[25],modbus_input_buffer[26], // TraBack
davidjhoward 4:c35db3946fd8 174 // modbus_input_buffer[27],modbus_input_buffer[28]); // Cf
davidjhoward 4:c35db3946fd8 175 // printf("CRC: %x%x\r\n",modbus_input_buffer[29], modbus_input_buffer[30]);
davidjhoward 4:c35db3946fd8 176
davidjhoward 4:c35db3946fd8 177 trasar.b.lo_lo = modbus_input_buffer[4];
davidjhoward 4:c35db3946fd8 178 trasar.b.lo_hi = modbus_input_buffer[3];
davidjhoward 4:c35db3946fd8 179 trasar.b.hi_lo = modbus_input_buffer[6];
davidjhoward 4:c35db3946fd8 180 trasar.b.hi_hi = modbus_input_buffer[5];
davidjhoward 4:c35db3946fd8 181 // printf("Trasar=%2.2f, 0x%x, 0x%x\r\n",trasar.f, trasar.w.lo, trasar.w.hi);
davidjhoward 4:c35db3946fd8 182 flu_values->trasar = trasar.f;
davidjhoward 4:c35db3946fd8 183
davidjhoward 4:c35db3946fd8 184 tag.b.lo_lo = modbus_input_buffer[8];
davidjhoward 4:c35db3946fd8 185 tag.b.lo_hi = modbus_input_buffer[7];
davidjhoward 4:c35db3946fd8 186 tag.b.hi_lo = modbus_input_buffer[10];
davidjhoward 4:c35db3946fd8 187 tag.b.hi_hi = modbus_input_buffer[9];
davidjhoward 4:c35db3946fd8 188 // printf("tag=%2.2f, 0x%x, 0x%x\r\n",tag.f, tag.w.lo, tag.w.hi);
davidjhoward 4:c35db3946fd8 189 flu_values->tag = tag.f;
davidjhoward 4:c35db3946fd8 190
davidjhoward 4:c35db3946fd8 191 rz.b.lo_lo = modbus_input_buffer[12];
davidjhoward 4:c35db3946fd8 192 rz.b.lo_hi = modbus_input_buffer[11];
davidjhoward 4:c35db3946fd8 193 rz.b.hi_lo = modbus_input_buffer[14];
davidjhoward 4:c35db3946fd8 194 rz.b.hi_hi = modbus_input_buffer[13];
davidjhoward 4:c35db3946fd8 195 // printf("rz=%2.2f, 0x%x, 0x%x\r\n",rz.f, rz.w.lo, rz.w.hi);
davidjhoward 4:c35db3946fd8 196 flu_values->rz = rz.f;
davidjhoward 4:c35db3946fd8 197
davidjhoward 4:c35db3946fd8 198 rs.b.lo_lo = modbus_input_buffer[16];
davidjhoward 4:c35db3946fd8 199 rs.b.lo_hi = modbus_input_buffer[15];
davidjhoward 4:c35db3946fd8 200 rs.b.hi_lo = modbus_input_buffer[18];
davidjhoward 4:c35db3946fd8 201 rs.b.hi_hi = modbus_input_buffer[17];
davidjhoward 4:c35db3946fd8 202 // printf("rs=%2.2f, 0x%x, 0x%x\r\n",rs.f, rs.w.lo, rs.w.hi);
davidjhoward 4:c35db3946fd8 203 flu_values->rs = rs.f;
davidjhoward 4:c35db3946fd8 204
davidjhoward 4:c35db3946fd8 205 tra_back.b.lo_lo = modbus_input_buffer[20];
davidjhoward 4:c35db3946fd8 206 tra_back.b.lo_hi = modbus_input_buffer[19];
davidjhoward 4:c35db3946fd8 207 tra_back.b.hi_lo = modbus_input_buffer[22];
davidjhoward 4:c35db3946fd8 208 tra_back.b.hi_hi = modbus_input_buffer[21];
davidjhoward 4:c35db3946fd8 209 // printf("tra_back=%2.2f, 0x%x, 0x%x\r\n",tra_back.f, tra_back.w.lo, tra_back.w.hi);
davidjhoward 4:c35db3946fd8 210 flu_values->tra_back = tra_back.f;
davidjhoward 4:c35db3946fd8 211
davidjhoward 4:c35db3946fd8 212 turb.b.lo_lo = modbus_input_buffer[24];
davidjhoward 4:c35db3946fd8 213 turb.b.lo_hi = modbus_input_buffer[23];
davidjhoward 4:c35db3946fd8 214 turb.b.hi_lo = modbus_input_buffer[26];
davidjhoward 4:c35db3946fd8 215 turb.b.hi_hi = modbus_input_buffer[25];
davidjhoward 4:c35db3946fd8 216 // printf("turb=%2.2f, 0x%x, 0x%x\r\n",turb.f, turb.w.lo, turb.w.hi);
davidjhoward 4:c35db3946fd8 217 flu_values->turb = turb.f;
davidjhoward 4:c35db3946fd8 218
davidjhoward 4:c35db3946fd8 219 cf.b.lo = modbus_input_buffer[28];
davidjhoward 4:c35db3946fd8 220 cf.b.hi = modbus_input_buffer[27];
davidjhoward 4:c35db3946fd8 221 // printf("cf=%d, 0x%x,\r\n",cf.w, cf.w);
davidjhoward 4:c35db3946fd8 222 flu_values->cf = cf.w;
davidjhoward 4:c35db3946fd8 223
davidjhoward 4:c35db3946fd8 224 // crc.b.lo = modbus_input_buffer[30]; crc.b.hi = modbus_input_buffer[29];
davidjhoward 4:c35db3946fd8 225 // printf("crc=%d, 0x%x,\r\n",crc.w, crc.w);
davidjhoward 4:c35db3946fd8 226
davidjhoward 4:c35db3946fd8 227 return true;
davidjhoward 4:c35db3946fd8 228 }
davidjhoward 4:c35db3946fd8 229
davidjhoward 4:c35db3946fd8 230 bool mbTconGetData( MB_TCON_VALUES *tcon_values )
davidjhoward 4:c35db3946fd8 231 {
davidjhoward 4:c35db3946fd8 232 MR_REGISTER_INT tcon_cal;
davidjhoward 4:c35db3946fd8 233 MR_REGISTER_INT tcon_cmp;
davidjhoward 4:c35db3946fd8 234 MR_REGISTER_INT tcon_2pt;
davidjhoward 4:c35db3946fd8 235 MR_REGISTER_INT tcon_freq;
davidjhoward 4:c35db3946fd8 236 MR_REGISTER_INT rtd_degC;
davidjhoward 4:c35db3946fd8 237 MR_REGISTER_INT rtd_cal;
davidjhoward 4:c35db3946fd8 238 MR_REGISTER_INT rtd_raw;
davidjhoward 4:c35db3946fd8 239
davidjhoward 4:c35db3946fd8 240 if (mbInterruptComplete() != true ) {
davidjhoward 4:c35db3946fd8 241 return false;
davidjhoward 4:c35db3946fd8 242 }
davidjhoward 4:c35db3946fd8 243
davidjhoward 4:c35db3946fd8 244 // printf("Address: %d, Function: %d, No Regs: %d, \r\n",modbus_input_buffer[0],modbus_input_buffer[1],modbus_input_buffer[2]/2);
davidjhoward 4:c35db3946fd8 245 //
davidjhoward 4:c35db3946fd8 246 // printf("Data: %x%x,%x%x, %x%x,%x%x, %x%x,%x%x,\r\n%x%x,%x%x, %x%x,%x%x, %x%x,%x%x\r\n",
davidjhoward 4:c35db3946fd8 247 // modbus_input_buffer[3],modbus_input_buffer[4], modbus_input_buffer[5],modbus_input_buffer[6], // tcon_cal
davidjhoward 4:c35db3946fd8 248 // modbus_input_buffer[7],modbus_input_buffer[8], modbus_input_buffer[9],modbus_input_buffer[10], // tcon_cmp
davidjhoward 4:c35db3946fd8 249 // modbus_input_buffer[11],modbus_input_buffer[12], modbus_input_buffer[13],modbus_input_buffer[14], // tcon_2pt
davidjhoward 4:c35db3946fd8 250 // modbus_input_buffer[15],modbus_input_buffer[16], modbus_input_buffer[17],modbus_input_buffer[18], // rtd_degC
davidjhoward 4:c35db3946fd8 251 // modbus_input_buffer[19],modbus_input_buffer[20], modbus_input_buffer[21],modbus_input_buffer[22], // rtd_cal
davidjhoward 4:c35db3946fd8 252 // modbus_input_buffer[23],modbus_input_buffer[24], modbus_input_buffer[25],modbus_input_buffer[26]); // rtd_raw
davidjhoward 4:c35db3946fd8 253 // printf("CRC: %x%x\r\n",modbus_input_buffer[27], modbus_input_buffer[28]);
davidjhoward 4:c35db3946fd8 254
davidjhoward 4:c35db3946fd8 255 rtd_raw.b.lo_lo = modbus_input_buffer[4];
davidjhoward 4:c35db3946fd8 256 rtd_raw.b.lo_hi = modbus_input_buffer[3];
davidjhoward 4:c35db3946fd8 257 rtd_raw.b.hi_lo = modbus_input_buffer[6];
davidjhoward 4:c35db3946fd8 258 rtd_raw.b.hi_hi = modbus_input_buffer[5];
davidjhoward 4:c35db3946fd8 259 // printf("rtd_raw=%d M Ohm, 0x%x, 0x%x\r\n",rtd_raw.i, rtd_raw.w.lo, rtd_raw.w.hi);
davidjhoward 4:c35db3946fd8 260 tcon_values->rtd_raw = rtd_raw.i;
davidjhoward 4:c35db3946fd8 261
davidjhoward 4:c35db3946fd8 262 rtd_cal.b.lo_lo = modbus_input_buffer[8];
davidjhoward 4:c35db3946fd8 263 rtd_cal.b.lo_hi = modbus_input_buffer[7];
davidjhoward 4:c35db3946fd8 264 rtd_cal.b.hi_lo = modbus_input_buffer[10];
davidjhoward 4:c35db3946fd8 265 rtd_cal.b.hi_hi = modbus_input_buffer[9];
davidjhoward 4:c35db3946fd8 266 // printf("rtd_cal=%d M Ohm, 0x%x, 0x%x\r\n",rtd_cal.i, rtd_cal.w.lo, rtd_cal.w.hi);
davidjhoward 4:c35db3946fd8 267 tcon_values->rtd_cal = rtd_cal.i;
davidjhoward 4:c35db3946fd8 268
davidjhoward 4:c35db3946fd8 269 rtd_degC.b.lo_lo = modbus_input_buffer[12];
davidjhoward 4:c35db3946fd8 270 rtd_degC.b.lo_hi = modbus_input_buffer[11];
davidjhoward 4:c35db3946fd8 271 rtd_degC.b.hi_lo = modbus_input_buffer[14];
davidjhoward 4:c35db3946fd8 272 rtd_degC.b.hi_hi = modbus_input_buffer[13];
davidjhoward 4:c35db3946fd8 273 // printf("rtd_degC=%2.2f C, 0x%x, 0x%x\r\n",(rtd_degC.i/1000.0), rtd_degC.w.lo, rtd_degC.w.hi);
davidjhoward 4:c35db3946fd8 274 tcon_values->rtd_degC = (rtd_degC.i/1000.0);
davidjhoward 4:c35db3946fd8 275
davidjhoward 4:c35db3946fd8 276 tcon_freq.b.lo_lo = modbus_input_buffer[16];
davidjhoward 4:c35db3946fd8 277 tcon_freq.b.lo_hi = modbus_input_buffer[15];
davidjhoward 4:c35db3946fd8 278 tcon_freq.b.hi_lo = modbus_input_buffer[18];
davidjhoward 4:c35db3946fd8 279 tcon_freq.b.hi_hi = modbus_input_buffer[17];
davidjhoward 4:c35db3946fd8 280 // printf("tcon_freq=%d Hz, 0x%x, 0x%x\r\n",tcon_freq.i, tcon_freq.w.lo, tcon_freq.w.hi);
davidjhoward 4:c35db3946fd8 281 tcon_values->tcon_freq = tcon_freq.i;
davidjhoward 4:c35db3946fd8 282
davidjhoward 4:c35db3946fd8 283 tcon_2pt.b.lo_lo = modbus_input_buffer[20];
davidjhoward 4:c35db3946fd8 284 tcon_2pt.b.lo_hi = modbus_input_buffer[19];
davidjhoward 4:c35db3946fd8 285 tcon_2pt.b.hi_lo = modbus_input_buffer[22];
davidjhoward 4:c35db3946fd8 286 tcon_2pt.b.hi_hi = modbus_input_buffer[21];
davidjhoward 4:c35db3946fd8 287 // printf("tcon_2pt=%d uS, 0x%x, 0x%x\r\n",tcon_2pt.i, tcon_2pt.w.lo, tcon_2pt.w.hi);
davidjhoward 4:c35db3946fd8 288 tcon_values->tcon_2pt = tcon_2pt.i;
davidjhoward 4:c35db3946fd8 289
davidjhoward 4:c35db3946fd8 290 tcon_cmp.b.lo_lo = modbus_input_buffer[20];
davidjhoward 4:c35db3946fd8 291 tcon_cmp.b.lo_hi = modbus_input_buffer[19];
davidjhoward 4:c35db3946fd8 292 tcon_cmp.b.hi_lo = modbus_input_buffer[22];
davidjhoward 4:c35db3946fd8 293 tcon_cmp.b.hi_hi = modbus_input_buffer[21];
davidjhoward 4:c35db3946fd8 294 // printf("tcon_cmp=%d uS, 0x%x, 0x%x\r\n",tcon_cmp.i, tcon_cmp.w.lo, tcon_cmp.w.hi);
davidjhoward 4:c35db3946fd8 295 tcon_values->tcon_cmp = tcon_cmp.i;
davidjhoward 4:c35db3946fd8 296
davidjhoward 4:c35db3946fd8 297 tcon_cal.b.lo_lo = modbus_input_buffer[20];
davidjhoward 4:c35db3946fd8 298 tcon_cal.b.lo_hi = modbus_input_buffer[19];
davidjhoward 4:c35db3946fd8 299 tcon_cal.b.hi_lo = modbus_input_buffer[22];
davidjhoward 4:c35db3946fd8 300 tcon_cal.b.hi_hi = modbus_input_buffer[21];
davidjhoward 4:c35db3946fd8 301 // printf("tcon_cal=%d, 0x%x, 0x%x\r\n",tcon_cal.i, tcon_cal.w.lo, tcon_cal.w.hi);
davidjhoward 4:c35db3946fd8 302 tcon_values->tcon_cal = tcon_cal.i;
davidjhoward 4:c35db3946fd8 303
davidjhoward 4:c35db3946fd8 304 return true;
jmarkel44 0:65cfa4873284 305 }