C++ Library for the PsiSwarm Robot - Version 0.8

Dependents:   PsiSwarm_V8_Blank_CPP Autonomia_RndmWlk

Fork of PsiSwarmV7_CPP by Psi Swarm Robot

Revision:
9:dde9e21030eb
Parent:
6:b340a527add9
Child:
11:312663037b8c
--- a/led.cpp	Sun Oct 16 12:54:33 2016 +0000
+++ b/led.cpp	Sun Oct 16 14:12:49 2016 +0000
@@ -1,11 +1,11 @@
 /* University of York Robotics Laboratory PsiSwarm Library: LED Functions Source File
- * 
+ *
  * Copyright 2016 University of York
  *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
  * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and limitations under the License.
  *
  * File: led.cpp
@@ -13,7 +13,7 @@
  * (C) Dept. Electronics & Computer Science, University of York
  * James Hilder, Alan Millard, Alexander Horsfield, Homero Elizondo, Jon Timmis
  *
- * PsiSwarm Library Version: 0.7
+ * PsiSwarm Library Version: 0.8
  *
  * October 2016
  *
@@ -30,89 +30,107 @@
 char held_green_states;
 Timeout blink_led_timeout;
 
-unsigned short get_led_states(){
-    return (green_led_states << 8) + red_led_states;  
+unsigned short Led::get_led_states()
+{
+    return (green_led_states << 8) + red_led_states;
 }
 
-void set_leds(char green, char red){
+void Led::set_leds(char green, char red)
+{
     green_led_states = green;
     red_led_states = red;
     IF_update_leds();
 }
 
-void set_base_led(char state){
-    IF_set_base_LED(state); 
+void Led::set_base_led(char state)
+{
+    IF_set_base_LED(state);
 }
 
-void set_green_leds(char green){
+void Led::set_green_leds(char green)
+{
     green_led_states = green;
     IF_update_leds();
 }
 
-void set_red_leds(char red){
+void Led::set_red_leds(char red)
+{
     red_led_states = red;
     IF_update_leds();
 }
 
-void set_led(char led, char state){
+void Led::set_led(char led, char state)
+{
     if(state % 2 == 1) red_led_states |= 1 << led;
     else red_led_states &= ~(1 << led);
     if(state / 2) green_led_states |= 1 << led;
     else green_led_states &= ~(1 << led);
-    IF_update_leds();   
+    IF_update_leds();
 }
 
-void blink_leds(float timeout){
+void Led::blink_leds(float timeout)
+{
     save_led_states();
     set_leds(0xFF,0xFF);
-    blink_led_timeout.attach(&restore_led_states, timeout);
+    blink_led_timeout.attach(this,&Led::restore_led_states, timeout);
 }
 
-void set_center_led(char state){
+void Led::set_center_led(char state)
+{
     set_center_led(state, center_led_brightness);
 }
 
-void set_center_led(char state, float brightness){
+void Led::set_center_led(char state, float brightness)
+{
     center_led_brightness = brightness;
     center_led_state = state;
-    switch(center_led_state){
-        case 0: center_led_red.write(0);
-                center_led_green.write(0);
-                break;
-        case 1: center_led_red.write(center_led_brightness / 4);
-                center_led_green.write(0);
-                break;
-        case 2: center_led_red.write(0);
-                center_led_green.write(center_led_brightness);
-                break;
-        case 3: center_led_red.write(center_led_brightness / 4);
-                center_led_green.write(center_led_brightness);
-                break;
+    switch(center_led_state) {
+        case 0:
+            center_led_red.write(0);
+            center_led_green.write(0);
+            break;
+        case 1:
+            center_led_red.write(center_led_brightness / 4);
+            center_led_green.write(0);
+            break;
+        case 2:
+            center_led_red.write(0);
+            center_led_green.write(center_led_brightness);
+            break;
+        case 3:
+            center_led_red.write(center_led_brightness / 4);
+            center_led_green.write(center_led_brightness);
+            break;
     }
 }
 
-void set_center_led_brightness(float brightness){
+void Led::set_center_led_brightness(float brightness)
+{
     set_center_led(center_led_state,brightness);
 }
 
-void save_led_states(){
+void Led::save_led_states()
+{
     held_red_states = red_led_states;
-    held_green_states = green_led_states;   
+    held_green_states = green_led_states;
 }
 
-void restore_led_states(){
+void Led::restore_led_states()
+{
     set_leds(held_green_states,held_red_states);
 }
 
-void IF_init_leds(){
+void Led::IF_init_leds()
+{
     green_led_states = 0;
     red_led_states = 0;
     center_led_red.period_us(100);
-    center_led_green.period_us(100); 
+    center_led_green.period_us(100);
     set_center_led(0,0.2);
 }
 
-void IF_update_leds(){
+void Led::IF_update_leds()
+{
     char led_byte_0 =  (((green_led_states & (1 << 3)) == 0) << 7) +
                        (((green_led_states & (1 << 2)) == 0) << 5) +
                        (((green_led_states & (1 << 1)) == 0) << 3) +
@@ -128,6 +146,6 @@
                        (((red_led_states & (1 << 7)) == 0) << 6) +
                        (((red_led_states & (1 << 6)) == 0) << 4) +
                        (((red_led_states & (1 << 5)) == 0) << 2) +
-                       (((red_led_states & (1 << 4)) == 0));  
-    IF_write_to_led_ic(led_byte_0,led_byte_1);            
+                       (((red_led_states & (1 << 4)) == 0));
+    IF_write_to_led_ic(led_byte_0,led_byte_1);
 }
\ No newline at end of file