Welcome, Guest. Please login or register.
November 22, 2024, 01:48:20 PM

Login with username, password and session length
* Home Help Arcade Login Register
.
+  Forum
|-+  Homebrew Player Tracking and EFT Systems.
| |-+  NLG Homebrew Player Tracking and EFT Systems.
| | |-+  Debug SAS DLL for testing
0 Members and 2 Guests are viewing this topic. « previous next »
Pages: 1 2 3 4 [5] Go Down Print
Author Topic: Debug SAS DLL for testing  (Read 66753 times)
AndyP
NLG Member 101 to 500 Post
***

Total Karma Storms: 127
Offline Offline

Posts: 212



« Reply #100 on: October 30, 2011, 08:42:22 PM »

Not gone, just dont have a SAS machine anymore and I am pretty busy at the moment.
Logged
jdkmunch
Senior Full time Member.
Sr.Tech NLG Member 1000+ Post
*

Total Karma Storms: 624
Offline Offline

Gender: Male
Posts: 2640



« Reply #101 on: October 30, 2011, 08:43:37 PM »

Hey !   It's great hear from you ! 
Logged
FORDSBS
Contributing NLG Member
Sr.Tech NLG Member 1000+ Post
*

Total Karma Storms: 363
Offline Offline

Gender: Male
Posts: 4162


PET


« Reply #102 on: October 30, 2011, 10:06:00 PM »

Not gone, just dont have a SAS machine anymore and I am pretty busy at the moment.

Andy, thanks for all the help you gave us.
Ford
Logged
AndyP
NLG Member 101 to 500 Post
***

Total Karma Storms: 127
Offline Offline

Posts: 212



« Reply #103 on: October 30, 2011, 10:14:55 PM »

No worries. We are working on getting 3 casino's onto a new monitoring/jackpot system at the moment so everything I was working on has to be shelved for now. I have personally got about 4 projects running at the moment and one of our staff leave in 6 weeks leaving me with another half dozen projects until I can find a train someone else!
Logged
TZtech
Contributing Gold NLG Member
Sr.Tech NLG Member 1000+ Post
*

Total Karma Storms: 129
Offline Offline

Gender: Male
Posts: 1113



« Reply #104 on: October 30, 2011, 10:55:11 PM »

Hello Andy

Nice to hear from You again. Is there nothing available that emulates SAS comms coming from machine side? I have seen mention of a SAS toolkit. Unfortunately only available to GSA members. Any idea what this is?

Ian
Logged
AndyP
NLG Member 101 to 500 Post
***

Total Karma Storms: 127
Offline Offline

Posts: 212



« Reply #105 on: October 30, 2011, 11:01:27 PM »

Hello Andy

Nice to hear from You again. Is there nothing available that emulates SAS comms coming from machine side? I have seen mention of a SAS toolkit. Unfortunately only available to GSA members. Any idea what this is?

Ian

Only emulation from the server side. No game simulators. I got the toolkit, but its pretty much useless. I think its posted up here somewhere from memory, search for SASTest.
Logged
AndyP
NLG Member 101 to 500 Post
***

Total Karma Storms: 127
Offline Offline

Posts: 212



« Reply #106 on: November 23, 2011, 11:30:30 PM »

Andy,

The Windows serial driver can be send an IOCTL that places a copy of the uart line status register when a parity error occurs. This allows you to place the serial port into SPACE parity mode and you will receive the LSR byte with every data byte and can check if a parity error occured and hence data with the wakeup bit set.

The IOCTL is: IOCTL_SERIAL_LSRMST_INSERT

Check MSDN docs for the details.

HTH

pshoey


Trying to get this working now, without much success Sad
Logged
Foster
The S2000 GURU
Contributing NLG Member
Sr.Tech NLG Member 1000+ Post
*

Total Karma Storms: 345
Offline Offline

Gender: Male
Posts: 2872



« Reply #107 on: November 24, 2011, 03:59:14 AM »

Where are the C# programmers?
I need your help.
Logged

A Slot Machine and Coca-Cola Addict!!
"If it is not broke do not fix it" I keep forgetting that!
Foster
The S2000 GURU
Contributing NLG Member
Sr.Tech NLG Member 1000+ Post
*

Total Karma Storms: 345
Offline Offline

Gender: Male
Posts: 2872



« Reply #108 on: November 27, 2011, 06:42:45 PM »

I have figured out something
I do not know who is the blame, Microsoft, motherboard or device makers.
I can not get Andys DLL or my own code to work with motherboard serial ports, but both work with USB to Serial adapters
Why is that?
Logged

