Coder Social home page Coder Social logo

yoelk / instrumentino Goto Github PK

View Code? Open in Web Editor NEW
137.0 31.0 59.0 61.94 MB

Instrumentino is an open-source modular graphical user interface framework for controlling Arduino based experimental instruments

License: GNU General Public License v3.0

Python 15.63% Eagle 84.37%

instrumentino's Introduction

instrumentino

Instrumentino is an open-source modular graphical user interface framework for controlling Arduino based experimental instruments

instrumentino's People

Contributors

calocedrus avatar yoelk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

instrumentino's Issues

Values for MKS Controller

Hi there, which MKS MFC controller does Instrumentino support?

Looking at MKS MFC, how do you do the voltage-pressure mapping for the "Flow Signal Output" and "Set Point Input" pins?

Compatibility with OneWire library?

Just wondering if anyone else has worked on this yet. I'm wanting to use instrumentino to control an experiment that uses DS18B20 digital thermometers, but they require the DallasTemperature and OneWire libraries to function properly.

Using a pid-controlled heater

Hello again,
I am trying to control a small heating element based on readings from a thermistor. However, Whenever I try to "set" the heater using methods or sequences, it runs for about 15-30 seconds and then stops. Likewise, setting the heating element temperature, or simply turning it off/on through digital pins by adjusting the sidebar seems to make it think for 15-30 seconds, but no real change... I am using the pid function included in the instrumentino package, and my thermistors are reading correctly, so I'm wondering if I'm just not understanding how the pid system works.
If I set the heater in a method, and then run it, how long should it go for? Until it reaches the desired temperature? Until the system is stopped? A I missing something obvious about how to use the pid system?
Cheers,
Michelle

V2 view heights are wrong at startup

For version 2

When the app starts, the view (control, automation and signal views) don't stretch all the way up or stretch more than the screen can show.

The control view acts differently than the other two

V2 Limit the maximal datablock time

Some controllers (like Arduinos) can only count using 32bit variables.
If they're counting milliseconds, they can count until ~50 days.
This means that if we want to allow longer operation times, we should reset the mutual time once in a while (every day should be more than enough)

  • This has to be checked for every supported controller. if some controllers have less than 32bit variables or if they count microseconds, another update frequency is needed.

instrumentino-1.0-py2.7.egg not in Download Package

I downloaded the zip file from GitHub and instrumentino-1.0-py2.7.egg was not located in supplementarymaterial/Instrumentino/dist. There was no dist folder. I am trying to install and get this to work on a Mac. I also have very little Python experience.

PWM issues

The example code I found was working with specific Parker products, I am trying to use PWM to control a pump.

I am wondering how to most basically set up a PWM pin location.

Thank you,

Josh

V2 actions and methods

It might be better to have a single automation panel, combining actions and sequences in the same operation list.

For example:

  • action1 (param1, param2)
  • action2 (param1)
  • method1 (repeat=2)
  • action3 (param1)

Another idea is that when the user presses "go", it will not lock the operation list. Instead, it will copy its contents and add it to the history panel, and show the development of operation there (items that haven't been done yet can be greyed out or something). If the user stops operation in the middle, the parts that got cancelled would be deleted, or maybe even stay in a grey out mode and be skipped to keep this part of the user's history), or we can add a part that says (user stopped) and inside keep the details of what wasn't run.

V2 rewrite the controlino_v2 protocol to use XML

As advised by Philipp Meier:
currently controlino_v2 is partly textual and partly binary, based on a protocol I made up myself.
It would be wise to use XML for the textual part and some sort of binary XML for the binary stuff (like data acquisition).

The advantage is that we can used standard XML libraries instead what we're currently using, and that it's closer to standardized stuff.

Arduino sketch

Hi,

You seem to be using Eclipse to build Arduino firmware required by Instrumentino but I've pasted the https://github.com/yoelk/Instrumentino/blob/master/controlino/controlino.cpp into Arduino editor and compiled succesfully. The problem is that the resulting firmware doesn't fit on an Arduino Decimalia with ATMega168. Is there a simple way to strip down the firmware to make it do the bare minimum? I see that there's a PID library which is probably not necessary for simple use cases?

Example code for simple system

Hi

It there an example for Arduino which would show how Instrumentino works out of the box? I've tried following the "Using Instrumentino" document and ended up with something like this:

