Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SPI.h>
- #include <mcp_can.h>
- int CSPin = 10; // numer pina CS
- MCP_CAN CAN(CSPin);
- /* --- Odebrane --- */
- long unsigned int Id;
- unsigned char len = 0;
- unsigned char buf[8];
- /* --- Odebrane --- */
- /* --- Wysylka --- */
- int Value = 0;
- int wys = 1;
- unsigned char stmp[2]; // dane przygotowane do wysłania
- /* --- Wysylka --- */
- /* --- Pierwsza wiadomosc --- */
- unsigned char firstMessage[2] = {4, 0};
- unsigned char receivedMessage[2];
- /* --- Pierwsza wiadomosc --- */
- /* --- Logowanie --- */
- unsigned char loginMessage[2] = {1, 0};
- unsigned char receivedLoginMessage[2];
- /* --- Logowanie --- */
- void setup()
- {
- /* --- Konfiguracja --- */
- Serial.begin(9600);
- if (CAN.begin(MCP_ANY, CAN_100KBPS, MCP_8MHZ) == CAN_OK)
- Serial.println("Inicjalizacja mcp2515 udana! Arduino 1");
- else Serial.println("Błąd w inicjalizacji mcp2515 :(");
- CAN.setMode(MCP_NORMAL);
- }
- /* --- Konfiguracja --- */
- void loop()
- {
- /* --- Odczyt z seriala --- */
- if (wys) {
- wys = 0; // oznaczenie że dane nie zostały jeszcze wysłane po prośbie o cyfrę
- Serial.println("Wpisz cyfrę od 1 do 8 aby ją wysłać!"); // wypisanie na serial prośby o cyfrę
- }
- if (Serial.available() > 0 ) { // sprawdzanie czy na serialu oczekują jakieś dane do odbioru
- char val = Serial.read(); // odczytanie danych z serialu do zmiennej val
- if (val >= '1' && val <= '8') { // sprawdzanie czy wprowadzona wartość jest cyfrą
- for (int i = 0; i < val - 48; i++) { // przygotowanie danych do wysłania, ramka będzie długości takiej jak podana cyfra, val jest charem daltego należy odjąć 48 aby zachować wartość cyfry
- stmp[i] = val - 48; // przypisanie wartości do poszczególnych miejsc w tablicy
- }
- Serial.println(val); // wypisanie na serial wpisanej cyfry
- CAN.sendMsgBuf(0x10, 0, 2, stmp); // wysłanie wiadomośći od długości podanej przez użytkownika, wypełnionej podaną cyfrą
- }
- Serial.print("XD");
- wys = 1; // oznaczenie że dane zostały już wysłane i można prosić o kolejną cyfrę
- }
- /* --- Odczyt z seriala --- */
- /* --- Pierwsza wiadomosc --- */
- if (Value == 0) {
- if (CAN_MSGAVAIL == CAN.checkReceive())
- {
- CAN.readMsgBuf(&Id, &len, receivedMessage);
- //Serial.println(receivedMessage[0]);
- if (receivedMessage[0] == 5) {
- Value = 1;
- Serial.println("Pomyslnie zainicjalizowano polaczenie");
- delay(1000);
- }
- else
- Serial.println("Blad polaczenia");
- }
- }
- /* --- Pierwsza wiadomosc --- */
- /* --- Logowanie --- */
- if (Value == 1) {
- if (CAN_MSGAVAIL == CAN.checkReceive()) {
- CAN.readMsgBuf(&Id, &len, receivedLoginMessage);
- if (receivedLoginMessage[0] == 9) {
- Serial.println("Zalogowano Pomyslnie");
- Value = 2;
- }
- else
- Serial.println("Blad logowania");
- }
- }
- /* --- Logowanie --- */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement