RegulatedNoise - trade tool with zxctypo's best-in-class OCR (EliteOCRReader as-was)

Brill. I do believe I've fixed it. The correct answer being... your Windows locale doesn't use "." as the decimal separator, so it's not reading the system locations file correctly - and the fix is for me to hard-code it in the app.

Can you try this one? It "should" work - although there might be one or two more bugs like this in the app. https://drive.google.com/file/d/0B8HLRQqyuPD9b3hTMlZ4WGJEQ3c/view?usp=sharing

Now it runs :)
*nevermind below, just noticed you do*
Btw, are you also updating values from that site that exists, dunno the name but slopey's best profit calculator seems to be using it.
 
Interesting indeed. Here's a test you could run for me. Find the screenshot it was processing when it crashed, and move it out of the screenshots directory. Now start RN, start monitoring as usual, then move that screenshot back into the directory. RN should pick it up and OCR it as if it's a new screenshot. Does it crash RN every time it sees that screenshot?

You might need to try with a few screenshots to find the one causing the crash, it's not necessarily clear to the end-user which screenshot is being processed at any given time.


Thanks, so far so no error :(. I'll fly back over to the first place it happened later on and try again. I have a feeling it was happening when I stacked/queued up screenshots. Though I have a lot of feelings!
 
Btw, are you also updating values from that site that exists, dunno the name but slopey's best profit calculator seems to be using it.

If you mean the system locations, it's a static copy of starchart.club/elite.json at the moment. The idea is to add a manual-update button so people can update if they want to - I think most people will be good with a recent static copy and that'll hugely reduce server loads compared to auto-refresh-every-x-minutes or whatever...
 
If you mean the system locations, it's a static copy of starchart.club/elite.json at the moment. The idea is to add a manual-update button so people can update if they want to - I think most people will be good with a recent static copy and that'll hugely reduce server loads compared to auto-refresh-every-x-minutes or whatever...

No i meant the prices, i noticed that the other tool i mentioned grabs a whole bunch of data while you "just" seem to get the stream. So his tool has a lot of more possible stations to use for ones trading and make bigger profits. (i might be wrong though as i'm still new to this tool and it's still a work in progress)

And the program works great now, just have to edit the same ocr each time like H.E. SUITS, it get's it wrong the whole time :p And the trading part of the program could use a bit of work as it's not perfect yet, i will probably for now use your program to submit data and then use the other one for the actual trade planning. But if this keeps up as it has done this will be one great tool :D
 
No i meant the prices, i noticed that the other tool i mentioned grabs a whole bunch of data while you "just" seem to get the stream. So his tool has a lot of more possible stations to use for ones trading and make bigger profits. (i might be wrong though as i'm still new to this tool and it's still a work in progress)

And the program works great now, just have to edit the same ocr each time like H.E. SUITS, it get's it wrong the whole time :p And the trading part of the program could use a bit of work as it's not perfect yet, i will probably for now use your program to submit data and then use the other one for the actual trade planning. But if this keeps up as it has done this will be one great tool :D

The only interface I've added is to EDDN, other than that you have to collect the data yourself. It just matches my playstyle that way and I think that for properly crowdsourced data across the galaxy, websites will serve people's needs better. I'm keen to not duplicate others' work too closely, that's no use to anyone! But I would consider adding other interfaces if people really want them...

The proposed-but-uncoded auto-correct dictionary would solve the HE SUITS problem best (and a number of other problems too)...

As for the price analysis bit, I've not got a lot of ideas for how to take it much further - could add route finding but is that actually more useful than the simpler, faster "within x light years" thing I already added? Other than that, if you have ideas please pitch them, I'm no statistician :)

- - - - - Additional Content Posted / Auto Merge - - - - -

Updated to v1.3 with iAmLegion's fix and the ability to, in a really basic fashion, retheme the ui so it doesn't burn your eyes in a dark room :)
 
Firstly wanted to say great work with RegulatedNoise so far, it fits exactly what I'm looking for in an E:D trading tool (namely, I can find my own profits anywhere I go easily, rather than relying on other people's data).