from __future__ import division
from instrumentino import Instrument
from instrumentino import cfg
from instrumentino.action import SysAction

from instrumentino.controllers.arduino.parker import ParkerPressureController
from instrumentino.controllers.labsmith_eib.labsmith_comps import LabSmithValves4VM01
from instrumentino.controllers.arduino.parker import ParkerPressureController

from instrumentino.action import SysActionParamTime, SysActionParamFloat

pinAnalInParkerP = 5
pinPwmOutParkerP = 9
pressureController = ParkerPressureController('Pressure', (0,100), pinAnalInParkerP, pinPwmOutParkerP, highFreqPWM=True)

class SysActionFillContainer(SysAction):
    def __init__(self):
        self.seconds = SysActionParamTime()
        self.psi = SysActionParamFloat(pressureController.vars['P'])
        SysAction.__init__(self, 'Fill Container', (self.seconds, self.psi))


    def Command(self):
        # Connect container to pressure controller
        #valves.vars['V1'].Set(valvePortPressure)

        # Start pressure
        pressureController.vars['P'].Set(self.psi.Get())

        # Wait some time
        cfg.Sleep(self.seconds.Get())

        # Close container
        #valves.vars['V1'].Set('closed')

class System(Instrument):
    def __init__(self):
        comps = (pressureController)#, valves)
        actions = (SysActionFillContainer())
                   #SysActionEmptyContainer())
        name = 'Example System'
        description = 'A container connected to a pressure controller'
        version = '1.0'         
        Instrument.__init__(self, comps, actions, version, name, description)

if __name__ == '__main__':
    # run the program
    System()

And just after starting the script it fails with the following error:

# python instrumentino-test.py 
Traceback (most recent call last):
  File "instrumentino-test.py", line 48, in <module>
    System()
  File "instrumentino-test.py", line 44, in __init__
    Instrument.__init__(self, comps, actions, version, name, description)
  File "build/bdist.macosx-10.6-i386/egg/instrumentino/__init__.py", line 359, in __init__
  File "build/bdist.macosx-10.6-i386/egg/instrumentino/__init__.py", line 371, in StartApp
  File "build/bdist.macosx-10.6-i386/egg/instrumentino/__init__.py", line 32, in __init__
  File "/usr/local/lib/wxPython-3.0.1.1/lib/python2.7/site-packages/wx-3.0-osx_cocoa/wx/_core.py", line 8628, in __init__
    self._BootstrapApp()
  File "/usr/local/lib/wxPython-3.0.1.1/lib/python2.7/site-packages/wx-3.0-osx_cocoa/wx/_core.py", line 8196, in _BootstrapApp
    return _core_.PyApp__BootstrapApp(*args, **kwargs)
  File "build/bdist.macosx-10.6-i386/egg/instrumentino/__init__.py", line 39, in OnInit
  File "build/bdist.macosx-10.6-i386/egg/instrumentino/__init__.py", line 54, in InitFrame
  File "build/bdist.macosx-10.6-i386/egg/instrumentino/log_graph.py", line 66, in __init__
TypeError: 'ParkerPressureController' object is not iterable

I'd really like to give it a try but can't make it work probably due to some small mistake I'm making.

example runs slows down and hang on raspberry pi

Hi there,

Thanks for writing Instrumentino, really useful stuff.
After testing it successfully on my laptop, now I am trying to set it up on a raspberry pi, but this does not seem to work. I am wondering if anyone has an idea what I'm doing wrong here.

When I start the example run "Arduino pins" on the pi (after setting up everything correctly), the program slows to a crawl after connecting to the Arduino and after a minute or two the GUI stops responding completely. It does not run out of CPU or memory, it simply hangs without any error message and I have to kill the process. If I restart the program it runs again for a minute or two and hangs again.

The problem seems to be with updating the GUI window. The logfiles are still being written long after the GUI hangs so the program keeps running, it just fails to visualize anything and the GUI does not respond to clicks if it renders at all.

The pi does not allow really robust debuggers to run but I can run strace to monitor system calls. It seems ArduinoPins.py spends most of its time seeking specific lines in /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf for some odd reason over and over again. I am not sure if this is the exact problem but I am not even sure how to troubleshoot this as I get no error message, just see the window freeze. Here is the complete output of Strace if anyone's interested: https://github.com/Ravasz/instrumentino/blob/master/documents/example_run_ArduinoPins.py/logfile3

