Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2025:cmoarcas:alexandru.ariton04 [2025/05/20 19:33]
alexandru.ariton04 [Hardware Design]
pm:prj2025:cmoarcas:alexandru.ariton04 [2025/05/28 19:05] (current)
alexandru.ariton04 [Software Design]
Line 69: Line 69:
  
  
-```+
 #define MOVE_SHIP '​m'​ #define MOVE_SHIP '​m'​
 +
 #define ADD_SHIP '​a'​ #define ADD_SHIP '​a'​
 +
 #define PASTE_SHIP '​p'​ #define PASTE_SHIP '​p'​
 +
 #define ADD_BOMB '​b'​ #define ADD_BOMB '​b'​
 +
 #define MOVE_BOMB '​B'​ #define MOVE_BOMB '​B'​
 +
 #define PASTE_BOMB '​P'​ #define PASTE_BOMB '​P'​
-```+ 
  
 protocolul de comunicatii arata asa: "​header|int|int|int"​. ​ protocolul de comunicatii arata asa: "​header|int|int|int"​. ​
Line 86: Line 92:
   * Functii implementate:​   * Functii implementate:​
  
-``` 
  
-void IRAM_ATTR onMoveYPlayer1() {+ 
 +    ​void IRAM_ATTR onMoveYPlayer1() {
  if (!validate()) {  if (!validate()) {
  return;  return;
Line 106: Line 112:
  do_received_command(msg);​  do_received_command(msg);​
  }  }
-+    ​
-```+
  
 Asa arata o functie de intrerupere^,​ de exemplu cea ce misca nava / bomba pe pozitia Y. Asa arata o functie de intrerupere^,​ de exemplu cea ce misca nava / bomba pe pozitia Y.
 Si sursa si destinatarul vor executa comanda. Si sursa si destinatarul vor executa comanda.
  
-``` 
  
-void OnDataRecv(const uint8_t *mac, const uint8_t *incomingData,​ int len) + 
-{+   void OnDataRecv(const uint8_t *mac, const uint8_t *incomingData,​ int len) 
 +        {
  Serial.print("​Received from: ");  Serial.print("​Received from: ");
  for (int i = 0; i < 6; i++) {  for (int i = 0; i < 6; i++) {
Line 127: Line 133:
  Serial.print(len);​  Serial.print(len);​
  Serial.print("​Finished len");  Serial.print("​Finished len");
- 
  char* incoming_data_str = (char*)calloc(len + 1, sizeof(char));​  char* incoming_data_str = (char*)calloc(len + 1, sizeof(char));​
- 
  strncpy(incoming_data_str,​ (char*)incomingData,​ len);  strncpy(incoming_data_str,​ (char*)incomingData,​ len);
  int r = do_received_command(incoming_data_str);​  int r = do_received_command(incoming_data_str);​
  Serial.println(incoming_data_str);​  Serial.println(incoming_data_str);​
  free(incoming_data_str);​  free(incoming_data_str);​
-}+   }
  
  
Line 142: Line 146:
 Am doua arrayuri de date globale: ships[SHIPS_NR] si bombs[BOMB_NR]. Am un pending_ship si un pending_bomb,​ precum si doua variabile: mode - SHIPS/BOMBS si modulus, care este ID-ul fiecarui controller Am doua arrayuri de date globale: ships[SHIPS_NR] si bombs[BOMB_NR]. Am un pending_ship si un pending_bomb,​ precum si doua variabile: mode - SHIPS/BOMBS si modulus, care este ID-ul fiecarui controller
  
 +* Flow:
 +
 +Este mereu randul playerului cu nava albastra.
 +Primul buton din dreapta muta pe x, al doilea muta pe y, al treilea schimba orientarea navei si da toggle intre x negativ si pozitiv
 +Ultimul buton pune nava/bomba definitiv pe tabla.
 +
 +
 +
 +
 +== Github ==
 +
 +* https://​github.com/​Barosandu/​pmpriject
  
 +== Video == 
  
 +* https://​youtube.com/​shorts/​LX7CNFMTghA?​si=4i6bsephvSB5epEF
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
pm/prj2025/cmoarcas/alexandru.ariton04.1747758832.txt.gz · Last modified: 2025/05/20 19:33 by alexandru.ariton04
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0