-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathMonitor.pde
110 lines (106 loc) · 3.05 KB
/
Monitor.pde
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/**
* processHostCommands
*/
void processHostCommands()
{
// Check for state change from the front panel button
if(logActive && !digitalRead(LOG_LED))
{
logActive = 0;
digitalWrite(FLASH_STATUS_LED, LOW);
FLASH.print("CLF ARDUINO.TXT");
FLASH.print(13, BYTE);
HOST.println("Stop logging");
}
if( !logActive && digitalRead(LOG_LED))
{
logActive = 1;
digitalWrite(FLASH_STATUS_LED, HIGH);
FLASH.print("OPW ARDUINO.TXT");
FLASH.print(13, BYTE);
HOST.println("Start logging");
}
// Check for commands from the host
if( HOST.available() > 0)
{
char readChar = HOST.read();
if(readChar == '1')
{ // Open file and start logging
HOST.println("Start logging");
logActive = 1;
digitalWrite(FLASH_STATUS_LED, HIGH);
digitalWrite(LOG_LED, HIGH);
FLASH.print("OPW ARDUINO.TXT");
FLASH.print(13, BYTE);
} else if( readChar == '2') { // Stop logging and close file
HOST.println("Stop logging");
if(digitalRead(FLASH_RTS_PIN) == HIGH)
{
HOST.println("VDIP BUFFER FULL");
}
logActive = 0;
digitalWrite(FLASH_STATUS_LED, LOW);
digitalWrite(LOG_LED, LOW);
FLASH.print("CLF ARDUINO.TXT");
FLASH.print(13, BYTE);
} else if (readChar == '3'){ // Display the file
HOST.println("Reading file");
FLASH.print("RD ARDUINO.TXT");
FLASH.print(13, BYTE);
} else if (readChar == '4'){ // Delete the file
HOST.println("Deleting file");
FLASH.print("DLF ARDUINO.TXT");
FLASH.print(13, BYTE);
} else if (readChar == '5'){ // Directory listing
HOST.println("Directory listing");
FLASH.print("DIR");
FLASH.print(13, BYTE);
} else if (readChar == '6'){ // Reset the VDIP
HOST.print(" * Initialising flash storage ");
pinMode(FLASH_RESET, OUTPUT);
digitalWrite(FLASH_RESET, LOW);
delay( 100 );
digitalWrite(FLASH_RESET, HIGH);
delay( 100 );
FLASH.print("IPA"); // Sets the VDIP to ASCII mode
FLASH.print(13, BYTE);
HOST.println("[OK]");
} else { // HELP!
HOST.print("Unrecognised command '");
HOST.print(readChar);
HOST.println("'");
HOST.println("1 - Start logging");
HOST.println("2 - Stop logging");
HOST.println("3 - Display logfile");
HOST.println("4 - Delete logfile");
HOST.println("5 - Directory listing");
HOST.println("6 - Reset VDIP module");
}
}
}
/**
* modeButton
* ISR attached to falling-edge interrupt 1 on digital pin 3
*/
void modeButton()
{
if((millis() - logButtonTimestamp) > 300)
{
logButtonTimestamp = millis();
//HOST.println(logButtonTimestamp);
digitalWrite(LOG_LED, !digitalRead(LOG_LED));
}
}
/**
* powerFail
* ISR attached to falling-edge interrupt 0 on digital pin 2
*/
void powerFail()
{
HOST.println();
HOST.println(" POWER FAIL! ");
/* while(1 == 1)
{
HOST.println(".");
} */
}