Author Topic: Rigol DP832 - Firmware list and bugs  (Read 309390 times)

0 Members and 9 Guests are viewing this topic.

Online skander36

  • Frequent Contributor
  • **
  • Posts: 704
  • Country: ro
Re: Rigol DP832 - Firmware list and bugs
« Reply #625 on: March 14, 2020, 11:50:06 am »
I will have time to look at this over the next week, how do I find out what port number my 34461A is running on?
Try 5025 .
But don't commit data if the script doesn't finished ok.
Just restart from switch .
 

Offline garrettm

  • Frequent Contributor
  • **
  • Posts: 266
  • Country: us
Re: Rigol DP832 - Firmware list and bugs
« Reply #626 on: March 14, 2020, 12:05:35 pm »
I noticed that you used

*rst

more than once... That resets the instrument back to the "default state." Don't use that. It's not needed. Only *cls is needed, it clears any errors present that the instrument might hang on. And to be honest, even *cls isn't needed, but its good practice to clear errors to avoid possible issues.

From what I've seen of the Putty output you should be good to go. :fetch? return only a SINGLE value each time. That's GOOD! If you placed the DMM into current measurement and then used the remote commands to change it back to voltage, which is what I assume you did, then THAT IS GOOD! You now need to figure out the same thing for the rest of the methods: i.e. local voltage and remote and local current measurement setups. In your case, just replace all local methods in the script with the remote ones.

Finally, you just need to put all that BACK into the the TelnetCal.java file and recompile it and then run the NEWLY complied script. Again, there is no reason the script won't work if you can do it manually.
 

Online skander36

  • Frequent Contributor
  • **
  • Posts: 704
  • Country: ro
Re: Rigol DP832 - Firmware list and bugs
« Reply #627 on: March 14, 2020, 12:05:58 pm »

if that works as expected, then we need to:

1) manually Telnet into the DP832 and clear the cal constants using

:calibration:start 11111,ch1
:calibration:clear ch1,all.

2) Close Putty to terminate the Telnet connection and then run the script with option 3 voltage calibration for ch1 and option 0 for both ch2 and ch3.

The :calibration:clear ch1,all command will fix any bugs that are present and allow the voltage calibration to work correctly. Then upload the output of the script. If you can manually send commands, then the script can do the same. But if they don't work, then it can't either.

Done but same problem . Stall at the same point.
 

Online skander36

  • Frequent Contributor
  • **
  • Posts: 704
  • Country: ro
Re: Rigol DP832 - Firmware list and bugs
« Reply #628 on: March 14, 2020, 12:14:36 pm »
I noticed that you used

*rst

more than once... That resets the instrument back to the "default state." Don't use that. It's not needed. Only *cls is needed, it clears any errors present that the instrument might hang on. And to be honest, even *cls isn't needed, but its good practice to clear errors to avoid possible issues.

From what I've seen of the Putty output you should be good to go. :fetch? return only a SINGLE value each time. That's GOOD! If you placed the DMM into current measurement and then used the remote commands to change it back to voltage, which is what I assume you did, then THAT IS GOOD! You now need to figure out the same thing for the rest of the methods: i.e. local voltage and remote and local current measurement setups. In your case, just replace all local methods in the script with the remote ones.

Finally, you just need to put all that BACK into the the TelnetCal.java file and recompile it and then run the NEWLY complied script. Again, there is no reason the script won't work if you can do it manually.

For the moment I'll be glad to see if the voltage works and for what reason and after that current callibration will come .
But I dont understand how is voltage reading and interpreted to see why I'm not getting output in script running ...
And I don't understand why are remote and local methods and when and why they are changed (called) ...
« Last Edit: March 14, 2020, 12:21:41 pm by skander36 »
 

Offline garrettm

  • Frequent Contributor
  • **
  • Posts: 266
  • Country: us
Re: Rigol DP832 - Firmware list and bugs
« Reply #629 on: March 14, 2020, 12:32:48 pm »
Done but same problem . Stall at the same point.

Interesting... I can't say what the issue is unless I was able to see your setup.

Quote
But I dont understand how is reading of the voltage interpreted to see why I'm not getting output in script running ...

