Biblio à utiliser pour communiquer avec la carte moteur

Dependents:   Asserv_mot Asserv_mot

Revision:
2:dc3ec8d77b6a
Parent:
1:162aa6608ffe
--- a/Asservissement.cpp	Wed Apr 19 17:41:35 2017 +0000
+++ b/Asservissement.cpp	Mon May 27 09:54:41 2019 +0000
@@ -1,5 +1,5 @@
+
 #include "Asservissement.h"
-#include "My_ident.h"
 
 /*********************************************************************************************************/
 /* FUNCTION NAME: SendRawId                                                                              */
@@ -10,8 +10,8 @@
     CANMessage msgTx=CANMessage();
     msgTx.id=id;
     msgTx.len=0;
-    can1.write(msgTx);
-    //wait_us(200);
+    can.write(msgTx);
+    wait_us(200);
 }
 
 /*********************************************************************************************/
@@ -29,9 +29,55 @@
     msgTx.data[0]=(unsigned char)from;
     msgTx.data[1]=(unsigned char)(from>>8);
 
-    can1.write(msgTx);
+    can.write(msgTx);
+}
+
+
+void Send2Short(unsigned short id, unsigned short d1, unsigned short d2)
+{
+    CANMessage msgTx=CANMessage();
+    msgTx.id=id;
+    msgTx.len=4;
+    msgTx.format=CANStandard;
+    msgTx.type=CANData;
+    // from sur 2 octets
+    msgTx.data[0]=(unsigned char)d1;
+    msgTx.data[1]=(unsigned char)(d1>>8);
+    msgTx.data[2]=(unsigned char)d2;
+    msgTx.data[3]=(unsigned char)(d2>>8);
+
+    can.write(msgTx);
 }
 
+void SendMsgCan(unsigned short id, unsigned char* data, int len)
+{
+    CANMessage msgTx=CANMessage();
+    msgTx.id=id;
+    msgTx.len=len;
+    msgTx.format=CANStandard;
+    msgTx.type=CANData;
+    // from sur 2 octets
+    for(int i = 0; i<len; i++)
+    {
+        msgTx.data[i]=data[i];
+    }
+
+    can.write(msgTx);
+}
+void SendCharCan(unsigned short id, unsigned char data)
+{
+    CANMessage msgTx=CANMessage();
+    msgTx.id=id;
+    msgTx.len=1;
+    msgTx.format=CANStandard;
+    msgTx.type=CANData;
+    msgTx.data[0]=data;
+    
+    can.write(msgTx);
+}
+
+
+
 /*********************************************************************************************/
 /* FUNCTION NAME: GoToPosition                                                               */
 /* DESCRIPTION  : Transmission CAN correspondant à un asservissement en position (x,y,theta) */
@@ -56,14 +102,14 @@
     msgTx.data[5]=(unsigned char)(theta>>8);
     msgTx.data[6]=sens;
 
-    can1.write(msgTx);
+    can.write(msgTx);
 }
 
 /****************************************************************************************/
 /* FUNCTION NAME: Rotate                                                                */
 /* DESCRIPTION  : Transmission CAN correspondant à une rotation                         */
 /****************************************************************************************/
- void Rotate (signed short angle)
+void Rotate (signed short angle)
 {
     CANMessage msgTx=CANMessage();
     msgTx.id=ASSERVISSEMENT_ROTATION;  // Tx rotation autour du centre du robot
@@ -74,7 +120,7 @@
     msgTx.data[0]=(unsigned char)angle;
     msgTx.data[1]=(unsigned char)(angle>>8);
 
-    can1.write(msgTx);
+    can.write(msgTx);
 }
 
 
@@ -108,7 +154,7 @@
     //Enchainement sur 1 octet
     msgTx.data[5]=isEnchainement;
 
-    can1.write(msgTx);
+    can.write(msgTx);
     //wait_ms(500);
 }
 
@@ -134,7 +180,7 @@
     // Enchainement sur 1 octet
     msgTx.data[5]=enchainement;
 
-    can1.write(msgTx);
+    can.write(msgTx);
 }
 
 void SetOdometrie (unsigned short canId, unsigned short x,unsigned short y,signed short theta)
@@ -155,7 +201,7 @@
     msgTx.data[4]=(unsigned char)theta;
     msgTx.data[5]=(unsigned char)(theta>>8);
 
-    can1.write(msgTx);
+    can.write(msgTx);
 }
 
 /****************************************************************************************/
@@ -172,25 +218,95 @@
     //  Angle signé sur 2 octets
     msgTx.data[0]=(unsigned char)((enable==0)?0:1);
 