The main reason I'm here though is pretty much a repeat of the OCR detection comments others have made. I'm getting "HTET SUITS", "HIEI SUITS", "AGFH MEDICINES" and a number of others. I've downloaded the source and am going to have a quick tinker with best-guessing the detected names against a known resources list to improve these relatively close matches. I'll let you know how it goes (although I'll have to install the right version of visual studio first, it seems!)
 
Firstly wanted to say great work with RegulatedNoise so far, it fits exactly what I'm looking for in an E:D trading tool (namely, I can find my own profits anywhere I go easily, rather than relying on other people's data).

The main reason I'm here though is pretty much a repeat of the OCR detection comments others have made. I'm getting "HTET SUITS", "HIEI SUITS", "AGFH MEDICINES" and a number of others. I've downloaded the source and am going to have a quick tinker with best-guessing the detected names against a known resources list to improve these relatively close matches. I'll let you know how it goes (although I'll have to install the right version of visual studio first, it seems!)

Yep, Visual Studio 2013. Go looking for the existing commodity name fixes in Form1.cs, that's where you'd implement it:

Code:
if (_correctionColumn == 0) // hacks for commodity name

Also, if you change private bool harvestStations = false; to true in Form1.cs and turn on EDDN support, it will harvest station and commodity names from EDDN straight to .txt files. Might be useful. If you come up with anything please let me know, I'd be delighted to accept changes back into the app :)
 
Hello,
Thank you for your great tool, I am trying to use it and I have a few questions please:

- Does I understand well that when I enter new prices data from station by doing printscreen and using OCR, these data will be automatically updated onliine?

- for what use is the webserver?

- when I push the button "Start Listening" in the EDDN tab, I gor an error message saying it cannot find the file MSVCP120.dll, then I press OK and the program crash.

Thank you for your efforts,
Tuffyr.
 
I don't seem to get past this
Application has encountered an error and will close.
Exception details:
Parameter is not valid.
Inner exception:
Stack:
at System.Drawing.Bitmap..ctor(String filename)
at RegulatedNoise.Ocr.ProcessNewScreenshot(String screenshot) in c:\Users\Max\Documents\Visual Studio 2013\Projects\RegulatedNoise\RegulatedNoise\Ocr.cs:line 76


Application has encountered an error and will close.
Exception details:
Object reference not set to an instance of an object.
Inner exception:
Stack:
at RegulatedNoise.Ocr.ProcessNewScreenshot(String screenshot) in c:\Users\Max\Documents\Visual Studio 2013\Projects\RegulatedNoise\RegulatedNoise\Ocr.cs:line 95

at RegulatedNoise.Ocr.ScreenshotCreated(String filePath) in c:\Users\Max\Documents\Visual Studio 2013\Projects\RegulatedNoise\RegulatedNoise\Ocr.cs:line 47
whenever trying to ocr... Yes, I've (re-)installed the runtimes. Here's my calibration.txt.
97;76;389;104;97;176;449;176;537;176;622;176;714;176;1007;176;894;176;1007;176;1091;176;97;965;
Can I do something else to circle the problem?
 
Last edited:
The only interface I've added is to EDDN, other than that you have to collect the data yourself. It just matches my playstyle that way and I think that for properly crowdsourced data across the galaxy, websites will serve people's needs better. I'm keen to not duplicate others' work too closely, that's no use to anyone! But I would consider adding other interfaces if people really want them...

The proposed-but-uncoded auto-correct dictionary would solve the HE SUITS problem best (and a number of other problems too)...

As for the price analysis bit, I've not got a lot of ideas for how to take it much further - could add route finding but is that actually more useful than the simpler, faster "within x light years" thing I already added? Other than that, if you have ideas please pitch them, I'm no statistician :)

- - - - - Additional Content Posted / Auto Merge - - - - -

Updated to v1.3 with iAmLegion's fix and the ability to, in a really basic fashion, retheme the ui so it doesn't burn your eyes in a dark room :)

An autoupdate function would be sweet as there are a lot of updates going on ;)