The actual method doing the reading is below. It uses readLine(), which returns a String. All Telnet and SCPI stuff is done by Strings.

  public String read() throws InterruptedException {
    String s = null;
    try {
      s = in.readLine();
    } catch (IOException e) {
      System.out.println("An IO exception occurred");
      Thread.sleep(2000);
      System.exit(1);
    }
    return s;
  }

If you are talking about removing the + signs, I think I went over that already. Otherwise there isn't much going on here. If the script was able to print a measurement, then reading the output buffer of the DMM is working. Though something is causing the next read to fail. Either *OPC? is always returning 0, causing an infinite loop or a null string is being received, but that should throw an error.

Quote
And I don't understand why are remote and local methods and when and why they are changed ...

The remote methods are for configuring the DMM for automated measurements. The local methods are for in between automated measurements so you can see the DMM screen update normally. The change over between voltage and current is based on a guess for what the next measurement will be. This is so the DMM will be set to measure current as you move the banana plugs from the voltage terminals to the current terminals without needing to do anything.
 

Online skander36

  • Frequent Contributor
  • **
  • Posts: 704
  • Country: ro
Re: Rigol DP832 - Firmware list and bugs
« Reply #630 on: March 14, 2020, 12:58:40 pm »
Thank you for your anwers !
I understand about + signs is ok.
I ask about local/remote because  syst:loc and syst:remote commands doesn't seem to work . Instead any commands to DMM put it in remote state , but I cannot put it back to local until reset . Maybe this is the problem so I need to understand if is important to put it back to local .
My setup is simple: DMM direct to PSU . Both are connected to same switch . Laptop Wifi with script running/compilled locally. If you need more details let me know.
 

Online skander36

  • Frequent Contributor
  • **
  • Posts: 704
  • Country: ro
Re: Rigol DP832 - Firmware list and bugs
« Reply #631 on: March 14, 2020, 04:55:15 pm »
If the script was able to print a measurement, then reading the output buffer of the DMM is working. Though something is causing the next read to fail. Either *OPC? is always returning 0, causing an infinite loop or a null string is being received, but that should throw an error.
The script is not showing any measurement ! The DMM is showing first value measured after that it will display same value (I have check with another dmm in paralel and it is not getting another values on inputs)
The output of the script show just that :

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

---------------- Rigol DP800 Series SCPI Calibration ----------------

This script uses Telnet access at port 5555 to connect to the DP832/A
and port 5024 for the SDM3065X

Assuming DHCP is used, a router will assign an IP address to each
device connected to the network
For example: 172.16.0.1 (router / DHCP server), 172.16.0.2 (PC),
172.16.0.3 (PSU) and 172.16.0.4 (DMM)

Enter the IP address or hostname of the DP832/A

192.168.1.20 is online
Opening Telnet connection at port 5555...
Connection established
Querying the instrument...
RIGOL TECHNOLOGIES,DP832A,DP8C211200804,00.01.16

Enter the IP address or hostname of the SDM3065X

192.168.1.19 is online
Opening Telnet connection at port 5024...
Connection established
Querying the instrument...
Welcome to the SCPI instrument 'Siglent SDM3065X'

Please check that the identified instruments are correct before
continuing further

When ready, enter y to begin calibration or n to exit

------------------------ START OF CALIBRATON ------------------------

---------------------- SELECT CALIBRATION TYPE ----------------------

Note 1: If you're having trouble with voltage or current calibrations
performing a full voltage + current calibration will fix this

Note 2: Automated current calibration requires DMM with >= 3A range

Enter value of desired calibration type for ch1

0: skip ch1 calibration
1: voltage + manual current calibration
2: voltage + automated current calibration
3: voltage calibration (automated entry)
4: current calibration (manual entry)
5: current calibration (automated entry)

DAC-V and ADC-V calibration constants for ch1 cleared

-------------------- VOLTAGE CALIBRATION ROUTINE --------------------

Please connect DMM voltage input to ch1 output of PSU

Enter 1 to begin automated voltage calibration

ch1 DAC-V calibration
Terminate batch job (Y/N)?
----------------------------------------------------------------------------------

So it doesn't output a measured value .

It seem that set:rem and set:local  are not used anymore in SCPI . Also Agilent 34410A  has this problem .
It is so important to switch to remote to local ?
 

Offline garrettm

  • Frequent Contributor
  • **
  • Posts: 266
  • Country: us