I can reproduce this on two different pi-s and two separate arduinos while it was not present on a laptop.

Any help or suggestions as to why the example run hangs on a raspberry pi would be much appreciated.

Trouble compiling controlino

Instrumentino looks like an awesome Python library, but I'm having some trouble figuring out how to compile controlino and put it on the Arduino. I am a mechanical engineer able to handle the Python parts, but I'm not familiar with Eclipse or Arduino.

I have tried importing the controlino project into Eclipse and moving files around to try to match the paths Eclipse is giving warnings about, but have had no success so far. When I try to build, I get lots of warnings like Invalid project path: Include path not found (controlino/arduino/variant) and one error make: *** No rule to make target 'clean'. I'm not familiar with Eclipse, so I'm not sure what these mean or how to fix them 😒.

Can you give me any advice on how to get past these issues in Eclipse? Alternatively, is there a list of explicit steps I can follow to build controlino and get it on the Arduino? Honestly, it would be most helpful if there was a definitive list of steps. Thank you very much for your work on this, and I am excited to work with it once I get past this issue.

Missing image

Hi

It seems that a bitmap are missing in the latest version of Instrumentino. I've checked out today and after your help I've made the window show up but it starts with the following error:

17:33:53: can't open file '/Users/user/.python-eggs/instrumentino-1.03-py2.7.egg-tmp/instrumentino/resources/stopButton.png' (error 2: No such file or directory)
17:33:53: Failed to load image from file "/Users/user/.python-eggs/instrumentino-1.03-py2.7.egg-tmp/instrumentino/resources/stopButton.png".
17:33:53: no bitmap handler for type 15 defined.

The only file at the path mentioned is main.xrc

V2 Advanced graphing abilities

There is all of the advanced graphing abilities, which isn't totally clear for me. At the very least, I want the graph to work as smooth as possible so users can zoom and browse the signals easily, and at least that they could have peak integration abilities (either manual or automatic).
In offline mode, I'd like the users to be able to open old experimental data and process it in Kivy.


Perhaps use code from OpenChrom and integrate it into instrumentino.

Arduino Examples?

Hi,
I really appreciate the updated code with the simpler example (two low pass filters). I didn't have any "container" relevant equipment, and I've been trying to figure this thing out for a little while.
You include the controlino library, but I couldn't find any actual arduino codes (.ino s). Could you add an example of that code for the two examples given, so we can get a feel for how the arduino code should look, and more easily set up the example?
I have very little background in code, and have been struggling with this off and on for a few months, actually. The little explanation file added in the past month or so was a big help, thanks for that.

arduino does not respond

Hi Yoel,

I have installed intrumentino in an anaconda virtual environment. When i type python and import it, no error is returned. I can open the GUI for the examples, such as container.py. I have also compiled and uploaded successfully controlino to my uno, having properly setup the board and the library to use.
But the arduino isn't detected. For example if I do python test_system.py, the GUI opens correctly, I then go to the Comm menu, select arduino, but no port is visible in the dialog box. If I click ok, the message in the GUI is "arduino did not respond".
Do you have any idea why this could happen?
The arduino can be seen from the arduino IDE. I also can communicate with it via other programs. When I tried it with instrumentino, I made sure no other program is using the port to which the arduino is connected.
If that may help, the message I get from the terminal is:

File "/home/ludovic/Programs/Microprocessors/arduino/instrumentino-master/instrumentino/__init__.py", line 144, in OnUpdateControls
    self.UpdateControls(event.data)
  File "/home/ludovic/Programs/Microprocessors/arduino/instrumentino-master/instrumentino/__init__.py", line 169, in UpdateControls
    comp.Enable(cfg.IsCompOnline(comp))
  File "/home/ludovic/Programs/Microprocessors/arduino/instrumentino-master/instrumentino/comp.py", line 236, in Enable
    self.panel.Enable(isEnabled)
  File "/home/ludovic/anaconda3/envs/arduino/lib/python2.7/site-packages/wx-3.0-gtk2/wx/_core.py", line 9971, in Enable
    return _core_.Window_Enable(*args, **kwargs)
TypeError: in method 'Window_Enable', expected argument 2 of type 'bool'

swig/python detected a memory leak of type 'wxPyXmlSubclassFactory *', no destructor found.

I am on a ubuntu 14.04 system.
As a side question, do you think the memory leak

