Team DIANA / Mbed OS Arm_dynamixel_DEVEL

Dependencies:   Servo AX12_final MX106_not_working comunication_1

Files at this revision

API Documentation at this revision

Comitter:
clynamen
Date:
Sat Jul 02 15:52:53 2016 +0000
Parent:
8:3afb6355c0e7
Child:
10:2acfa1a84c96
Commit message:
add comments for corrections;

Changed in this revision

joint.h Show annotated file Show diff for this revision Revisions of this file
--- a/joint.h	Tue Jun 28 11:54:11 2016 +0000
+++ b/joint.h	Sat Jul 02 15:52:53 2016 +0000
@@ -49,17 +49,25 @@
 #define AX12_CCW 1
 using namespace std;
 
+// La prima lettera di una classe di solito ha la lettera Maiuscola -> Joint
 class joint
 {
     public:
+    // general non serve, le classi astratte pure non dovrebbero avere un costruttore (al costruttore ci pensa la classe child)
     virtual void general (PinName tx, PinName rx, int ID){};
+    
     virtual void setID(int CurrentID, int NewID){};
     virtual void setMode(int mode) {};
     virtual void setCWLimit(float degrees) {};
     virtual void setCCWLimit(float degrees){};
+    // utilizziamo sempre lo stesso formato in una classe per i nomi dei metodi: lettera minuscola all'inizio
+    // goalPosition
     virtual void GoalPosition(float degrees){};
     virtual void SetSpeed(float goal_speed){};
+    // GetTemp serve a ottenere la temperature del motore... ma il metodo restituisce void
+    // deve restituire un float
     virtual void GetTemp(){};
+    // lo stesso per gli altri metodi get
     virtual void GetVolts(){};
     virtual void GetCurrent (){};
     virtual void GetPGain (){};
@@ -69,28 +77,39 @@
     virtual void MotorOnOff (){};
     virtual void trigger(){};
     virtual void ismoving(){};
+}
 
-    
-    }
+// Il codice seguente mischia dichiarazione e definizione. La dichiarazione (nomi, parametri) dovrebbe stare in un file .h
+// l'implementazione in un file cpp
+
+
 class MX : public joint
-{public:
-void general(PinName tx, PinName rx, int ID)
+{
+    public:
+        // Qui il costruttore e` giusto invece: MX non e` piu` una classe astratta, ma una normale classe parent 
+        // Baudrate dovrebbe essere un parametro del costruttore
+        // La classe non deve prendere piu tx e rx, ma soltanto un communication
+        void general(PinName tx, PinName rx, int ID)
        : _mx(tx,rx) {
 
     _mx.baud(9600);
     _ID = ID;
+    // Questi parametri devono essere letti da un file  (preferibile) o inseriti nel codice.
+    // Digitarli dal terminale non e` pratico :)
     cout<<inserisci gear train: ;
     cin>>_gear_train;
 }
+
 void setID(int ID){
-   
+    
     char data[1];
     data[0] = NewID;
     if (MX_DEBUG) {
         printf("Setting ID from 0x%x to 0x%x\n",CurrentID,NewID);
     }
     return (_line.write(CurrentID, MX_REG_ID, 1, data));
-    }
+}
+    
 void setMode(int mode){
     switch (mode){
         //Wheel Mode
@@ -529,8 +548,10 @@
     communication_1 _line;
     int _ID;
     SerialHalfDuplex _ax12;
-    }
+}
 
+
+// Stessa cosa: la classe stepper deve avere due files: .h e .cpp
 class stepper:public joint{
     public:
 void GetPGain(){