- Timestamp:
- Jul 14, 2010, 4:46:26 PM (14 years ago)
- Location:
- BAORadio/libindi/libindi
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
BAORadio/libindi/libindi/BAOTest/BAOtest_main.cpp
r493 r494 61 61 } 62 62 63 Position ExtractPosition2(std::string str) 64 { 65 Position result; 66 67 result.x=1000; 68 result.y=1000; 69 70 if (str.length()>9) 71 { 72 result.x=atoi(str.substr(2, 4).c_str()); 73 74 result.y=atoi(str.substr(7, 4).c_str()); 75 76 if (str[1]=='b') result.x=-result.x; 77 78 if (str[6]=='b') result.y=-result.y; 79 } 80 81 return result; 82 } 83 63 84 /************************************************************************************** 64 85 ** Création de l'identifiant de l'antenne à partir de l'IP 65 86 ** 66 87 ***************************************************************************************/ 67 88 /* 68 89 int NumeroServeur() 69 90 { … … 96 117 return -1; 97 118 } 98 119 */ 99 120 100 121 … … 115 136 // Parametres sups 116 137 bool ErreursAleatoires=false; 117 bool Affichage= false;138 bool Affichage=true; 118 139 119 140 // Position PARK … … 167 188 168 189 169 if (asks.find(" STATUS")!=string::npos)190 if (asks.find("s")!=string::npos) 170 191 { 171 192 strcpy(chaine, "ACK/STATUS\n"); … … 184 205 } 185 206 186 if (asks.find(" POS")!=string::npos)187 { 188 189 strcpy(chaine,"ACK/POS \n");207 if (asks.find("p")!=string::npos) 208 { 209 210 strcpy(chaine,"ACK/POSITION\n"); 190 211 client_socket << chaine; 191 212 … … 194 215 if (Aleat) 195 216 { 196 sprintf(chaine, "POS /%i/%i/\n", Pos.x, Pos.y);197 } 198 else 199 { 200 strcpy(chaine, " ERR/HALT/POS/\n"); //erreur moteur !201 } 202 } 203 204 if (asks.find(" GOTO")!=string::npos)205 { 206 Pos=ExtractPosition (asks);217 sprintf(chaine, "POSITION/%i/%i/\n", Pos.x, Pos.y); 218 } 219 else 220 { 221 strcpy(chaine, "NACK/HALT/POSITION/\n"); //erreur moteur ! 222 } 223 } 224 225 if (asks.find("g")!=string::npos) 226 { 227 Pos=ExtractPosition2(asks); 207 228 208 229 strcpy(chaine,"ACK/GOTO/\n"); … … 224 245 else 225 246 { 226 strcpy(chaine, " ERR/HALT/GOTO/\n"); //erreur moteur !227 } 228 } 229 230 if (asks.find(" PARK")!=string::npos)247 strcpy(chaine, "NACK/HALT/GOTO/\n"); //erreur moteur ! 248 } 249 } 250 251 if (asks.find("pa")!=string::npos) 231 252 { 232 253 … … 242 263 else 243 264 { 244 strcpy(chaine, " ERR/HALT/PARK/\n"); //erreur245 } 246 } 247 248 if (asks.find(" ABORT")!=string::npos)265 strcpy(chaine, "NACK/HALT/PARK/\n"); //erreur 266 } 267 } 268 269 if (asks.find("a")!=string::npos) 249 270 { 250 271 … … 260 281 else 261 282 { 262 strcpy(chaine, " ERR/HALT/ABORT/\n"); //erreur283 strcpy(chaine, "NACK/HALT/ABORT/\n"); //erreur 263 284 } 264 285 } -
BAORadio/libindi/libindi/drivers/telescope/BAO.cpp
r493 r494 893 893 // On traite ici les acknowledges 894 894 895 if ( reponse.find("ACK")!=string::npos)895 if ((reponse.find("ACK")!=string::npos) && (reponse.find("NACK")==string::npos)) 896 896 { 897 if (reponse.find("STATUS")!=string::npos)897 /*if (reponse.find("STATUS")!=string::npos) 898 898 { 899 899 Sockets[i].ack_status=true; 900 } 901 elseif (reponse.find("POS")!=string::npos)900 } else*/ 901 if (reponse.find("POS")!=string::npos) 902 902 { 903 903 Sockets[i].ack_pos=true; … … 919 919 { 920 920 //réponse à la requête STATUS 921 if (reponse.find("STATUS")!=string::npos)921 /*if (reponse.find("STATUS")!=string::npos) 922 922 { 923 923 if (reponse.find("READY")!=string::npos) … … 930 930 } 931 931 932 }//réponse à la requête POSITION 933 else if (reponse.find("POS")!=string::npos) 934 { 935 if (reponse.find("ERR")!=string::npos) 932 } else*/ 933 //réponse à la requête POSITION 934 if (reponse.find("POS")!=string::npos) 935 { 936 if (reponse.find("NACK")!=string::npos) 936 937 { 937 938 OnCoordSetSP.s = IPS_ALERT; … … 954 955 else if (reponse.find("PARK")!=string::npos) 955 956 { 956 if (reponse.find(" ERR")!=string::npos)957 if (reponse.find("NACK")!=string::npos) 957 958 { 958 959 ParkSP.s = IPS_ALERT; … … 967 968 else if (reponse.find("ABORT")!=string::npos) 968 969 { 969 if (reponse.find(" ERR")!=string::npos)970 if (reponse.find("NACK")!=string::npos) 970 971 { 971 972 AbortSlewSP.s = IPS_ALERT; … … 982 983 else if (reponse.find("GOTO")!=string::npos) 983 984 { 984 if (reponse.find(" ERR")!=string::npos)985 if (reponse.find("NACK")!=string::npos) 985 986 { 986 987 OnCoordSetSP.s = IPS_ALERT; … … 1144 1145 { 1145 1146 //Envoi des requêtes STATUS 1146 case 0 :1147 /*case 0 : 1147 1148 { 1148 1149 Sockets[i].AttenteExecution=0; … … 1229 1230 } 1230 1231 } 1231 break; 1232 break;*/ 1232 1233 1233 1234 //Envoi de la commande POS 1234 case 3:1235 case 0 : 1235 1236 { 1236 1237 Sockets[i].ack_pos=false; … … 1244 1245 1245 1246 //ack POS 1246 case 4:1247 case 1 : 1247 1248 { 1248 1249 if (Sockets[i].ack_pos) … … 1260 1261 if (Sockets[i].AttenteExecution>MAXATTENTE) 1261 1262 { 1262 Sockets[i].etape= 3;1263 Sockets[i].etape=0; 1263 1264 Sockets[i].AttenteExecution=0; 1264 1265 Sockets[i].AnomaliesExecution++; … … 1267 1268 if (Sockets[i].AnomaliesExecution>MAXANOMALIES) 1268 1269 { 1269 Sockets[i].etape= 6;1270 Sockets[i].etape=3; 1270 1271 1271 1272 if ( compt % 1000 == 0) … … 1281 1282 1282 1283 //Valeurs pos valides ? 1283 case 5:1284 case 2 : 1284 1285 { 1285 1286 if (Sockets[i].PosValides) … … 1303 1304 if (Sockets[i].AnomaliesExecution>MAXANOMALIES) 1304 1305 { 1305 Sockets[i].etape= 6;1306 Sockets[i].etape=3; 1306 1307 1307 1308 if ( compt % 1000 == 0) … … 1331 1332 if (Sockets[i].sendalertes > 0) 1332 1333 { 1333 Sockets[i].etape= 6;1334 Sockets[i].etape=3; 1334 1335 1335 1336 if ( compt % 1000 == 0) … … 1351 1352 for (int i=1; i<SocketsNumber; i++) if (Sockets[i].Connected) 1352 1353 { 1353 if (Sockets[i].etape == 6) num++; //fin de la procédure LecturePosition. Les antennes sont prêtes1354 if (Sockets[i].etape == 3) num++; //fin de la procédure LecturePosition. Les antennes sont prêtes 1354 1355 //à recevoir l'ordre GOto 1355 1356 } … … 1361 1362 Sockets[i].ack_goto=false; 1362 1363 1363 if (!GOTO(i, TargetPosition.x, TargetPosition.y)) Sockets[i].sendalertes++; 1364 //pour tester le programme de François, on envoie ces coordonnees sur sa demande 1365 if (!GOTO(i, 1000, -3000)) Sockets[i].sendalertes++; 1366 1367 //if (!GOTO(i, TargetPosition.x, TargetPosition.y)) Sockets[i].sendalertes++; 1364 1368 1365 1369 Sockets[i].etape++; … … 1617 1621 bool BAO::STATUS(int numsocket) 1618 1622 { 1619 return COMMANDE(numsocket, (char*)" STATUS", (char*)"");1623 return COMMANDE(numsocket, (char*)"s", (char*)""); 1620 1624 } 1621 1625 … … 1626 1630 bool BAO::POSITION(int numsocket) 1627 1631 { 1628 return COMMANDE(numsocket, (char*)" POS", (char*)"");1632 return COMMANDE(numsocket, (char*)"p", (char*)""); 1629 1633 } 1630 1634 … … 1635 1639 bool BAO::PARK(int numsocket) 1636 1640 { 1637 return COMMANDE(numsocket, (char*)" PARK", (char*)"");1641 return COMMANDE(numsocket, (char*)"p", (char*)""); 1638 1642 } 1639 1643 … … 1644 1648 bool BAO::ABORT(int numsocket) 1645 1649 { 1646 return COMMANDE(numsocket, (char*)" ABORT", (char*)"");1650 return COMMANDE(numsocket, (char*)"a", (char*)""); 1647 1651 } 1648 1652 … … 1655 1659 { 1656 1660 char Params[MAXCARACTERES]; 1657 1658 int sensAlt=0; 1659 int sensAz=0; 1661 char sensAz; 1662 char sensAlt; 1663 1664 sensAlt='f'; 1665 sensAz='f'; 1660 1666 1661 1667 if (deltaAz<0) 1662 1668 { 1663 1669 deltaAz=-deltaAz; 1664 sensAz= 1;1670 sensAz='b'; 1665 1671 } 1666 1672 … … 1668 1674 { 1669 1675 deltaAlt=-deltaAlt; 1670 sensAlt= 1;1671 } 1672 1673 sprintf(Params, " /%i/# %i Az/%i/# %i Alt", sensAz, deltaAz, sensAlt, deltaAlt);1674 1675 return COMMANDE(numsocket, (char*)" GOTO", Params);1676 } 1677 1678 1679 1676 sensAlt='b'; 1677 } 1678 1679 sprintf(Params, "%c%03i%c%03i", sensAz, deltaAz, sensAlt, deltaAlt); 1680 1681 return COMMANDE(numsocket, (char*)"g", Params); 1682 } 1683 1684 1685
Note: See TracChangeset
for help on using the changeset viewer.