How to read what value to be passed to arduino library from cpp file

Hi
i am working on a project and in the .begin function it is giving error
i tried to solve it but still unable to figure out whats value it actually needs.
Can you please help !
I am attaching that portion of cpp code

void ModbusMaster::begin(uint16_t u16BaudRate)
{
//  txBuffer = (uint16_t*) calloc(ku8MaxBufferSize, sizeof(uint16_t));
  _u8TransmitBufferIndex = 0;
  u16TransmitBufferLength = 0;
  
  switch(_u8SerialPort)
  {
#if defined(UBRR1H)
    case 1:
      MBSerial = Serial1;
      break;
#endif
      
#if defined(UBRR2H)
    case 2:
      MBSerial = Serial2;
      break;
#endif
      
#if defined(UBRR3H)
    case 3:
      MBSerial = Serial3;
      break;
#endif
      
    case 0:
    default:
      MBSerial = Serial;
      break;
  }

What is the error?
Which Arduino are you using?

Post your whole code rather than part of it.

have a read of how-to-get-the-best-out-of-this-forum

Here is the full program
i am using arduino UNO
and using LIBRARY MODBUSMASTER.H

Full program

#include <ModbusMaster.h>               //Library for using ModbusMaster
#include <LiquidCrystal.h>              //Library for using LCD display
#define MAX485_DE      3
#define MAX485_RE_NEG  2
ModbusMaster node;                    //object node for class ModbusMaster
LiquidCrystal lcd(8,9,10,11,12,13);  //Object lcd for class Liquidcrystal with LCD pins (RS, E, D4, D5, D6, D7) that are connected with Arduino UNO.
void preTransmission()            //Function for setting stste of Pins DE & RE of RS-485
{
  digitalWrite(MAX485_RE_NEG, 1);             
  digitalWrite(MAX485_DE, 1);
}
void postTransmission()
{
  digitalWrite(MAX485_RE_NEG, 0);
  digitalWrite(MAX485_DE, 0);
}
void setup()
{
  lcd.begin(16,2);
  lcd.print("CIRCUIT DIGEST");
  delay(3000);
  lcd.clear();
  lcd.print("Arduino");
  lcd.setCursor(0,1);
  lcd.print("Modbus Master");
  delay(3000);
  lcd.clear();
  pinMode(MAX485_RE_NEG, OUTPUT);
  pinMode(MAX485_DE, OUTPUT);
  pinMode(4,INPUT);
  pinMode(5,INPUT);
  digitalWrite(MAX485_RE_NEG, 0);
  digitalWrite(MAX485_DE, 0);
  Serial.begin(115200);             //Baud Rate as 115200
  node.begin(115200);            //Slave ID as 1
 // node.preTransmission(preTransmission);         //Callback for configuring RS-485 Transreceiver correctly
 // node.postTransmission(postTransmission);
}

void loop()
{
  float value = analogRead(A0);
  node.writeSingleRegister(0x40000,value);        //Writes value to 0x40000 holding register
  lcd.setCursor(0,0);
  lcd.print("POT Val :");
  lcd.print(value);
  int a= digitalRead(4);                           //Reads state of push button 
  int b= digitalRead(5);
  if (a == 1)
  {
    node.writeSingleRegister(0x40001,1);               //Writes 1 to 0x40001 holding register
    lcd.setCursor(0,1);
    lcd.print("S1: 1");
  }
  else
  {
    node.writeSingleRegister(0x40001,0);              //Writes 0 to 0x40001 holding register
    lcd.setCursor(0,1);
    lcd.print("S1: 0");
  }
  if (b == 1)
  {
    node.writeSingleRegister(0x40002,1);              //Writes 1 to 0x40002 holding register
    lcd.setCursor(8,1);
    lcd.print("S2: 1");
  }
  else
  {
    node.writeSingleRegister(0x40002,0);                //Writes 0 to 0x40002 holding register
    lcd.setCursor(8,1);
    lcd.print("S2: 0");
  }
}


sure thanx

copy/paste the error message to the forum.

If you are modifing a library, explain WHY you want to modify it and what you want to achieve with your modification.

Doc Walkers ModbusMaster doesn't need a change - it works.

if you are using a different Library, please link to the source where to get that library.

Link of library : GitHub - syvic/ModbusMaster: Arduino class library for communicating with Modbus slaves over RS232/485

I AM NOT TRYING TO MODIFY LIBRARY , I WAS JUST TRYING TO FIGURE OUT WHAT VALUE IT ACTUALLY NEEDS

full error :

C:\Users\sunil\OneDrive\Documents\Arduino\libraries\ModbusMaster-master\ModbusMaster.cpp: In member function 'void ModbusMaster::begin(uint16_t)':
C:\Users\sunil\OneDrive\Documents\Arduino\libraries\ModbusMaster-master\ModbusMaster.cpp:148:18: error: use of deleted function 'HardwareSerial& HardwareSerial::operator=(const HardwareSerial&)'
       MBSerial = Serial;
                  ^~~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:233:0,
                 from C:\Users\sunil\OneDrive\Documents\Arduino\libraries\ModbusMaster-master\ModbusMaster.h:53,
                 from C:\Users\sunil\OneDrive\Documents\Arduino\libraries\ModbusMaster-master\ModbusMaster.cpp:32:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:93:7: note: 'HardwareSerial& HardwareSerial::operator=(const HardwareSerial&)' is implicitly deleted because the default definition would be ill-formed:
 class HardwareSerial : public Stream
       ^~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:93:7: error: non-static const member 'volatile uint8_t* const HardwareSerial::_ubrrh', can't use default assignment operator
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:93:7: error: non-static const member 'volatile uint8_t* const HardwareSerial::_ubrrl', can't use default assignment operator
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:93:7: error: non-static const member 'volatile uint8_t* const HardwareSerial::_ucsra', can't use default assignment operator
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:93:7: error: non-static const member 'volatile uint8_t* const HardwareSerial::_ucsrb', can't use default assignment operator
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:93:7: error: non-static const member 'volatile uint8_t* const HardwareSerial::_ucsrc', can't use default assignment operator
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:93:7: error: non-static const member 'volatile uint8_t* const HardwareSerial::_udr', can't use default assignment operator```

that library was last modified 11 years ago. I wouldn't expect to much from it.
If I were you - I would install doc walkers modbusmaster from the library manager in the IDE and start with the examples of that library.

Hey noiasca,
as suggested by you, i am using that modbus mastr bydoc walker but the problem is i am unable to define the parameters for modbus like baudrate , data bit , stopbit and parity.
and even in the library it is not predefined/
otherwise i would have done the same setting in modbus slave.
Can you please guide me

See the examples of the Doc Walker Modbus Master.

  // use Serial (port 0); initialize Modbus communication baud rate
  Serial.begin(19200);

  // communicate with Modbus slave ID 2 over Serial (port 0)
  node.begin(2, Serial);

this means, that you setup your Serial and in node.begin you just handover a reference to that Serial.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.