====== ICnetInit() ====== ''ICnetInit()'' sets the communication port, station number and baud rate. {{:en-us_commands:reference:icnetinit.svg?900|ICnetInit command operation flow}} ''void ICnetInit(HardwareSerial& serialPort, uint8_t slaveId, long baudrate)'' ===== Commands ===== ^ Command ^ Arguments ^ Return Value ^ Operation ^ | ''ICnetInit(serialPort, slaveId, baudrate)'' | ''HardwareSerial& serialPort'' — Serial port for communication\\ ''uint8_t slaveId'' — Station number\\ ''long baudrate'' — Baud rate | ''void'' | Sets the communication port, station number and baud rate. | ===== Example ===== This example uses the MPINO-16A8R8T RS-485 port ''Serial2'', input ''D22'', and transistor output ''D39''. void setup() { ICnetMem(64, 64, 16); // Set the M·D·R memory sizes used by Cnet Slave. ICnetAdr(0, 0, 0); // Set the start addresses of M·D·R memory. ICnetInit(Serial2, 1, 9600); // Set the communication port, station number and baud rate. if (M != nullptr) M[0] = false; } void loop() { ICnet(); // Check incoming requests and process Cnet Slave responses. if (M != nullptr) M[0] = digitalRead(22) == HIGH; if (D != nullptr) digitalWrite(39, D[0] ? HIGH : LOW); } ===== Precautions ===== * Keep calling ''ICnet()'' in ''loop()''. * Set M/D/R sizes within the available SRAM. * When sharing memory with Modbus, check for duplicate allocation and address conventions. Both ''ICnetMem()'' and ''ImodbusRTUMem()'' reallocate shared ''M''/''D''. Assign final size management to only one of them and initialize both protocols after the last reallocation. * Allocation functions do not return success status. Check whether ''M'', ''D'' and ''R'' are ''nullptr'' before accessing them in user code. ===== Built-in Commands in the Same Category ===== * [[:en-us_commands:reference:icnetmem|ICnetMem() View detailed description]] * [[:en-us_commands:reference:icnetadr|ICnetAdr() View detailed description]] * [[:en-us_commands:reference:icnet|ICnet() View detailed description]] [[:en-us_commands:builtin|← Built-in Command List]]