Re: Rigol DP832 - Firmware list and bugs
« Reply #632 on: March 14, 2020, 09:24:44 pm »
Quote
The script is not showing any measurement ! [...] So it doesn't output a measured value .

Well, there you go. readDMM() isn't working... Again an infinite loop will occur if *OPC? does not return "1" after the meter has completed the requested measurement. But triggering needs to be set correctly first for that to be reliable. If the script cannot print out a measurement it means its not getting one. The only way that is possible is if readDMM() is not returning a String value.

Remember *OPC? is only used to know WHEN the DMM has completed a measurement. At 100 NPLC, measurements are very slow, nearly 1 second in duration. We cannot simply ask the instrument for something it doesn't have yet, so we wait, by querying *OPC?, until the DMM says "I'm done" which is the String value "1".

If :INIT *OPC? and :FTECh? won't play nice with the Siglent use READ?. You will have to experiment with finding out when the measurement is completed when using READ? so you know when to read the output buffer. Also triggering can be done via the bus rather than internally at the DMM. You could try using trig:sour bus instead of trig:sour imm but this requires that you send a trigger over the bus. Read the Siglent Remote Manual. It literally has everything you need to get the script working.

 The automated measurement routines are very simple:

1) configure DMM for appropriate measurement (DC voltage or current)

2) Loop (steps 0-35 for DAC-V cal):
        set cal point on DP832
        wait for DP832 output to stabilize
        trigger DMM measurement and read output buffer
        send measurement to DP832
        print out step/cal point/meas value

At the moment, we think configuring the DMM for voltage is okay and we thought that readDMM() was okay, but to really test these assumptions go to line 89 in TelnetCal.java and comment out

      calChan(1);
      calChan(2);
      calChan(3);

Then place all the commands for dmmRemVoltMeas() and readDMM() line by line just below where you commented out the calChan() methods.

for example:
   
    // configure DMM for remote measurement

    dmm.send("*cls");
    dmm.send("conf:volt:dc auto");
    dmm.send("samp:coun 1");
    dmm.send("trig:coun 1");
    dmm.send("trig:del 0");
    dmm.send("trig:sour imm");
   
    // print 5 consecutive measurements
   
    for(int i=0; i<5; i++) {
      dmm.send(":init");
      do { // wait for measurement to complete
        dmm.send("*opc?");
      } while (!dmm.read().equals("1"));
      dmm.send(":fetch?");
     System.out.println(dmm.read());
   }

Keep iterating these commands until you can get it to configure and read correctly. Then go back and edit the appropriate DMM methods. This is probably what we should have done first. But oh well.

Quote
It is so important to switch to remote to local ?

No. Local mode is only so the DMM will update automatically when the script pauses and waits for banana plugs to be shifted around on the DMM or PSU. Setting the DMM into remote mode is just part of what the Tektronix Programming Manual say to do for fast remote measurements.

Quote
It seem that set:rem and set:local  are not used anymore in SCPI . Also Agilent 34410A  has this problem .

Then comment out any commands requesting for local or remote operation and change all the local measurement methods to remote methods. I've already asked you to do this. Again, this isn't hard. If your DMM operates differently than the DMM4050, then adapt the script to how your DMM works.


P.S.

I noticed that you copied the contents of TelnetCal.java into a MSFT Word doc... Use Notepad++ to read and edit the .java files directly. Don't use Word. That's just asking for trouble.
« Last Edit: March 14, 2020, 11:23:46 pm by garrettm »
 
The following users thanked this post: skander36

Online skander36

  • Frequent Contributor
  • **
  • Posts: 704
  • Country: ro
Re: Rigol DP832 - Firmware list and bugs
« Reply #633 on: March 14, 2020, 11:49:45 pm »

P.S.

I noticed that you copied the contents of TelnetCal.java into a MSFT Word doc... Use Notepad++ to read and edit the .java files directly. Don't use Word. That's just asking for trouble.
;) it is from forum settings . When you have to upload a document you cannot put jar files , so I have to choose something quick . I should have to explain what to do with it or put it into a zip format .  If you open it you will see that is plain text, it was just renamed for a quick upload. I have used Visual Studio Code for editing along with Notepad++ .
Anyway I have managed to calibrate the PSU using LaurentR's Matlab script from here: https://www.eevblog.com/forum/testgear/rigol-dp832-firmware-updates-and-bug-list/msg587350/#msg587350.
Need some fork but finally it do the job.
Your script has potential because it is not depending on aditional software (MathLab, Python, etc.).
Thank you for your help !
« Last Edit: March 15, 2020, 12:01:43 am by skander36 »
 