memory leak of type 'wxPyXmlSubclassFactory *'

is because I'm on linux?

Ludovic

how to use instrumentino?

I downloaded the files and used python setup.py but gives me error:
file ez_setup.py
pkg_resources version conflict

which version python should be used?
I am using python 3.7
what are the other dependencies? (I will work on windows OS?)

Instrumentino/Controlino

Hi Israel Joel,
I am planning to use your GUI called instrumentino, to get some data through the USB of the PC. I am using a set-up similar to this one https://cdn.sparkfun.com/assets/1/5/9/9/9/simple-redboard_levelShift_bb.png with an arduino micro.
At the moment I use the arduino serial monitor to check sensor values, but I would like to replace it by using instrumentino.
I have no much experience in coding and GUI and I would like your help.
Therefore, I was wondering if you can help me how to configure instrumentino to read data from the USB and plot them on a chart. Do you have any example?
Thank you in advance,
Francesco.

Using with Python 3.4

Hi,

I am running python3.4.1 and I am running into issues. Some were easy to fix, but now it is wanting to use the wx module, which apparently is not available for python 3.x.

Any advice, or is it just not in the cards for me to use instrumentino?

V2 support more means of communication with controllers (other than USB)

Add the possibility to communicate with controllers using TCP/IP as well as serial (USB). This will be necessary for mobile devices running Instrumentino because they mostly don't have a USB port, or they do but it takes all the fun away if your tablet or phone have to be physically connected to the instrument, instead of using WiFi :)


Add BlueTooth support as well! This might be even more important than TCP/IP

V2 show more than one data block in the graph

The data from each connected session is saved in data blocks.

Currently the graph can only show one block, and if two blocks are in sight, it only shows the last one.
We need to add the possibility to see more than one block, and somehow separating them on the screen.
This will probably mean having a plot per each graph, and drawing a vertical line between blocks to distinguish them from each other. They can't overlap in time.

Save data and Y axis

Hi!
I am using instrumentino for a university project and it works well, but I would like to save data from arduino on a csv file.
I am trying to modify instrumentino but I am starting with python and it dosen't work, someone could help me?

On the other hand, is it possible to change the axis units of the graph? I would like use absolute values, not %.

Thanks!

V2 Visual Instrument builder

It would be nice to have a visual way for users to create instrumentino files.
For example, the user would be able to choose a controller from the currently available list, and then add to it channels and components, from the currently supported components (or make new ones).

This will greatly reduce the needed knowledge level for new users.

V2 idea for action classes

The parent Action class should let sub-classes implement two methods:

  • on_start
  • on_stop

on_start will do the usual command and on_stop will contain code to finish the action, in case the user pressed STOP during its operation. The STOP will trigger an event that the parent Action class will listen to and stop the on_start operation. This can be also communicated with an interrupt instead, which might be a better choice.

Discussion: v2 and kivy

I skimmed over the kivy book, spent some time working with splitters and the issues posted in Issue #8 , and skimmed over the kivy "garden" (https://github.com/kivy-garden), etc. to get an idea what kivy currently offers in terms of widgets. I'm wondering if a direct v1 -> v2 UI model will actually be harder (i.e. more code) in kivy than making some design changes to make it more "kivy friendly" (less code).

I'm not sure how you'd feel about this but I am curious if you'll come to the same conclusion. It's just something to think about :)

Basically: Kivy is relatively new and is "mobile/touch friendly" so maybe making changes to the v2 UI layout to make it more "single screen friendly" will result in less work to port it over.

