<commit_before>// Ce sketch arduino permet d'allumer un ordinateur via le Wake on Ring
// en appliquant une tension sur le pin 9 du port série
// Au MIPS-lab, il faut envoyer en UDP à l'arduino "lamex" où x est le numéro de la
// lame du Cray à activer.

#include <SPI.h> 
#include <Ethernet.h>
#include <EthernetUdp.h>

byte mac[] = { 0x90, 0xA2, 0xDA, 0x0F, 0x4F, 0x39 }; // Défini l'adresse MAC
IPAddress ip(192, 168, 42, 250); // Défini l'adresse IP

int localPort = 9694; // Défini le port
  
int pin_LAME1 = 5;
int pin_LAME2 = 6;
int pin_LAME3 = 2;
int pin_LAME4 = 3;
 
int lame = 0;
char packetBuffer[32];	// Où sont stockés les données reçues.x
char ReplyBuffer[] = " OK "; // Réponse de l'arduino
int demande = 0;

EthernetUDP Udp;

void setup() {
	Ethernet.begin(mac,ip); // Initialise le shield ethernet
	Udp.begin(localPort); // Initialise la communication UDP
	Serial.begin(9600);
	pinMode(pin_LAME1, OUTPUT);
	pinMode(pin_LAME2, OUTPUT);
	pinMode(pin_LAME3, OUTPUT);
	pinMode(pin_LAME4, OUTPUT);
	pin_LAME1 = LOW;
	pin_LAME2 = LOW;
	pin_LAME3 = LOW;
	pin_LAME4 = LOW;
}

void loop() {
	int packetSize = Udp.parsePacket();
	if(packetSize) { // Si il y a un paquet
		Udp.read(packetBuffer,32); // le lire
		lame = packetBuffer[4]-'0'; // et convertir le 5e caractére en chiffre (char -> int)
		switch (lame) {
			case 1:
				pin_LAME1 = HIGH;
				Serial.println("Active la lame 1");
				delay(1000);
				pin_LAME1 = LOW;
				break;
			case 2:
				pin_LAME2 = HIGH;
				Serial.println("Active la lame 2");
				delay(1000);
				pin_LAME2 = LOW;
				break;
			case 3:
				pin_LAME3 = HIGH;
				Serial.println("Active la lame 3");
				delay(1000);
				pin_LAME3 = LOW;
				break;
			case 4:
				pin_LAME4 = HIGH;
				Serial.println("Active la lame 4");
				delay(1000);
				pin_LAME4 = LOW;
				break;
		}
		Udp.beginPacket(Udp.remoteIP(), 9694);
		Udp.write(ReplyBuffer);
		Udp.endPacket();
	}
	delay(10);		
}<commit_msg>ajout de la fonction status<commit_after>// Ce sketch arduino permet d'allumer un ordinateur via le Wake on Ring
// en appliquant une tension sur le pin 9 du port série
// Au MIPS-lab, il faut envoyer en UDP à l'arduino "lamex" où x est le numéro de la
// lame du Cray à activer.

#include <SPI.h>
#include <Ethernet.h>
#include <EthernetUdp.h>

byte mac[] = { 0x90, 0xA2, 0xDA, 0x0F, 0x4F, 0x39 }; // Défini l'adresse MAC
IPAddress ip(192, 168, 42, 250); // Défini l'adresse IP

int localPort = 9694; // Défini le port

int pin_LAME1 = 5;
int pin_LAME2 = 6;
int pin_LAME3 = 2;
int pin_LAME4 = 3;

int pin_STATUS1 = 10;
int pin_STATUS2 = 11;
int pin_STATUS3 = 12;
int pin_STATUS4 = 13;



int lame = 0;
char packetBuffer[32];	// Où sont stockés les données reçues.x
char ReplyBuffer[] = " OK "; // Réponse de l'arduino
char ReplyOFF[] = " OFF ";
char ReplyON[] = " ON ";
int demande = 0;

EthernetUDP Udp;

void setup() {
	Ethernet.begin(mac,ip); // Initialise le shield ethernet
	Udp.begin(localPort); // Initialise la communication UDP
	Serial.begin(9600);
	pinMode(pin_LAME1, OUTPUT);
	pinMode(pin_LAME2, OUTPUT);
	pinMode(pin_LAME3, OUTPUT);
	pinMode(pin_LAME4, OUTPUT);
	pin_LAME1 = LOW;
	pin_LAME2 = LOW;
	pin_LAME3 = LOW;
	pin_LAME4 = LOW;

	pinMode(pin_STATUS1, INPUT);
	pinMode(pin_STATUS2, INPUT);
	pinMode(pin_STATUS3, INPUT);
	pinMode(pin_STATUS4, INPUT);
}

void sendStatus(lame, lameNumber){
  int status = digitalRead(lame);
  Serial.println("status de la lame %d : %d", lameNumber, status);
  Udp.beginPacket(Udp.remoteIP(), 9694);
  if (status)
    {
      Udp.write(ReplyOn);
    }
  else
    {
      Udp.write(ReplyOff);
    }
  Udp.endPacket();
}

void loop() {
	int packetSize = Udp.parsePacket();
	if(packetSize) { // Si il y a un paquet
		Udp.read(packetBuffer,32); // le lire
		op = packetBuffer.substrings(4);
		lame = packetBuffer[4]-'0'; // et convertir le 5e caractére en chiffre (char -> int)
		switch(op) {
		case "lame":
		  switch (lame) {
		  case 1:
		    pin_LAME1 = HIGH;
		    Serial.println("Active la lame 1");
		    delay(1000);
		    pin_LAME1 = LOW;
		    break;
		  case 2:
		    pin_LAME2 = HIGH;
		    Serial.println("Active la lame 2");
		    delay(1000);
		    pin_LAME2 = LOW;
		    break;
		  case 3:
		    pin_LAME3 = HIGH;
		    Serial.println("Active la lame 3");
		    delay(1000);
		    pin_LAME3 = LOW;
		    break;
		  case 4:
		    pin_LAME4 = HIGH;
		    Serial.println("Active la lame 4");
		    delay(1000);
		    pin_LAME4 = LOW;
		    break;
		  }

		  Udp.beginPacket(Udp.remoteIP(), 9694);
		  Udp.write(ReplyBuffer);
		  Udp.endPacket();
		  break;

		case "stat":
		  switch(lame) {
 		  case 1:
		    sendStatus(pin_STATUS1, 1)
		    break;
		  case 2:
		    sendStatus(pin_STATUS2, 2)
		    break;
		  case 3:
		    sendStatus(pin_STATUS3, 3)
		    break;
		  case 4:
		    sendStatus(pin_STATUS4, 4)
		    break;
		  }
	}
	delay(10);
}
{'fraction_non_alphanumeric': 0.12763756723210593, 'fraction_numerical': 0.04654530409598676, 'mean_word_length': 3.029166666666667, 'pattern_counts': {'":': 2, '<': 9, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1152982', 'n_tokens_mistral': 2268, 'n_tokens_neox': 1940, 'n_words': 523}