Online skander36

  • Frequent Contributor
  • **
  • Posts: 704
  • Country: ro
Re: Rigol DP832 - Firmware list and bugs
« Reply #634 on: March 15, 2020, 12:58:07 pm »
For those who need to calibrate their Rigol DP832/832A with a Siglent 3065X Multimeter using USB connection.
It is possible to use  script attached,  adapted from LaurentR's Matlab script described here: https://www.eevblog.com/forum/testgear/rigol-dp832-firmware-updates-and-bug-list/msg587350/#msg587350.
It is adapted to MatLab R2019b that can be downloaded from www.mathworks.com . Make sure that package you will download contain "Instrument Control Toolbox" module (it must be included in Basic as I remember well.

Observations :
1.Script has at line 88 a parameter : simOnly = true . This prevent saving calibration data to PSU to allow testing/debugging . To save data to PSU and do a real calibration you must set simOnly = False .
2.At line 89 and 91 you must replace the VISA address with your VISA devices address .
3.At the end of calibration procedure, in console you will see an error about Catch MExc. Just ignore it, is not part of calibration flow. When this arise, calibration is already done. Maybe one that know how to threat this, can remove the error . I don't know how ...

Credits go to LaurentR for his work !
 

Offline Gandalf_Sr

  • Super Contributor
  • ***
  • Posts: 1729
  • Country: us
Re: Rigol DP832 - Firmware list and bugs
« Reply #635 on: March 15, 2020, 03:09:35 pm »
I attempted a Cal of my DP832(A) today with my Keysight 34461A, it failed and I Ctrl + C'd out.  The output is attached in .txt file.

I tested that I could run telnet commands to the 34461A on port 5024 and I was getting response to *IDN? but the readings don't seem to be working.  When my Cal run started, the screen of the 34461A went blank and it beeped, it that normal?  Any idea what's wrong?
If at first you don't succeed, get a bigger hammer
 

Offline Gandalf_Sr

  • Super Contributor
  • ***
  • Posts: 1729
  • Country: us
Re: Rigol DP832 - Firmware list and bugs
« Reply #636 on: March 15, 2020, 03:27:09 pm »
I'm going through the dmm.send commands around line 350 and trying them out in Telnet, they clearly don't all work. So far, syst:rem and
volt:dc:filt:dig on
generate errors on the 34461A

As expected, the Cal for Ch1 is hosed.
If at first you don't succeed, get a bigger hammer
 

Offline Gandalf_Sr

  • Super Contributor
  • ***
  • Posts: 1729
  • Country: us
Re: Rigol DP832 - Firmware list and bugs
« Reply #637 on: March 15, 2020, 04:11:21 pm »
So I went through all the scpi commands and modified a few (code attached, zipped) but the results are the same :(

When the code runs, the powershell display is as follows...

Please connect DMM voltage input to ch1 output of PSU

Enter 1 to begin automated voltage calibration
1

ch1 DAC-V calibration
step 0, cal point: 0.2v, meas val: 34461A> 1
step 1, cal point: 0.5v, meas val: 34461A> *opc?
step 2, cal point: 1.2v, meas val: 34461A> *opc?
step 3, cal point: 2v, meas val: 34461A> *opc?
step 4, cal point: 3.2v, meas val: 34461A> *opc?
step 5, cal point: 4.1v, meas val: 34461A> :fetch?

Then I Ctrl + C'd out

The DP832 seems to be setting the voltages but comes up with an 'Incorrect Command' Error

I am only editing the TelnetCal.java file, compiling both .java files, and then copying them to the compiled directory.

My instruments are wired but my PC is running wireless.

Any ideas what's wrong?
If at first you don't succeed, get a bigger hammer
 

Offline Gandalf_Sr

  • Super Contributor
  • ***
  • Posts: 1729
  • Country: us
Re: Rigol DP832 - Firmware list and bugs
« Reply #638 on: March 15, 2020, 04:39:46 pm »
 :wtf: Now I'm trying to do a manual Cal and first trying to go through V DAC calibration and all the fucking values on my meter are -0.231XXX volts!  I tried it several times.

 |O

I can get out to the normal screen and enter values like 2V or 20V and something rouglhy similar appears but it's way off.

So now I'm stuck with it being way off and no way to calibrate it at all.
« Last Edit: March 15, 2020, 04:47:30 pm by Gandalf_Sr »
If at first you don't succeed, get a bigger hammer
 

Online skander36

  • Frequent Contributor
  • **
  • Posts: 704
  • Country: ro
Re: Rigol DP832 - Firmware list and bugs
« Reply #639 on: March 15, 2020, 04:59:15 pm »
Yeap !
This I was getting my self , because script erase all cal data at beginning . - psu.send(":calibration:clear "+ch+",all"); // clear all cal constants
The source still can be calibrated manually - its awfull ... you need to insert by hand SCPI comands and values .

« Last Edit: March 15, 2020, 05:07:03 pm by skander36 »
 

Online skander36

  • Frequent Contributor
  • **
  • Posts: 704
  • Country: ro
Re: Rigol DP832 - Firmware list and bugs
« Reply #640 on: March 15, 2020, 05:13:02 pm »
This is the procedure than can be used for manual calibration in case of emergency (attached) .
Try to find the right commands that work for your multimeter or give it a try to LaurentR Mathlab script . At least this will not bork the remaining cal data becuse it has a simulation mode.
 

Offline JDubU

  • Frequent Contributor
  • **
  • Posts: 438
  • Country: us
Re: Rigol DP832 - Firmware list and bugs
« Reply #641 on: March 15, 2020, 05:30:04 pm »
The attached Python script is known to work.   It's the same one that has been floating around EEVBlog but has been slightly modified for use with a Keysight 34461A DMM.
Requires Python 3.x with the python-ivi library (https://github.com/phsdv/python-ivi). 
Change the IP addresses at the beginning of calibrate.py to match your DP832 and 34461A.

Also choose which DP832 channel(s) to calibrate for a given run by un-commenting the appropriate line just after the IP address lines:

calibrate_channels = range(1, 4)    # All Channels
#calibrate_channels = range(1, 2)    # Channel 1 only
#calibrate_channels = range(2, 3)    # Channel 2 only
#calibrate_channels = range(3, 4)    # Channel 3 only

I recommend doing one channel at a time.
« Last Edit: March 15, 2020, 05:32:38 pm by JDubU »
 

Offline Gandalf_Sr

  • Super Contributor
  • ***
  • Posts: 1729
  • Country: us
Re: Rigol DP832 - Firmware list and bugs
« Reply #642 on: March 15, 2020, 05:36:48 pm »
Thanks skander,

I was hoping to calibrate my DP832 in 30 minutes, now I'm off down a rabbit hole of learning Java and PowerShell scripting; not how I was planning to spend my Sunday. Plus I have a messed-up DP832

It's clear that the Java has something weird going on with how it handles the responses from my 34461A as I can issue all the commands from a PowerShell Telnet window but the responses I see when running Java have commands that I thought were sent out as the apparent response - the one command that I've commented out (because it didn't work) is the dmm.send("syst:rem"); although the dmm.send("syst:locl"); actually does work - really stupidly confusing. 

Now I'm looking at writing a PowerShell script that would issue the commands but I'll have to write it all for the DP832 too :(

I don't own or have any knowledge of Mathlab, can I run a free version?
If at first you don't succeed, get a bigger hammer
 

Offline Gandalf_Sr

  • Super Contributor
  • ***
  • Posts: 1729
  • Country: us
Re: Rigol DP832 - Firmware list and bugs
« Reply #643 on: March 15, 2020, 05:40:16 pm »
The attached Python script is known to work.   It's the same one that has been floating around EEVBlog but has been slightly modified for use with a Keysight 34461A DMM.
Requires Python 3.x with the python-ivi library (https://github.com/phsdv/python-ivi). 
Change the IP addresses at the beginning of calibrate.py to match your DP832 and 34461A.

Also choose which DP832 channel(s) to calibrate for a given run by un-commenting the appropriate line just after the IP address lines:

calibrate_channels = range(1, 4)    # All Channels
#calibrate_channels = range(1, 2)    # Channel 1 only
#calibrate_channels = range(2, 3)    # Channel 2 only
#calibrate_channels = range(3, 4)    # Channel 3 only

I recommend doing one channel at a time.
Thanks, so I'm running Windows 10 64 bit - does Python run in some sort of IDE? Can you please give me a few steps to follow?  I'm code-literate but unfamiliar with Python
If at first you don't succeed, get a bigger hammer
 

Offline JDubU

  • Frequent Contributor
  • **
  • Posts: 438
  • Country: us
Re: Rigol DP832 - Firmware list and bugs
« Reply #644 on: March 15, 2020, 06:04:36 pm »
When you install Python on Windows 10, it has a very minimal IDE called Idle.  It is just combined text editor and Python command line interpreter (like old fashioned interactive Basic).
A more complete and popular Python IDE is PyCharm (https://www.jetbrains.com/pycharm/download/#section=windows).  You would only need the free, community edition for this.  The advantage of PyCharm is that you can more directly install add in libraries (like python-ivi) by just selecting them from a list in the IDE instead of having to go through GitHub via the Windows 10 cmd console.
 

Offline Gandalf_Sr

  • Super Contributor
  • ***
  • Posts: 1729
  • Country: us
Re: Rigol DP832 - Firmware list and bugs
« Reply #645 on: March 15, 2020, 06:06:16 pm »
JDubU,

So I downloaded Python 3.8.2 From Microsoft and now I have a window that looks like the one below.  It's not clear from the Github IVI driver link in your post what I'm supposed to download from that site or where I'm supposed to put it, likewise for the zip file at the end of your post, where is it supposed to go?  I can't even find a Python folder under Program Files or Program Files (x86) so I'm groping around in the dark here.

Any suggestions would be welcome.

Thanks in advance :D
If at first you don't succeed, get a bigger hammer
 

Offline Gandalf_Sr

  • Super Contributor
  • ***
  • Posts: 1729
  • Country: us
Re: Rigol DP832 - Firmware list and bugs
« Reply #646 on: March 15, 2020, 06:07:14 pm »
When you install Python on Windows 10, it has a very minimal IDE called Idle.  It is just combined text editor and Python command line interpreter (like old fashioned interactive Basic).
A more complete and popular Python IDE is PyCharm (https://www.jetbrains.com/pycharm/download/#section=windows).  You would only need the free, community edition for this.  The advantage of PyCharm is that you can more directly install add in libraries (like python-ivi) by just selecting them from a list in the IDE instead of having to go through GitHub via the Windows 10 cmd console.
LOL, we cross posted. I'll uninstall the MS one and take the one you suggested.
If at first you don't succeed, get a bigger hammer
 

Offline Gandalf_Sr

  • Super Contributor
  • ***
  • Posts: 1729
  • Country: us
Re: Rigol DP832 - Firmware list and bugs
« Reply #647 on: March 15, 2020, 06:14:25 pm »
So I installed PyCharm but when I look in the list under plugins, there's no 'Python-ivi' or 'ivi' search results?

Also, what do I do with the directory set of files attached to your post above? Where do I put them?

Thanks.
« Last Edit: March 15, 2020, 06:21:23 pm by Gandalf_Sr »
If at first you don't succeed, get a bigger hammer
 

Offline JDubU

  • Frequent Contributor
  • **
  • Posts: 438
  • Country: us
Re: Rigol DP832 - Firmware list and bugs
« Reply #648 on: March 15, 2020, 06:35:15 pm »
You're right, it's not obvious!

With calibrate.py opened in PyCharm, click on menu item: File > Settings...
Select Project: calibrate.py  on the left hand side of the Settings window and then select Project Interpreter.
In the drop down list at the top either select your version of Python or add it using the "gear" button on the right.
Now you will see a list of all of the library packages that are already installed in that particular version of Python.  Click the '+' button on the top right to see a list of all other available packages.  Select to install python-ivi and python-vxi11.  You may need to add others if they are needed as dependents of installed packages.  You will find out when you try to run the program and it crashes saying it cannot find something.
 

Offline JDubU

  • Frequent Contributor
  • **
  • Posts: 438
  • Country: us
Re: Rigol DP832 - Firmware list and bugs
« Reply #649 on: March 15, 2020, 06:51:50 pm »
Also, what do I do with the directory set of files attached to your post above? Where do I put them?

The directory can be anywhere in your computer's file system.  The files are just documents that are treated as Python source code (*.py).
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf