Sunday, April 23, 2017

30 classes for 40 measuring instruments in visual basic 6.0

The following Visual Basic project contains the source code and Visual Basic examples used for 30 classes for 40 instruments. Included is a collection of Visual Basic 6.

The source code and files included in this project are listed in the project files section, please make sure whether the listed source code meet your needs there.

DMM/Data Acquisition Units
  1. Agilent 34401X DMM                        
  2. Agilent 34970 DAQ Unit                    
  3. Keithley 486/487 Picoammeter

Power Supplies/Current Source
  1. Agilent E36XX and 66X Serial power supplies
  2. Bertan 225/226 High Voltage Power Supply
  3. Newport 3000-9000 Serial Diode Driver & Temperature Controller
  4. Coherent Tutcore HCA 200 Pulsed Laser Diode Driver

Light Source
  1. Agilent 81640x Tunable Laser
  2. Nettest Tunics Plus Tunable Laser
  3. Iolon Apollo Tunable Laser

Optical Spectrum Analyzer
  1. Agilent 8614X Optic Spectrum Analyzer
  2. Agilent 86120x Wavelength Meter
  3. Nettest Walics Optic Spectrum Analyzer

Optic Power Meter
  1. Newport 1830, 1835, 2832, 2835 Power Meters
  2. Agilent 8163x Power Meter
  3. Coherent LabMaster & FieldMaster Power Meter

  1. Keithley 7001/2 Switch Boxes
  2. JDSU SB Serial Optic Switch
  3. Agilent 86060C Optical Switch

Other Optic Test Instrument
  1. Agilent/HP 8169A Polarization Controller
  2. JDSU HA9 Optic Attenuator
  3. Agilent 8156A Optic Attenuator
  4. Luna Optic Vector Analyzer

Temperature Controller
  1. Watlow 96 Serial
  2. Omega CN9000 Serial
  3. Eurothermal BI-Synac
  4. Marlow SE5000 Serial TEC Controllers
  5. Newport TEC Controller
  6. VWR Chiller

Motion Controller
  1. Newport ESP300
  2. Newport CV1000 Optic Encoder Reader
  3. Parker Compumotor 6K Motion Controller
  4. Suruga Seiki D120 Step Motor Controller

Other Instruments
  1. Keithley 590 CV Meter
  2. SRS DS345 Function Generator
  3. SRS Lock-in Amplifier
Main source: 


Thursday, February 9, 2017

So there would be little reason now for VB6 users to move to VB.Net

