summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/driver/lm75.h2
-rw-r--r--model/driver/lm75.dfa35
-rw-r--r--src/driver/lm75.cc14
3 files changed, 51 insertions, 0 deletions
diff --git a/include/driver/lm75.h b/include/driver/lm75.h
index 5bb92fa..693578a 100644
--- a/include/driver/lm75.h
+++ b/include/driver/lm75.h
@@ -16,6 +16,8 @@ class LM75 {
unsigned int getHyst();
void setOS(unsigned char os);
void setHyst(unsigned char hyst);
+ void init();
+ void shutdown();
};
extern LM75 lm75;
diff --git a/model/driver/lm75.dfa b/model/driver/lm75.dfa
new file mode 100644
index 0000000..5aadb8f
--- /dev/null
+++ b/model/driver/lm75.dfa
@@ -0,0 +1,35 @@
+instance: lm75
+
+parameters:
+ - os
+ - hyst
+
+states:
+ - UNINITIALIZED
+ - POWEROFF
+ - ACTIVE
+
+transition:
+ shutdown:
+ src: [UNINITIALIZED, POWEROFF, ACTIVE]
+ dst: POWEROFF
+ init:
+ src: [UNINITIALIZED, POWEROFF, ACTIVE]
+ dst: ACTIVE
+ getTemp:
+ src: [ACTIVE]
+ dst: ACTIVE
+ setOS:
+ src: [ACTIVE]
+ dst: ACTIVE
+ arguments:
+ - name: os
+ values: [30, 90]
+ parameter: os
+ setHyst:
+ src: [ACTIVE]
+ dst: ACTIVE
+ arguments:
+ - name: hyst
+ values: [29, 60]
+ parameter: hyst
diff --git a/src/driver/lm75.cc b/src/driver/lm75.cc
index 83b2dcf..2223137 100644
--- a/src/driver/lm75.cc
+++ b/src/driver/lm75.cc
@@ -49,4 +49,18 @@ void LM75::setHyst(unsigned char hyst)
i2c.xmit(address, 3, txbuf, 0, rxbuf);
}
+void LM75::init()
+{
+ txbuf[0] = 0x01;
+ txbuf[1] = 0x00;
+ i2c.xmit(address, 2, txbuf, 0, rxbuf);
+}
+
+void LM75::shutdown()
+{
+ txbuf[0] = 0x01;
+ txbuf[1] = 0x01;
+ i2c.xmit(address, 2, txbuf, 0, rxbuf);
+}
+
LM75 lm75(0x48);