97 char *unit_data(int i) |
99 char *unit_data(int i) |
98 { |
100 { |
99 char *payload = NULL; |
101 char *payload = NULL; |
100 char buf[128]; |
102 char buf[128]; |
101 |
103 |
102 payload = xstrcpy((char *)"{\"uuid\":\""); |
104 if (xSemaphoreTake(xSemaphoreUnits, 25) == pdTRUE) { |
103 payload = xstrcat(payload, units[i].uuid); |
105 payload = xstrcpy((char *)"{\"uuid\":\""); |
104 payload = xstrcat(payload, (char *)"\",\"alias\":\""); |
106 payload = xstrcat(payload, units[i].uuid); |
105 payload = xstrcat(payload, units[i].alias); |
107 payload = xstrcat(payload, (char *)"\",\"alias\":\""); |
106 |
108 payload = xstrcat(payload, units[i].alias); |
107 // temperature_state temperature_address temperature |
109 |
108 payload = xstrcat(payload, (char *)"\",\"temperature\":{\"state\":\""); |
110 // temperature_state temperature_address temperature |
109 payload = xstrcat(payload, (char *)sensState[units[i].temperature_state]); |
111 payload = xstrcat(payload, (char *)"\",\"temperature\":{\"state\":\""); |
110 payload = xstrcat(payload, (char *)"\",\"address\":\""); |
112 payload = xstrcat(payload, (char *)sensState[units[i].temperature_state]); |
111 payload = xstrcat(payload, (char *)units[i].temperature_rom_code); |
113 payload = xstrcat(payload, (char *)"\",\"address\":\""); |
112 payload = xstrcat(payload, (char *)"\",\"temperature\":"); |
114 payload = xstrcat(payload, (char *)units[i].temperature_rom_code); |
113 sprintf(buf, "%.3f", units[i].temperature / 1000.0); |
115 payload = xstrcat(payload, (char *)"\",\"temperature\":"); |
114 payload = xstrcat(payload, buf); |
116 sprintf(buf, "%.3f", units[i].temperature / 1000.0); |
115 |
117 payload = xstrcat(payload, buf); |
116 // pressure_state pressure_channel pressure_voltage pressure_zero pressure |
118 |
117 payload = xstrcat(payload, (char *)"},\"pressure\":{\"state\":\""); |
119 // pressure_state pressure_channel pressure_voltage pressure_zero pressure |
118 payload = xstrcat(payload, (char *)sensState[units[i].pressure_state]); |
120 payload = xstrcat(payload, (char *)"},\"pressure\":{\"state\":\""); |
119 payload = xstrcat(payload, (char *)"\",\"channel\":"); |
121 payload = xstrcat(payload, (char *)sensState[units[i].pressure_state]); |
120 sprintf(buf, "%d", units[i].pressure_channel); |
122 payload = xstrcat(payload, (char *)"\",\"channel\":"); |
121 payload = xstrcat(payload, buf); |
123 sprintf(buf, "%d", units[i].pressure_channel); |
122 payload = xstrcat(payload, (char *)",\"voltage\":"); |
124 payload = xstrcat(payload, buf); |
123 sprintf(buf, "%.3f", units[i].pressure_voltage / 1000.0); |
125 payload = xstrcat(payload, (char *)",\"voltage\":"); |
124 payload = xstrcat(payload, buf); |
126 sprintf(buf, "%.3f", units[i].pressure_voltage / 1000.0); |
125 payload = xstrcat(payload, (char *)",\"zero\":"); |
127 payload = xstrcat(payload, buf); |
126 sprintf(buf, "%.3f", units[i].pressure_zero / 1000.0); |
128 payload = xstrcat(payload, (char *)",\"zero\":"); |
127 payload = xstrcat(payload, buf); |
129 sprintf(buf, "%.3f", units[i].pressure_zero / 1000.0); |
128 payload = xstrcat(payload, (char *)",\"bar\":"); |
130 payload = xstrcat(payload, buf); |
129 sprintf(buf, "%.2f", units[i].pressure / 1000.0); |
131 payload = xstrcat(payload, (char *)",\"bar\":"); |
130 payload = xstrcat(payload, buf); |
132 sprintf(buf, "%.2f", units[i].pressure / 1000.0); |
131 payload = xstrcat(payload, (char *)"},\"mode\":\""); |
133 payload = xstrcat(payload, buf); |
132 payload = xstrcat(payload, (char *)unitMode[units[i].mode]); |
134 payload = xstrcat(payload, (char *)"},\"mode\":\""); |
133 payload = xstrcat(payload, (char *)"\"}"); |
135 payload = xstrcat(payload, (char *)unitMode[units[i].mode]); |
|
136 payload = xstrcat(payload, (char *)"\"}"); |
|
137 xSemaphoreGive(xSemaphoreUnits); |
|
138 } |
134 return payload; |
139 return payload; |
135 } |
140 } |
136 |
141 |
137 |
142 |
138 |
143 |