There is nothing wrong with VB.Net. But it isn't for everyone. Many users of the classic VB6 programming language didn't migrate (for various reasons - lack of backwards compatibility, loss of trust in Microsoft, limited .Net functionality in it's early years, and others).
The lack of backwards compatibility meant you have to continue to support legacy apps (there was no business case for rewriting them, just to have a different language), so little reason to move to .Net.
And if you did move from VB6 what language would you choose knowing Microsoft had just abandoned you and would be likely to do so again ?
Many VB6 developers find that VB6 offers all they require for the Windows desktop, and for Web/Mobile apps look to industry standard tools such as JavaScript. VB.Net is in many ways the same, fine for Windows apps (but not offering much that VB6 doesn't) but not so good for (industry standard) Web and mobile apps.
So there would be little reason now for VB6 users to move to VB.Net just to be able to use it to write iOS and Android apps using Xamarin, or to use your WebAssembly suggestion to write Web apps.
WebAssembly itself looks interesting, and if VB6 were made so that you could build applications to run in a browser using WebAssembly this would be very acceptable. I suggest it would be easier to do this for VB6 than .Net.

Wednesday, January 18, 2017

TIOBE is for sale: pay TIOBE index and your favorite language makes it on top !

In recent years, there have been hundreds of thousands of users that uploaded videos on YouTube related to VB6, yet, TIOBE index is made as they wish.

Moreover, many of us know that in 2016 VISUAL BASIC 6 has received the technical impact award at The 19th Annual D.I.C.E. AwardsVisual Basic 6.0 community is more active than ever before and there is a continuous agitation on the Internet regarding this programming language. Also, FaceBook and Youtube is full of Visual Basic 6.0 info uploaded day by day in huge quantities.
Yet, Tiobe seems to change their methodology very often and the results of this can be dramatic.
They also change all their historical statistics when they do that which makes for some bizarre reading.
For example classic vb should have been language of the year in 2015 because apparently it shot up from nowhere to be in 10th place over the preceding year ( )
Which was odd because for years and years before that vb was always sitting comfortably in the index in the top ten places, for example :
In my humble opinion the tiobe index is a worthless piece of shi* to use as support for an argument one way or the other about any language. It would be helpful if it was gone.
Remember the article "TIOBE Index for July 2014 - Visual Basic 6.0 is 5th and C# is 6th, again !" ? The next month VB6 was thrown on place 11. In order to understand exactly the truth in this article let's look at WayBackMachine (the Internet martor) regarding TIOBE:
The moral of the story is: You have a favorite programming language ? You have enough money ?! Pay TIOBE index and your favorite language makes it on top. Anything is possible with TIOBE ! You just have to pay !

TIOBE Index for May 2014

TIOBE Index for July 2014 Visual Basic 6.0 is 5th and C# is 6th, again !

Friday, November 18, 2016

Bezier, data points approximated by a polynomial made in VB6 (B-Spline, C spline, T-Spline)

Automated translation from Italian

The coordinates of the points to be interpolated or approximated may be changed to:
1) selecting, with the mouse cursor, the point to move and dragging it to the desired position.
2) Selecting, in the table, the coordinate to edit and write the new value in the Text box. Clicking an 'other box or by pressing the' Enter to confirm the new value; the Escape key restores the previous value.
3) Import a data file, generated by an 'other application with the menu command "Curve / Read to be interpolated" File of points.

The data must be organized as:
Xi (0), Yi (0)
Xi (1), Yi (1)
...., ....
Xi (NPI-1), Yi (NPI-1)
Coordinates, calculated, of the points of the spline curve can be saved to file with the menu command "Curve / Save the curve to File"; the data format will be ':
Xc (0), Yc (0)
Xc (1), Yc (1)
...., ....
Xc (NPC-1), YC (NPC-1)

NPI and NPCs are, respectively, the number of points to be interpolated and the number of points on which the spline is calculated. The default values ​​can be changed by writing in the "Curve Parameters" boxes.
The points, calculated, the spline curve can be highlighted by ticking the 'appropriate
box at the top, to the right on the graph.
The graph can 'scale be changed by changing the values ​​in the "Graph Scale" boxes.
When you import points to be interpolated from a file, the values ​​of NPI and the "Scale the graph will be updated automatically."

The data points are approximated with a polynomial of Bernstein.

The NK value determines the number of nodes of the approximating curve:
NK = 2 -> line segments.
NK = 3 -> quadratic curves.
... ..................
NK = NPI -> Bezier splines.

C spline:
The data points are interpolated by a cubic spline.

The data points are interpolated by a spline at an exponential voltage.
VZ parameter allows you to choose the tension of the curve: larger values ​​of VZ flatten the curve.

Wednesday, November 2, 2016

Advanced Cell Flow in VB6

The main features of CellFlow are:
-Freeware open source (Download VB6 source code)
-It can do any number of dimensions: 1, 2 and 3 dimensions, but also (just for fun) 4 and higher.
-It does an animation as it calculates.
-It works as a dynamical direct numerical simulation: With compressible flow, in explicit time dependence.
-Input files generated by a spreadsheet.
-Models pressures, flows, temperatures, and chemical species.
-Also suitable for acoustic simulation, and for simulation of aero acoustics (eg whistles)

To be fair, I can think of a few drawbacks:
-Only (topologically) rectangular grids. But cells need not be equal in size.
-No implicit turbulence model is implemented. But if you use a fine enough grid, you get turbulence explicitly.

Both of these drawbacks can of course be addressed. Maybe I will work on it if I have time.

Here are some pictures I generated for a ball in a channel, in 2D, 3D, and 4D.

2D, 3D and 4D velocity plots for an n-dimensional ball in a channel.
For 2D, this gives the well known "von Karman vortex street".
The 3D and 4D pictures are of course cross sections.