Specifically: After seeing how using using dual splitters works to generate the "three areas on a screen" (both the default splitter behaviours and your splitter code in Issue #8 ) in order to make the 3 areas fully resizeable, I'm wondering if the 3 panel screen layout should be simplified to remove the splitters altogether (or maybe just have a dual panel screen with 1 splitter, or use 2 layouts, etc.) as they seem more suited to just split something into 2 areas and not 3. This may ultimately make building and extending the UI "easier".

Given all the above: I'm wondering how much of the current information is actually necessary to have "on screen" at all times. The only thoughts I have at the current moment are:

At minimum make each v1 panel (The Components, The Methods/Sequences, The Commands/Signals) its own independent "full screen" view, then have a common way of switching between views. The benefits of this:

  1. Make it easier to see all the data in a view (especially for the chart).
  2. Make each panel able to contain more data than having to scroll/resize.
  3. Make the user interaction easier (items can be larger and easier to manipulate/select)
  4. It may make it easier to add more views later since everything (design and code) would be based on swapping between single views. "Multi view" could then be added as another "single view" option for personalized combinations of the standard single views for those who want them or have really large screens.
  5. Widget sizes, layout, and behaviour could likely be left "the defaults" and not have to be hand coded. The only time you would have to deal with setting widget size and layout would be when trying to fit >1 view on a screen (like with splitter or just 2 side by side layouts ) as the single view would not initially be special-coded for this. However, odds are most views will comfortably fit in 1/2 a screen (they do today, even the chart) with the default kivy layout/packing so putting 2 views in a screen would probably require little or no additional hand configuring. The kivy widget layout file(s) may be greatly simplified as special widget positioning/handling could be less of a concern, and it may "read better" as each view could be it's own independent high level "section" from the others.

If this were done, I could see this occurring:

  • The "primary" view screen (the one normally active/loaded first) would be things a user would likely use to actively monitor and manually control. Things like the items in the Components view like the "Stop" button or the ability to manually set things to a value. Today this would literally be the Components panel.
  • A permanent menu (just like it is in v1, on top)
  • All other views would be selectable from each other.

The problem with this (I believe) is that there is some information on other views you want to see in the primary view or at all times. So maybe make that other view on top/bottom/side (via Splitter?). It would contain important summary data in other views like the "Method/Sequence" panel and the "Command/Signal" panel. Imagine something that just indicates what method + sequence is currently running, maybe what's going to run next, remaining run time, last 5 commands/responses from Arduino, etc. I still think everything ultimately would benefit from being "independent" single screen views, so this "summary" would be it's own single view (not part of the primary) and the combination of it and the primary would be defined and not 'special' from a layout/access/programming sense. Essentially the combination of these two single views would be "the built in example" of how to make a single view contain multiple views.

Also: I personally like the ideas of having "master controls" like the Stop button available at all times, so maybe that would go in the top menu as well so you wouldn't have to switch to the "primary" view to get to it if you happened to be messing around in another view.

Also: Making the views available/selectable could be done in the "cleanest" or "easiest" way possible as kivy permits so they could be implemented as tabs, menu items, models, etc.. Whatever is the easiest to code against. The same goes for building multi-views.

Well, I wrote a lot so I'll leave it at this for now and see if there's any interest in pursuing the v2 UI in this manner.

HardwareSerial conflicting declaration

Hi!
I am trying to compile controlino for an Arduino Due board, but I am getting the following error messages:
controlino:97: error: conflicting declaration 'HardwareSerial Serial1' extern HardwareSerial Serial1; ^ In file included from /home/jsanchez/.arduino15/packages/arduino/hardware/sam/1.6.8/cores/arduino/Arduino.h:201:0, from /home/jsanchez/instrumentino-master/controlino/controlino/controlino.ino:70: /home/jsanchez/.arduino15/packages/arduino/hardware/sam/1.6.8/variants/arduino_due_x/variant.h:247:19: error: 'Serial1' has a previous declaration as 'USARTClass Serial1' extern USARTClass Serial1; ^ controlino:98: error: conflicting declaration 'HardwareSerial Serial2' extern HardwareSerial Serial2; ^ In file included from /home/jsanchez/.arduino15/packages/arduino/hardware/sam/1.6.8/cores/arduino/Arduino.h:201:0, from /home/jsanchez/instrumentino-master/controlino/controlino/controlino.ino:70: /home/jsanchez/.arduino15/packages/arduino/hardware/sam/1.6.8/variants/arduino_due_x/variant.h:248:19: error: 'Serial2' has a previous declaration as 'USARTClass Serial2' extern USARTClass Serial2; ^ controlino:99: error: conflicting declaration 'HardwareSerial Serial3' extern HardwareSerial Serial3; ^ In file included from /home/jsanchez/.arduino15/packages/arduino/hardware/sam/1.6.8/cores/arduino/Arduino.h:201:0, from /home/jsanchez/instrumentino-master/controlino/controlino/controlino.ino:70: /home/jsanchez/.arduino15/packages/arduino/hardware/sam/1.6.8/variants/arduino_due_x/variant.h:249:19: error: 'Serial3' has a previous declaration as 'USARTClass Serial3' extern USARTClass Serial3; ^ controlino:258: error: conflicting declaration 'HardwareSerial Serial' extern HardwareSerial Serial; ^ In file included from /home/jsanchez/.arduino15/packages/arduino/hardware/sam/1.6.8/cores/arduino/Arduino.h:201:0, from /home/jsanchez/instrumentino-master/controlino/controlino/controlino.ino:70: /home/jsanchez/.arduino15/packages/arduino/hardware/sam/1.6.8/variants/arduino_due_x/variant.h:246:18: error: 'Serial' has a previous declaration as 'UARTClass Serial' extern UARTClass Serial; ^ exit status 1 conflicting declaration 'HardwareSerial Serial1'

However, for an Arduino Uno it just works fine and it compiles correctly. Googling the problem I found this github thread. In the last comment they mention that those device specific flags may be the origin of the problem, but I don't know if that is applicable to your code.

Have you ever had this issue before?

Thank you in advanced!
JosepM

setup via pip breaks

pip install instrumentino
Collecting instrumentino
Using cached https://files.pythonhosted.org/packages/d0/14/1c69530f7171f5bfdcc115461e7212a4b4ba38fde52c2a9b70385f639b1c/instru
mentino-1.0.tar.gz
Complete output from command python setup.py egg_info:
Downloading http://pypi.python.org/packages/source/d/distribute/distribute-0.6.14.tar.gz
Traceback (most recent call last):
File "c:\users\amr\anaconda3\lib\site-packages\ez_setup.py", line 143, in use_setuptools
raise ImportError
ImportError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\Amr\AppData\Local\Temp\pip-install-kqb1atgx\instrumentino\setup.py", line 3, in <module>
    ez_setup.use_setuptools()
  File "c:\users\amr\anaconda3\lib\site-packages\ez_setup.py", line 145, in use_setuptools
    return _do_download(version, download_base, to_dir, download_delay)
  File "c:\users\amr\anaconda3\lib\site-packages\ez_setup.py", line 124, in _do_download
    to_dir, download_delay)
  File "c:\users\amr\anaconda3\lib\site-packages\ez_setup.py", line 193, in download_setuptools
    src = urlopen(url)
  File "c:\users\amr\anaconda3\lib\urllib\request.py", line 223, in urlopen
    return opener.open(url, data, timeout)
  File "c:\users\amr\anaconda3\lib\urllib\request.py", line 532, in open
    response = meth(req, response)
  File "c:\users\amr\anaconda3\lib\urllib\request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "c:\users\amr\anaconda3\lib\urllib\request.py", line 570, in error
    return self._call_chain(*args)
  File "c:\users\amr\anaconda3\lib\urllib\request.py", line 504, in _call_chain
    result = func(*args)
  File "c:\users\amr\anaconda3\lib\urllib\request.py", line 650, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: SSL is required

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in C:\Users\Amr\AppData\Local\Temp\pip-install-kqb1atgx\instrumentin
o\

