MarkMLl / pesdump

A dump utility for PES files as used by Brother embroidery machines
GNU General Public License v3.0
8 stars 4 forks source link

Request for some guidance how to run this tool #1

Closed maehw closed 3 weeks ago

maehw commented 3 weeks ago

Hi @MarkMLl ,

thanks for your open source contribution. I'd like to explore PES and PEC files. However, I haven't been using Pascal for a very long time (around 20 years, back in school). Back then we used to run .pas files from an old IDE - I am usually using C, C++ and Python these days.

The .lpi file seems to be some XML configuration file and peeking into the .lpr file - there's some code.

So I installed the fp-compiler on my Ubuntu machine and executed the following:

$ fpc pesdump.lpr
Free Pascal Compiler version 3.2.2+dfsg-9ubuntu1 [2022/04/11] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling pesdump.lpr
pesdump.lpr(76,2) Error: Wrong switch toggle, use ON/OFF or +/-
pesdump.lpr(373,5) Warning: Local variable "chars" of a managed type does not seem to be initialized
pesdump.lpr(803,19) Warning: function result variable of a managed type does not seem to be initialized
pesdump.lpr(844,19) Warning: function result variable of a managed type does not seem to be initialized
pesdump.lpr(885,19) Warning: function result variable of a managed type does not seem to be initialized
pesdump.lpr(926,19) Warning: function result variable of a managed type does not seem to be initialized
pesdump.lpr(2915) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode

That obviously does not work. Could you please give any guidance of how to run your code?

MarkMLl commented 3 weeks ago

Thanks for your interest, I'm here.

The .lpi file is for the Lazarus IDE... mea culpa, I should make that clear in the notes. The .lpr file should compile without modification but I've not checked it recently, please leave it with me and I'll try to take a look around dusk (UK time).

MarkMLl commented 3 weeks ago

Try it now (not sure whether you'd get any "Major Kong" references...)

I'd written it using 3.2, then reverted to 3.0 for testing and made some cosmetic changes that turned out to break compilation (and for that matter running :-) using 3.2.

I've also added some test files in a .zip archive, applying the pesdump program to the .pes file should give you lots of output.

The dumping I'm fairly happy with. I'm not entirely happy with the conversion options: the generated files crashed the Brother machine I was using for testing.

I'm here if you need help, otherwise you'll find https://forum.lazarus.freepascal.org/index.php about as vibrant a community as you'd expect for a 55-year-old language :-)

maehw commented 3 weeks ago

Hi @MarkMLl ,

thanks for your quick help - and for clarifying the IDE/compiler expectations README.md!

Is it possible that you forgot to commit patchandio.pas and midlevelio.pas or are those dependencies from a standard toolchain? I've seen those file names being added to your pesdump.lpi and it seems that my fpc also has trouble in finding those files:

$ fpc pesdump.lpr
Free Pascal Compiler version 3.2.2+dfsg-9ubuntu1 [2022/04/11] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling pesdump.lpr
pesdump.lpr(61,22) Fatal: Can't find unit PatchAndIO used by PesDump
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode

Searching the web (I used google) for those files also didn't yield any helpful results and the <IsPartOfProject Value="True"/> in your .lpi files also let's me guess(! 'cause I don't know) that they should be part of the repository.

Again, thanks for your help!

In case you're interested how I came across your tool - and you didn't notice: it was your thread (no pun intended) Brother (possibly also some Bernina) embroidery machine memory cards in the EEVblog Electronics Community Forum. I'd be stoked if you could also give an update there in case you've worked/played on this again.

MarkMLl commented 3 weeks ago

Ouch ouch ouch. Fixed.

/That's/ what comes from having my own local VCS and copying stuff across manually, rather than biting the bullet and accepting Git.

It's odd though: I know that a few other people have used this so I must have posted the full set elsewhere at some point. But this particular bit of CNC /is/ rather specialised :-)

Please keep me updated, and once I'm sure you can compile and use it I'll update the EEVBlog thread.

maehw commented 3 weeks ago

Thanks for your support! It works now!

More info: see my pull request #2

MarkMLl commented 3 weeks ago

Files now all present, compilation checked.