Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Mock Wire.h #60

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ianfixes opened this issue Sep 8, 2018 · 2 comments
Closed

Mock Wire.h #60

ianfixes opened this issue Sep 8, 2018 · 2 comments
Labels
arduino mocks Compilation mocks for the Arduino library enhancement New feature or request

Comments

@ianfixes
Copy link
Collaborator

ianfixes commented Sep 8, 2018

Feature Request

Mock this library:
https://www.arduino.cc/en/reference/wire

Compilation mocks now exist due to #72

It appears this will need to be implemented as an array of HardwareSerial objects within GODMODE.

@ianfixes ianfixes added enhancement New feature or request arduino mocks Compilation mocks for the Arduino library labels Sep 8, 2018
@ianfixes
Copy link
Collaborator Author

It looks like the maximum depth of this mock will be to support the example shown here: https://www.arduino.cc/en/Tutorial/SamdSercom

Note the following (apparently internal) features that will need to be mocked somehow.

  • pinPeripheral() function, whose use below may or may not contain a typo
  • TwoWire(something, something, something) constructor
  • &sercom3 variable of some sort
  • SERCOM3_Handler -- not sure if this is some magic name
#include <Wire.h>
#include "wiring_private.h"

TwoWire myWire(&sercom3, 0, 1);   // Create the new wire instance assigning it to pin 0 and 1

void setup()
{
  myWire.begin(2);                // join i2c bus with address #2

  //  use the internal function that reassigns the pins
  pinPeripheral(0, PIO_SERCOM);   //Assign SDA function to pin 0
  pinPeripheral(1, PIO_SERCOM);   //Assign SCL function to pin 1

  myWire.onRequest(requestEvent); // register event
}

void loop()
{
  delay(100);
}

// function that executes whenever data is requested by master
// this function is registered as an event, see setup()
void requestEvent()
{
  myWire.write("hello "); // respond with message of 6 bytes
                          // as expected by master
}

// Attach the interrupt handler to the SERCOM
extern "C" {
  void SERCOM3_Handler(void);

  void SERCOM3_Handler(void) {
    myWire.onService();
  }
}

jalr added a commit to jalr/EE895 that referenced this issue Nov 16, 2020
Currently there is no I2C support in mocked Wire.h
see Arduino-CI/arduino_ci#60
jalr added a commit to jalr/EE895 that referenced this issue Nov 17, 2020
Currently there is no I2C support in mocked Wire.h
see Arduino-CI/arduino_ci#60
@ianfixes ianfixes added this to the Arduino library completeness milestone Dec 24, 2020
@ianfixes
Copy link
Collaborator Author

Given that this mock exists, I'm closing this issue
https://github.com/Arduino-CI/arduino_ci/blob/master/cpp/arduino/Wire.h

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arduino mocks Compilation mocks for the Arduino library enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant