Skip to content

Commit 5d4c4bb

Browse files
committed
NXT temperaturesensor added
Readout in °C
1 parent 81d34a4 commit 5d4c4bb

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

API/ev3sensor.c

+26
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,11 @@
7474
// IIC
7575
#define IIC_TYPE 100
7676
#define IIC_BYTE_MODE 0
77+
78+
//NXT Temperture
79+
#define NXT_TEMP_TYPE 6
80+
#define NXT_TEMP_C_MODE 0 // Temperature in C
81+
#define NXT_TEMP_C_MODE 1 // Temperature in F
7782
/***********************************/
7883

7984
int g_uartFile = 0;
@@ -228,6 +233,10 @@ void* readSensorData(int sensorPort)
228233
return readUartSensor(sensorPort);
229234
case NXT_IR_SEEKER:
230235
return readIicSensor(sensorPort);
236+
case NXT_TEMP_C:
237+
return readIicSensor(sensorPort);
238+
case NXT_TEMP_F:
239+
return readIicSensor(sensorPort);
231240
default: return 0;
232241
}
233242

@@ -304,6 +313,16 @@ int readSensor(int sensorPort)
304313
return help;
305314
case NXT_IR_SEEKER:
306315
return *((DATA16*)data)&0x000F;
316+
case NXT_TEMP_C:
317+
help = (*data>>4) & 0x0FFF;
318+
if(help & 0x800)
319+
{
320+
help = ((help&0x7FF) ^ 0x7FF) + 1;
321+
return (-1)*(((help>>4) & 0xFF)*10 + ((help & 0xF) * 10 / 15));
322+
}
323+
return ((help>>4) & 0xFF)*10 + ((help & 0xF) * 10 / 15);
324+
case NXT_TEMP_F:
325+
return -1;
307326
default: break;
308327
}
309328
return *((DATA16*)data);
@@ -463,6 +482,13 @@ int setAllSensorMode(int name_1, int name_2, int name_3, int name_4)
463482
devCon.Type[sensorPort] = IIC_TYPE;
464483
devCon.Mode[sensorPort] = IIC_BYTE_MODE;
465484
break;
485+
case NXT_TEMP_C:
486+
devCon.Connection[sensorPort] = CONN_NXT_IIC;
487+
devCon.Type[sensorPort] = NXT_TEMP_TYPE;
488+
devCon.Mode[sensorPort] = NXT_TEMP_C_MODE;
489+
break;
490+
case NXT_TEMP_F:
491+
break;
466492
default: return -1;
467493
}
468494
}

0 commit comments

Comments
 (0)