Also not sure if this is worth it but make one for smuggling missions only? I'm still new to the game so not certain one can get prices for that?
Maybe ad a multiple waypoint round trip? for example i have 5 systems close to each other make it calculate for example 5 trips for the systems i have, ie from the first trip i would end up in system 2, from that system which would be the best next station etc.

Also maybe ad a database it reads from so you get other peoples updates too on the prices?
Also cargo capacity would be good so it can calculate from that what would be best to buy.

Also i just noticed you (according to me at least) list the systems and docks backwards, i think it would be better to first list the system you are in and then the station. So instead of RAY DOCK [Eta Serpentis] do Eta Serpentis [RAY DOCK] but that's just my preference.

Ad a how much profit i would make on this run for each commodity.
 
Last edited:
Crashes when you take a screenshot in game. Same as for everyone else.

2015/01/01 18:43:39: ERROR: Error in Crop:2015/01/01 18:43:39: ERROR: System.ArgumentException: Parameter is not valid.
at System.Drawing.Bitmap..ctor(Int32 width, Int32 height, PixelFormat format)
at System.Drawing.Bitmap..ctor(Int32 width, Int32 height)
at RegulatedNoise.Ocr.Crop(Bitmap b, Rectangle r) in c:\Users\Max\Documents\Visual Studio 2013\Projects\RegulatedNoise\RegulatedNoise\Ocr.cs:line 4332015/01/01 18:43:39: ERROR: Parameter is not valid.2015/01/01 18:43:39: ERROR: at System.Drawing.Bitmap..ctor(Int32 width, Int32 height, PixelFormat format)
at System.Drawing.Bitmap..ctor(Int32 width, Int32 height)
at RegulatedNoise.Ocr.Crop(Bitmap b, Rectangle r) in c:\Users\Max\Documents\Visual Studio 2013\Projects\RegulatedNoise\RegulatedNoise\Ocr.cs:line 4332015/01/01 18:43:42: ERROR: Error in ScreenshotCreated:2015/01/01 18:43:42: ERROR: System.NullReferenceException: Object reference not set to an instance of an object.
at RegulatedNoise.Ocr.MakeGrayscale(Bitmap original) in c:\Users\Max\Documents\Visual Studio 2013\Projects\RegulatedNoise\RegulatedNoise\Ocr.cs:line 572
at RegulatedNoise.Ocr.PreprocessScreenshot(Bitmap b) in c:\Users\Max\Documents\Visual Studio 2013\Projects\RegulatedNoise\RegulatedNoise\Ocr.cs:line 188
at RegulatedNoise.Ocr.ProcessNewScreenshot(String screenshot) in c:\Users\Max\Documents\Visual Studio 2013\Projects\RegulatedNoise\RegulatedNoise\Ocr.cs:line 146
at RegulatedNoise.Ocr.ScreenshotCreated(String filePath) in c:\Users\Max\Documents\Visual Studio 2013\Projects\RegulatedNoise\RegulatedNoise\Ocr.cs:line 472015/01/01 18:43:42: ERROR: Object reference not set to an instance of an object.2015/01/01 18:43:42: ERROR: at RegulatedNoise.Ocr.MakeGrayscale(Bitmap original) in c:\Users\Max\Documents\Visual Studio 2013\Projects\RegulatedNoise\RegulatedNoise\Ocr.cs:line 572
at RegulatedNoise.Ocr.PreprocessScreenshot(Bitmap b) in c:\Users\Max\Documents\Visual Studio 2013\Projects\RegulatedNoise\RegulatedNoise\Ocr.cs:line 188
at RegulatedNoise.Ocr.ProcessNewScreenshot(String screenshot) in c:\Users\Max\Documents\Visual Studio 2013\Projects\RegulatedNoise\RegulatedNoise\Ocr.cs:line 146
at RegulatedNoise.Ocr.ScreenshotCreated(String filePath) in c:\Users\Max\Documents\Visual Studio 2013\Projects\RegulatedNoise\RegulatedNoise\Ocr.cs:line 47
 
Last edited:
Just noticed a bug to in the ocr, i thought this trip looked a bit to good so just checked the prices. The program says after ocr'ing the station that the buy price is 386 for Marine Equipment, but it's actually 3867.