-    can1.write(msgTx);
+    can.write(msgTx);
 }
 
 
 /****************************************************************************************/
+/* FUNCTION NAME: SendSpeed accel decel                                                             */
+/* DESCRIPTION  : Envoie un asservissement paramètre retournant à une vitesse           */
+/****************************************************************************************/
+void SendSpeedAccelDecel (unsigned short vitesse, unsigned short acceleration,unsigned short deceleration)
+{
+    CANMessage msgTx=CANMessage();
+    msgTx.id=ASSERVISSEMENT_CONFIG;
+    msgTx.format=CANStandard;
+    msgTx.type=CANData;
+    msgTx.len=8;
+    msgTx.data[0]=(unsigned char)(vitesse&0x00FF);
+    msgTx.data[1]=(unsigned char)((vitesse&0xFF00)>>8);
+    
+    msgTx.data[2]=(unsigned char)(acceleration&0x00FF);
+    msgTx.data[3]=(unsigned char)((acceleration&0xFF00)>>8);
+    
+    msgTx.data[4]=(unsigned char)(deceleration&0x00FF);
+    msgTx.data[5]=(unsigned char)((deceleration&0xFF00)>>8);
+    
+    msgTx.data[6]=(unsigned char)(acceleration&0x00FF);//cloto
+    msgTx.data[7]=(unsigned char)((acceleration&0xFF00)>>8);//cloto
+
+    can.write(msgTx);
+        
+}
+
+/****************************************************************************************/
 /* FUNCTION NAME: SendSpeed                                                             */
 /* DESCRIPTION  : Envoie un asservissement paramètre retournant à une vitesse           */
 /****************************************************************************************/
-void SendSpeed (unsigned short vitesse, unsigned short acceleration)
+void SendSpeed (unsigned short vitesse)
+{
+    CANMessage msgTx=CANMessage();
+    msgTx.id=ASSERVISSEMENT_CONFIG_VIT;
+    msgTx.format=CANStandard;
+    msgTx.type=CANData;
+    msgTx.len=2;
+    msgTx.data[0]=(unsigned char)(vitesse&0x00FF);
+    msgTx.data[1]=(unsigned char)((vitesse&0xFF00)>>8);
+
+    can.write(msgTx);
+        
+}
+
+/****************************************************************************************/
+/* FUNCTION NAME: SendSpeed                                                             */
+/* DESCRIPTION  : Envoie un asservissement paramètre retournant à une vitesse           */
+/****************************************************************************************/
+void SendAccel(unsigned short acceleration,unsigned short deceleration)
 {
     CANMessage msgTx=CANMessage();
-    msgTx.id=ASSERVISSEMENT_CONFIG;
+    msgTx.id=ASSERVISSEMENT_CONFIG_ACCEL;
+    msgTx.format=CANStandard;
+    msgTx.type=CANData;
+    msgTx.len=4;
+    msgTx.data[0]=(unsigned char)(acceleration&0x00FF);
+    msgTx.data[1]=(unsigned char)((acceleration&0xFF00)>>8);
+    
+    msgTx.data[2]=(unsigned char)(deceleration&0x00FF);
+    msgTx.data[3]=(unsigned char)((deceleration&0xFF00)>>8);
+
+    can.write(msgTx);
+        
+}
+
+/****************************************************************************************/
+/* FUNCTION NAME: SendSpeedDecel                                                        */
+/* DESCRIPTION  : Envoie un asservissement paramètre retournant à une vitesse           */
+/****************************************************************************************/
+ /*
+void SendSpeedDecel (unsigned short vitesse, unsigned short deceleration)
+{
+    CANMessage msgTx=CANMessage();
+    msgTx.id=ASSERVISSEMENT_CONFIG_DECEL;
     msgTx.format=CANStandard;
     msgTx.type=CANData;
     msgTx.len=4;
     msgTx.data[0]=(unsigned char)(vitesse&0x00FF);
     msgTx.data[1]=(unsigned char)((vitesse&0xFF00)>>8);
-    msgTx.data[2]=(unsigned char)(acceleration&0x00FF);
-    msgTx.data[3]=(unsigned char)((acceleration&0xFF00)>>8);
-
-    can1.write(msgTx);
-}
\ No newline at end of file
+    msgTx.data[2]=(unsigned char)(deceleration&0x00FF);
+    msgTx.data[3]=(unsigned char)((deceleration&0xFF00)>>8);
+ 
+    can.write(msgTx);
+        
+}*/
+   
+   
\ No newline at end of file