Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: Servo AX12_final MX106_not_working comunication_1
Revision 9:34f4eb572c47, committed 2016-07-02
- 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(){