Errors installing node-grovepi using npm on Windows machine

nodejs
grovepi

#1

I am trying to install node-grovepi library using npm under windows10. The install keeps failing with a wall of red i.e. following errors . The errors seem to be related to I2C, I have tried installing I2C dependency manually using npm install i2c-bus. This did not fix my issue.
Please can any one help me , What is causing these errors and how can i fix these issues ?

…\node-gyp\bin\node-gyp.js" rebuild )
Warning: unrecognized setting VCCLCompilerTool/CompileAsWinRT while converting to MSBuild.
Warning: unrecognized setting VCCLCompilerTool/CompileAsWinRT while converting to MSBuild.
Building the projects in this solution one at a time. To enable parallel build, please add the “/m” switch.
readPartial.cc
writePartial.cc
writeReadPartial.cc
i2c.cc**
I see a wall of red with errors as shown in the screen shot…


#2

This seems to be a problem only on windows 10, since I follow test driven development and test all my code on widnows before transfering on Pi, i used npm install on raspberry pi and the dependency installed without any problems.


#3

Hello @rameez.saleem
I’m trying to get this straight. You were trying to install onto a regular Windows computer? Or on Windows IoT on the Pi?

The installations are hardware specific, unfortunately, as you discovered.

Cleo


#4

Hi @cleoqc

I was trying to install on a normal linux and windows mahchines, as sensor readings are only a small part of a much larger project. Until now i have been first testing all software components on windows and linux machines as it is much faster and efficient that way.

rameez


#5

Hi @rameez.saleem,

Unfortunately, that’s not possible and it doesn’t make sense in the first place to want to install this across multiple architectures. By default, our python package is built against an ARM architecture.

Reading sensors may be a small part of the project and I understand you want to access the data from other places, but may I suggest publishing the sensors’ values to some broker that then relays the data to other workers/consumers?

Or instead of using a message broker, you can implement a library of your own that uses RPCs (remote procedure calls) to access/interface with a remote resource. For this thing to work you would need to develop server and client libraries for it.

Hope this offers you a clearer understanding of what you need in your project.

Cheers!


#6

yes thank you I have worked around this problem, I was only surprised since never had this issue on NodeJS before.


#7

Hi @rameez.saleem,

That’s probably because most packages you have worked with were not made for embedded systems. And most embedded systems if not all are made to work with Linux-based systems.

Take for instance sockjs or express packages - these don’t care whether they sit on a linux machine or not - these can be installed on anything because they are not bound by any physical device (such as the GrovePi).

Thank you!