Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef __MSMW_H__
00013 #define __MSMW_H__
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #ifndef __PCF8574_H__
00040 #include "philips-pcf8574.h"
00041 #endif
00042
00043 #define MSMWclearALL(X) PCF8574sendBytes(X, 0xFF)
00044 #define MSMWsetALL(X) PCF8574sendBytes(X, 0x00)
00045
00046
00047
00048
00049
00050
00051
00052
00053 bool MSMWsetLED(tSensors link, ubyte ledToChange, bool on)
00054 {
00055 ubyte ledState;
00056
00057 if (!PCF8574readBytes(link, ledState))
00058 {
00059 return false;
00060 }
00061
00062 return PCF8574sendBytes(link, (on ? ledState & ~(1 << ledToChange) : ledState | (1 << ledToChange)) );
00063 }
00064
00065
00066
00067
00068
00069
00070
00071
00072 bool MSMWtoggleLED(tSensors link, ubyte ledToChange)
00073 {
00074 ubyte ledState;
00075 if (!PCF8574readBytes(link, ledState))
00076 {
00077 return false;
00078 }
00079 return PCF8574sendBytes(link, ledState ^ (1 << ledToChange));
00080 }
00081
00082
00083
00084
00085
00086
00087
00088
00089 bool MSMWflashAndClear(tSensors link, int count)
00090 {
00091 PCF8574sendBytes(link, 0xFF);
00092 for (int i = 0; i < count; i++)
00093 {
00094 for (int j = 0; j < 8; j++) {
00095 if (!MSMWsetLED(link, j, true))
00096 {
00097 return false;
00098 }
00099 wait1Msec(30);
00100 }
00101 for (int j = 0; j < 8; j++) {
00102 if (!MSMWsetLED(link, j, false))
00103 {
00104 return false;
00105 }
00106 wait1Msec(30);
00107 }
00108 if (!PCF8574sendBytes(link, 0xFF))
00109 {
00110 return false;
00111 }
00112 }
00113 PCF8574sendBytes(link, 0xFF);
00114 return true;
00115 }
00116
00117 #endif // __MSMW_H__
00118
00119
00120
00121
00122
00123