V2 Check memory usage

Intensive data acquisition has the potential to generate very large files.
It might be a good idea to let the user manage the memory being used by Instrumentino.

V2 Controlino for RedPitaya

Write a Controlino version for RedPitaya, which seems like a very promising controller for high performance experimental control.


V2 too many component objects are created

On each component object created in the code, there are two appearing when you look at the garbage collector (gc). This is annoying because we use the gc's list to give default screen names to objects by enumerating them, counting on how many are found. So instead of getting names in the right order (1,2,3,...) we get them with jumps of 2 (1,3,5,...)

This might have to do with component being a kv widget, because this behavior is not seen for controllers, which don't have a kv widget.

Issue detecting "stopButton.png" at startup

My environment:
OS: Ubuntu v14.x
IDE: LiClipse v1.4.0.x (Eclipse variant with PyDev and other things pre-loaded)
Python: v2.7
Instrumentino: v1.08

Details: Installing/importing the instrumentino egg from LiClipse doesn't appear to have brought with "stopButton.png" file with it.

Temporary workaround: It had to be manually copied from the instrumentino/instrumentino/resources folder to ~/.python-eggs/instrumentino-1.08-py2.7.egg-tmp/stopButton.png

Note: My guess is that this graphic is not included as a resource in the egg, I'm missing a configuration step, or using a different import method would include it? If so I don't know how to fix it properly as I'm not familiar with python egg creation and ther are too many "ifs" on my side.

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.