A Slot Machine and Coca-Cola Addict!!
"If it is not broke do not fix it" I keep forgetting that!
clone
Guest
« Reply #109 on: January 09, 2012, 05:15:21 AM »

Hey all, sorry for waking up an old thread, but I'm just entering the world of SAS.

I've read a lot of this forum, and will probably read all the rest, but this test thingie got my attention. I also get "Unable to load DLL 'SASEGM.dll': The specified module could not be found." error when trying to run the program, and when I load the solution in VS 2008 and try to add reference to SASEGM.dll I get: "A reference to 'C:\Program Files\AP\SASEGMTest\SASEGM.dll' could not be added. Please make sure that the file is accessible, and that it is a valid assembly or COM component."

Any idea why the dll doesn't work?
Logged
Foster
The S2000 GURU
Contributing NLG Member
Sr.Tech NLG Member 1000+ Post
*

Total Karma Storms: 345
Offline Offline

Gender: Male
Posts: 2872



« Reply #110 on: January 09, 2012, 10:26:05 AM »

You have to look at his code and see how he references it.

I would match how he has it referenced.
You might have to translate it to the language you are developing your program in. (C#, C++, VB)

Try his TestApp with your system and machine
You cant do much with his test app but if it does the basics he has coded then you know his DLL will work with your Com/Serial Ports

Also you must understand how to configure SAS on your Machine and how to connect to your computer..

I can tell you that the State of Montana has a SAS document on their web site
I am using it to help me code my own program


Logged

A Slot Machine and Coca-Cola Addict!!
"If it is not broke do not fix it" I keep forgetting that!
AndyP
NLG Member 101 to 500 Post
***

Total Karma Storms: 127
Offline Offline

Posts: 212



« Reply #111 on: February 07, 2012, 08:46:36 PM »

Back onto it now.

You lads are going to hate me, cause I have to do this commercially, so I need to use the IOCTL_SERIAL_LSRMST_INSERT command that was suggested to me elsewhere, this means it will only work with hardware serial ports from what I am aware.

Stay tuned.
Logged
AndyP
NLG Member 101 to 500 Post
***

Total Karma Storms: 127
Offline Offline

Posts: 212



« Reply #112 on: February 07, 2012, 11:11:09 PM »

Did a quick change to the serial port driver using IOCTL_SERIAL_LSRMST_INSERT to detect the parity errors, sooooo much more reliable now!!! Only tested it against a SAS Simulator, so now I will go and find a real SAS machine to do some tests.

Logged
Foster
The S2000 GURU
Contributing NLG Member
Sr.Tech NLG Member 1000+ Post
*

Total Karma Storms: 345
Offline Offline

Gender: Male
Posts: 2872



« Reply #113 on: February 07, 2012, 11:17:46 PM »

Andy look up DCB (Device Control Block, if you change one bit fParity = false that will tell the UART or drivers to ignore any parity errors.
I just have not figured out how do so in Managed C#, I know it involves using the Win API calls instead of the .Net serial port class.
Logged

A Slot Machine and Coca-Cola Addict!!
"If it is not broke do not fix it" I keep forgetting that!
AndyP
NLG Member 101 to 500 Post
***

Total Karma Storms: 127
Offline Offline

Posts: 212



« Reply #114 on: February 07, 2012, 11:44:04 PM »

Andy look up DCB (Device Control Block, if you change one bit fParity = false that will tell the UART or drivers to ignore any parity errors.
I just have not figured out how do so in Managed C#, I know it involves using the Win API calls instead of the .Net serial port class.

I need to know when there is a parity error. The parity bit is used in place of a wakeup bit, and the wakeup bit is set with the machine poll address to denote a 'chirp' from the VGM. I need to detect the chirp to differentiate between a chirp and an exception code.

Logged
Foster
The S2000 GURU
Contributing NLG Member
Sr.Tech NLG Member 1000+ Post
*

Total Karma Storms: 345
Offline Offline

Gender: Male
Posts: 2872



« Reply #115 on: February 08, 2012, 12:08:16 AM »

The EGM's only assert wake up bit when they do not see polling from the host after 5 seconds.

There can only be a few reasons for this
Problem in the physical hardware of the host or EGM, cable cut or disconnected.
Host power failure, Something on the host crashes.
The Host software not polling often enough.  That is not likely to happen with the computer hardware available today.

if you can tell me how to disable parity checking in C# please do.


 

Logged

A Slot Machine and Coca-Cola Addict!!
"If it is not broke do not fix it" I keep forgetting that!
AndyP
NLG Member 101 to 500 Post
***

Total Karma Storms: 127
Offline Offline

Posts: 212



« Reply #116 on: February 08, 2012, 01:00:45 AM »

The EGM's only assert wake up bit when they do not see polling from the host after 5 seconds.

There can only be a few reasons for this
Problem in the physical hardware of the host or EGM, cable cut or disconnected.
Host power failure, Something on the host crashes.
The Host software not polling often enough.  That is not likely to happen with the computer hardware available today.

if you can tell me how to disable parity checking in C# please do.



Remember, I am doing this for commercial reasons, so I need my code to be very reliable, and I have to cater for all circumstances, including what you describe. I could get a chirp and decode it as a door open for example, and report it to the survellance team who then send security to investigate. Has to be rock solid.

Not sure how to disable parity checks in .net, but maybe you can try set parityreplace with a null?? http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.parityreplace.aspx

 If not, the only way would be to write a wrapper around the native API, which would require a fair amount of work. Given the early version of the .net framework had no serial port class, I would be surprised if some code did not already exist that wraps up the win api. There should be some examples of how to interface to the native API here http://zachsaw.blogspot.com.au/2010/07/net-serialport-woes.html which contains some code to work around a known bug in the .net serial port class.
Logged
zarobhr
Contributing Gold NLG Member
Sr.NLG Member 501 to 1000 Post
*

Total Karma Storms: 178
Offline Offline

Gender: Male
Posts: 622



« Reply #117 on: February 08, 2012, 11:01:01 AM »

i wrote my own serial interface, i can detect the parity error on my general polls i just dont do anything with it yet since i am not polling multiple machines on a single port (YET), just multiple machines on different ports.

i do not use vb.net serial port class as it was too much issue and didnt want to report parity error without do a replace on it. and i could control timing on it to well

i do calls to winapi32 using writefile and readfile




Logged
all3bar
New NLG Member 1 to 100 Post
**

Total Karma Storms: 0
Offline Offline

Posts: 2



« Reply #118 on: August 09, 2012, 12:04:34 AM »


        No_activity = 0x00,
        Slot_door_was_opened = 0x11,
        Slot_door_was_closed = 0x12,
        Drop_door_was_opened = 0x13,
        Drop_door_was_closed = 0x14,
        Card_cage_was_opened = 0x15,
        Card_cage_was_closed = 0x16,
        AC_power_was_applied_to_gaming_machine = 0x17,
        AC_power_was_lost_from_gaming_machine = 0x18,
        Cashbox_door_was_opened = 0x19,
        Cashbox_door_was_closed = 0x1A,
        Cashbox_was_removed = 0x1B,
        Cashbox_was_installed = 0x1C,
        Belly_door_was_opened = 0x1D,
        Belly_door_was_closed = 0x1E,
        No_activity_and_waiting_for_player_input = 0x1F,
        General_tilt = 0x20,
        Coin_in_tilt = 0x21,
        Coin_out_tilt = 0x22,
        Hopper_empty_detected = 0x23,
        Extra_coin_paid = 0x24,
        Diverter_malfunction = 0x25,
        Cashbox_full_detected = 0x27,
        Bill_jam = 0x28,
        Bill_acceptor_hardware_failure = 0x29,
        Reverse_bill_detected = 0x2A,
        Bill_rejected = 0x2B,
        Counterfeit_bill_detected = 0x2C,
        Reverse_coin_in_detected = 0x2D,
        Cashbox_near_full_detected = 0x2E,
        CMOS_RAM_error_data_recovered_from_EEPROM = 0x31,
        CMOS_RAM_error_no_data_recovered_from_EEPROM = 0x32,
        CMOS_RAM_error_bad_device = 0x33,
        EEPROM_error_data_error = 0x34,
        EEPROM_error_bad_device = 0x35,
        EPROM_error_different_checksum_version_changed = 0x36,
        EPROM_error_bad_checksum_compare = 0x37,
        Partitioned_EPROM_error_csum_version_changed = 0x38,
        Partitioned_EPROM_error_bad_checksum_compare = 0x39,
        Memory_error_reset = 0x3A,
        Low_backup_battery_detected = 0x3B,
        Operator_changed_options = 0x3C,
        A_cash_out_ticket_has_been_printed = 0x3D,
        A_handpay_has_been_validated = 0x3E,
        Validation_ID_not_configured = 0x3F,
        Reel_Tilt = 0x40,
        Reel_1_tilt = 0x41,
        Reel_2_tilt = 0x42,
        Reel_3_tilt = 0x43,
        Reel_4_tilt = 0x44,
        Reel_5_tilt = 0x45,
        Reel_mechanism_disconnected = 0x46,
        One_dollar_bill_accepted = 0x47,
        Five_dollar_bill_accepted = 0x48,
        Ten_dollar_bill_accepted = 0x49,
        Twenty_bill_accepted = 0x4A,
        Fifty_dollar_bill_accepted = 0x4B,
        Hundred_dollar_bill_accepted = 0x4C,
        Two_dollar_bill_accepted = 0x4D,
        Five_hundred_dollar_bill_accepted = 0x4E,
        Bill_accepted = 0x4F,
        Two_hundred_dollar_bill_accepted = 0x50,
        Handpay_is_pending = 0x51,
        Handpay_was_reset = 0x52,
        No_progressive_info_received_for_5_seconds = 0x53,
        Progressive_win = 0x54,
        Player_has_cancelled_the_handpay_request = 0x55,
        SAS_progressive_level_hit = 0x56,
        System_validation_request = 0x57,
        Printer_communication_error = 0x60,
        Printer_paper_out_error = 0x61,
        Cash_out_button_pressed = 0x66,
        Ticket_has_been_inserted = 0x67,
        Ticket_transfer_complete = 0x68,
        AFT_transfer_complete = 0x69,
        AFT_request_for_host_cashout = 0x6A,
        AFT_request_for_host_to_cash_out_win = 0x6B,
        AFT_request_to_register = 0x6C,
        AFT_registration_acknowledged = 0x6D,
        AFT_registration_cancelled = 0x6E,
        Game_locked = 0x6F,
        Exception_buffer_overflow = 0x70,
        Change_lamp_on = 0x71,
        Change_lamp_off = 0x72,
        Printer_paper_low = 0x74,
        Printer_power_off = 0x75,
        Printer_power_on = 0x76,
        Replace_printer_ribbon = 0x77,
        Printer_carriage_jammed = 0x78,
        Coin_in_lockout_malfunction = 0x79,
        Gaming_machine_soft_meters_reset_to_zero = 0x7A,
        Bill_validator_totals_reset_by_an_attendant = 0x7B,
        A_legacy_bonus_pay_and_or_multiplied_jackpot = 0x7C,
        Game_has_started = 0x7E,
        Game_has_ended = 0x7F,
        Hopper_full_detected = 0x80,
        Hopper_level_low_detected = 0x81,
        Display_meters_or_attendant_menu_entered = 0x82,
        Display_meters_or_attendant_menu_exited = 0x83,
        Self_test_or_operator_menu_has_been_entered = 0x84,
        Self_test_or_operator_menu_has_been_exited = 0x85,
        Gaming_machine_is_out_of_service = 0x86,
        Player_has_requested_draw_cards = 0x87,
        Reel_N_has_stopped = 0x88,
        Coin_credit_wagered = 0x89,
        Game_recall_entry_has_been_displayed = 0x8A,
        Card_held_not_held = 0x8B,
        Game_selected = 0x8C,
        Component_list_changed = 0x8E,
        Authentication_complete = 0x8F,
        Power_off_card_cage_access = 0x98,
        Power_off_slot_door_access = 0x99,
        Power_off_cashbox_door_access = 0x9A,
        Power_off_drop_door_access = 0x9B,
Logged
Pages: 1 2 3 4 [5] Go Up Print 
« previous next »
Jump to:  


If you find this site helpful, Please Consider Making a small donation to help defray the cost of hosting and bandwidth.



Newlifegames.com    Newlifegames.net    Newlifegames.org
   New Life Games    NewLifeGames  NLG  We Bring new Life to old Games    1-888-NLG-SLOTS
Are all Copyright and Trademarks of New Life Games LLC 1992 - 2021


FAIR USE NOTICE:

This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner.
We make such material available in an effort to advance awareness and understanding of the issues involved.
We believe this constitutes a fair use of any such copyrighted material as provided for in section 107 of the US Copyright Law.
In accordance with Title 17 U.S.C. Section 107, the material on this site is distributed without profit to those
who have expressed a prior interest in receiving the included information for research and educational purposes.

For more information please visit: http://www.law.cornell.edu/uscode/17/107.shtml.

If you wish to use copyrighted material from this site for purposes of your own that go beyond fair use,
you must obtain permission directly from the copyright owner.

NewLifeGames.net Web-Site is optimized for use with Fire-Fox and a minimum screen resolution of 1280x768 pixels.


Powered by SMF 1.1.20 | SMF © 2013, Simple Machines
Loon Designed by Mystica
Updated by Runic Warrior
Page created in 0.109 seconds with 20 queries.