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: mbed BLE_API X_NUCLEO_IDB0XA1 MODSERIAL
SSC-32.cpp
00001 #include "SSC-32.h" 00002 #include "LOGGER.h" 00003 //#include <sstream> 00004 #include <string> 00005 #include <stdio.h> 00006 #define DEFAULT_VAL 1500 00007 static Logger *Ordi = Logger::Instance(); 00008 data32::data32(char i,int v) 00009 { 00010 id=i; 00011 value=v; 00012 } 00013 SSC_32::SSC_32() 00014 { 00015 serial=new Serial(SSC_32_RX, SSC_32_TX); 00016 if(serial==NULL)Ordi->log("SSC_32::SSC_32 Erreur de creation du Serial, retourne NULL"); 00017 else Ordi->log("SSC_32::SSC_32 Creation du Serial reussi"); 00018 for(int i=0;i<18;i++) 00019 { old_val[i] = DEFAULT_VAL; 00020 } 00021 //les vrais valheurs de la position de chaque pate sur un doc de la ssc-30 X_XX eg : 0_2 3 00022 real_id[0]='0';// 00023 real_id[1]='2'; 00024 real_id[2]='3'; 00025 real_id[3]='4';// 00026 real_id[4]='6'; 00027 real_id[5]='7'; 00028 real_id[6]='8';// 00029 real_id[7]="10"; 00030 real_id[8]="11"; 00031 //ranger de l'autre côte 00032 real_id[9]="16";// 00033 real_id[10]="18"; 00034 real_id[11]="19"; 00035 real_id[12]="20";// 00036 real_id[13]="22"; 00037 real_id[14]="23"; 00038 real_id[15]="24";// 00039 real_id[16]="26"; 00040 real_id[17]="27"; 00041 } 00042 SSC_32::~SSC_32() 00043 { 00044 ; 00045 } 00046 void SSC_32::close() 00047 { 00048 ~SSC_32(); 00049 } 00050 void SSC_32::add(int leg, int val) 00051 { 00052 00053 std::string msg; 00054 if( leg <18) { 00055 if(old_val[leg]!=val) 00056 { 00057 old_val[leg]=val; 00058 buffer.push(new data32(real_id[leg] ,val)); 00059 msg="SSC_32 Data sent : id"; 00060 msg+=buffer.front()->id+" valheur "+Ordi->log_itos(val); // conversion en string de l'int 00061 Ordi->log(msg); 00062 }else Ordi->log("SSC_32::add Warning, la jambe est deja a cette position il n'ya pas de besoin de la bouger"); 00063 } else Ordi->log("SSC_32::add Error, Nom de leg sup 17"); 00064 } 00065 void SSC_32::send() 00066 { 00067 std::string msg; 00068 data32 *tmp; 00069 int fin=13; 00070 if(buffer.empty()==false) { 00071 while(buffer.empty()!=true) { 00072 tmp=buffer.front(); 00073 //traitement d'envoie sur le buffer (tmp) 00074 msg+='#'+tmp->id+" P"+Ordi->log_itos(tmp->value)+' '; 00075 buffer.pop(); 00076 } 00077 msg+=(char)fin; 00078 serial->printf("%s",msg.c_str()); 00079 Ordi->log("SSC_32::SSC_32 Message sent :"+msg); 00080 } else Ordi->log("SSC_32::send Error, buffer is empty"); 00081 }
Generated on Thu Jul 14 2022 17:21:51 by
1.7.2