Calibration numbers if anything is wrong.
72;62;236;92;72;246;438;246;527;246;615;246;707;246;822;246;890;246;1006;246;1091;246;72;970;

Screenshot (tried to redo the ocr but didn't fix it)
https://www.dropbox.com/s/pzofgikh5vvr1r2/Screenshot_0006.bmp?dl=0 To big again to share on the forum :p

Redid the calibration and it works better, but i also just noticed i had a 1 totally in the wrong place in the goods listing so that's an elite bug.
 
Last edited:
Using ver 1.3 Is reading screenshots now but when correcting values crashes

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
at RegulatedNoise.Form1.ContinueDisplayingResults() in c:\Users\Max\Documents\Visual Studio 2013\Projects\RegulatedNoise\RegulatedNoise\Form1.cs:line 1738
at RegulatedNoise.Form1.BeginCorrectingScreenshot(String[,] s, Bitmap[,] originalBitmaps, Single[,] originalBitmapConfidences, String screenshotName) in c:\Users\Max\Documents\Visual Studio 2013\Projects\RegulatedNoise\RegulatedNoise\Form1.cs:line 1646
at RegulatedNoise.Form1.ContinueDisplayingResults() in c:\Users\Max\Documents\Visual Studio 2013\Projects\RegulatedNoise\RegulatedNoise\Form1.cs:line 1765
at RegulatedNoise.Form1.bContinueOcr_Click(Object sender, EventArgs e) in c:\Users\Max\Documents\Visual Studio 2013\Projects\RegulatedNoise\RegulatedNoise\Form1.cs:line 1993
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
RegulatedNoise
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///D:/Documents/RegulatedNoise%20v.1.00(1)/RegulatedNoise.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.34238 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.34234 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
Microsoft.GeneratedCode
Assembly Version: 1.0.0.0
Win32 Version: 4.0.30319.34234 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Windows.Forms.DataVisualization
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.34209
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.DataVisualization/v4.0_4.0.0.0__31bf3856ad364e35/System.Windows.Forms.DataVisualization.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
Microsoft.GeneratedCode
Assembly Version: 1.0.0.0
Win32 Version: 4.0.30319.34234 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Data
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
Tesseract
Assembly Version: 2.1.1.1
Win32 Version: 2.1.1.1
CodeBase: file:///D:/Documents/RegulatedNoise%20v.1.00(1)/Tesseract.DLL
----------------------------------------
InteropRuntimeImplementer.LeptonicaApiSignaturesInstance
Assembly Version: 0.0.0.0
Win32 Version: 2.1.1.1
CodeBase: file:///D:/Documents/RegulatedNoise%20v.1.00(1)/Tesseract.dll
----------------------------------------
InteropRuntimeImplementer.TessApiSignaturesInstance
Assembly Version: 0.0.0.0
Win32 Version: 2.1.1.1
CodeBase: file:///D:/Documents/RegulatedNoise%20v.1.00(1)/Tesseract.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
 
Hm. I can see the calibration values aren't right. Can you please post one of your screenshots at imgur.com and link to it here, and I'll investigate.

Here we are. Hmmm.... wrong calibration data? Are we perhaps dealing with inconsistent coordinate modes? I'm using a 2nd tft to the left of the main one. I'll disable it, re-calibrate and see if that leads to significantly different data... once I'm awake enough.
 
Could devise such a thing but you'd have to enter the days yourself I think, I don't have a data source for stations...

sure, no problemo ;)
could be by clicking somewhere or menu selection, as you want!

oh yes another point: when you are in "Price Analysis" tab, and in "by Station" tab, when you select a station, click on a row, edit it (bad price for example), and click ok, the station selection menu select the top station. If you was working on another station, you have to select it each time.
Can it remember last selected station instead of always selecting the first in the list?
thx a lot,
Thuffyr.

Edit: same in "By Commodity" tab, switch always back to first commodity in list.
 
Last edited:
Its great every time I log on there is a new version, with new features !!! Brilliant !!!

Would an option to exclude data older than a certain date be good ?? For example only analyse data acquired within the last 2 weeks.
 
Back
Top Bottom