// https://forum.arduino.cc/t/how-to-send-a-struct-from-slave-to-master-via-i2c/585525/4
#include <Wire.h>
#define SLAVE_ADDRESS 0x60
#define I2C_BUFFER_LENGTH 256
// struct IN to Master from slave
typedef struct {
signed short int int_1;
signed short int int_2;
  signed short int int_3;
  signed short int int_4;
  signed short int int_5;
  signed short int int_6;
  signed short int int_7;
signed short int int_8;
signed short int int_9;
  signed short int int_10;
  signed short int int_11;
  signed short int int_12;
  signed short int int_13;
  }
B_t;
B_t my_struct2;
const int led = 5;
/////////////////////////////////////////////////////////////////////////////
void setup(){
  Wire.begin(); 
  Wire.setClock(25000UL); // ennek eredménye 28,6 kHz - siker
  Wire.setTimeOut(200);
  Serial.begin(115200);  Serial.println(); Serial.println("indul ..."); 
  pinMode(led, OUTPUT); digitalWrite(led, HIGH);
}
/////////////////////////////////////////////////////////////////////////////
void loop(){
  delay(3000);
  //  Write Data  
  digitalWrite(led, LOW);
 Wire.beginTransmission(0x60); /* begin with device address 8 */
 Wire.write ("hello");  // Wire.write (254); Wire.write (253);
 Wire.endTransmission();    /* stop transmitting */
 //  Read Data
Wire.requestFrom(0x60, sizeof my_struct2); 
Wire.readBytes((byte*)&my_struct2, sizeof my_struct2); Wire.read();
digitalWrite(led, HIGH);
Serial.print("Data = "); 
Serial.print(my_struct2.int_1); Serial.print("* ");
Serial.print(my_struct2.int_2); Serial.print("* ");
Serial.print(my_struct2.int_3); Serial.print("* ");
Serial.print(my_struct2.int_4); Serial.print("* ");
Serial.print(my_struct2.int_5); Serial.print("* ");
Serial.print(my_struct2.int_6); Serial.print("* ");
Serial.print(my_struct2.int_7); Serial.print("* ");
Serial.print(my_struct2.int_8); Serial.print("* ");
Serial.print(my_struct2.int_9); Serial.print("* ");
Serial.print(my_struct2.int_10); Serial.print("* ");
Serial.print(my_struct2.int_11); Serial.print("* ");
Serial.print(my_struct2.int_12); Serial.print("* ");
Serial.print(my_struct2.int_13); Serial.print("** "); 
Serial.println();
 }

 
