Active TopicsActive Topics  Display List of Forum MembersMemberlist  Search The ForumSearch  HelpHelp
  RegisterRegister  LoginLogin
PowerHome Programming
 PowerHome Messageboard : PowerHome Programming
Subject Topic: application help Post ReplyPost New Topic
Author
Message << Prev Topic | Next Topic >>
Mike
Newbie
Newbie


Joined: July 07 2004
Location: United States
Online Status: Offline
Posts: 2
Posted: July 07 2004 at 13:33 | IP Logged Quote Mike

We have an application for the dehydration of food products. The present setup consists of 50 dehydrators with an appliance module (Smarthome 2002shl3- receive only) controlling the power on/off for each and an Ocelot controller. We dehydrate 20 different products with a different drying time for each product. As a dehydrator becomes empty it is refilled with a different product; products are not allocated to specific dehydrators as batch runs vary. I want to be able to have a button for each dehydrator and a button for each product. This would allow an operator to fill a dehydrator, select the button for that particular dehydrator, select the product button and start the cycle. The dehydrater would then power on for the required time. At the present the system works manually on/off. But as yet I have been unable to find the software tools to package the concept. Is it possible to do an application like this?  I get the feeling I have to write 50 x 20 macros , any solutions?

Thanks

Back to Top View Mike's Profile Search for other posts by Mike
 
dhoward
Admin Group
Admin Group
Avatar

Joined: June 29 2001
Location: United States
Online Status: Offline
Posts: 4447
Posted: July 07 2004 at 16:23 | IP Logged Quote dhoward

Mike,

After thinking about this for a while, this is the approach I would take based upon the following assumptions...

1.  We have 20 products each with their own individual drying times.  We need somewhere to store these times.  We also need a way to identify the products.  Im not sure how you are doing this currently, but for ease of simplicity, Im just going to call them P_1 thru P_20.  We can use global variables to store this ID along with the drying time in seconds as the value.  This would require us to create 20 global variables.

2.  We have 50 dehydrators.  Each of these units are probably numbered sequentially 1 thru 50.  For the purposes of this discussion, that is how I'll identify them.  These 50 units also require a unique house/unit code.  We can save ourselves some code by using a mathematical algorithm to calculate a house/unit but for this case, we'll assume were not going to do this.  At this point I would create 50 macros with names D_1 thru D_50.  Each of these macros will address the appropriate house/unit code for the dehydrator and turn the unit on.  The macro will then take the [LOCAL1] variable (which will contain a number from 1 to 20 corresponding to a product) and look up the number of seconds of drying time using the ph_getglobal_n function and wait for that many seconds.  After the wait period is expired, the house/unit would be readdressed and turned off.

This macro will be called using the ph_macroparm function and the product number (1 to 20) will be passed into the [LOCAL1] variable.

3.  I would use the web interface for the user interface and it is the most customizable and flexible.  I would first present a page asking the user to select the dehydrator number.  This page would then pass the selected value to a second page where the user is prompted for the product.  After the product is selected, both values for the the dehydrator and the product could be passed to PowerHome using the ph_macroparm function such as: /ph-cgi/evalformula?formula=ph_macroparm("D_XX",YY,0,0,0,0)

So as it stands, you should only need 20 global variables and 50 macros (just 1 macro if you mathematically calculate the house/unit code) and a couple of web pages.  Now if you don't have any programming experience, this will seem like a lot.  If you provide some more details of your system (the drying times of the products, the house/unit codes of the dehydrators) I could put together a skeleton for you.

You could even further reduce the code without resorting to mathematical calculations for the house/unit code by storing the house/unit for a dehydrator within the global variables table like were doing for the products.  You could ID these GV's such as D_1 thru D_50 and the value could be such as K1.  You would then only need a single macro and pass in the number of the dehydrator and the number of the product.  Do a lookup of each in the global variables and you're done.

Let me know what else I can do to help you.

Dave.

 

Back to Top View dhoward's Profile Search for other posts by dhoward Visit dhoward's Homepage
 
Mike
Newbie
Newbie


Joined: July 07 2004
Location: United States
Online Status: Offline
Posts: 2
Posted: July 15 2004 at 13:19 | IP Logged Quote Mike

Thank you for the follow-up. I had to leave the job with a simple on/off interface for the dehydrators and went home to continue the programming.

Yes, I would appreciate a skelton program; it's been awhile since I've programmed anything. Some of the parameters have been changed however: 1) I don't wish to use the web interface  2) the product drying times, for the 20 products, are 13-32 hours i.e., product 1 =13hrs., product 2=14 hrs., etc. 3) Because I am programming the interface at a remote site, is there anyway to transfer the end results to the location where the dehydrators are? I looked for a program save feature but didn't see it.  4) The dehydrators are labeled a1-10,b1-10,c1-10,d1-10,and e1-10. 5) Because of the noisey environment I have decided to turn each 2002 module on at least 5 times with a 30 second delay between each turn-on and repeat the same process for turn-off. 

Thank you

Mike

Back to Top View Mike's Profile Search for other posts by Mike
 
dhoward
Admin Group
Admin Group
Avatar

Joined: June 29 2001
Location: United States
Online Status: Offline
Posts: 4447
Posted: July 19 2004 at 19:03 | IP Logged Quote dhoward

Mike,

Sorry to take so long responding, was out of town at a friends wedding.

I will put together a skeleton for you based upon the above information.  I should have something ready for by Wednesday.

As far as remote saving, there isn't really any good way to do it.  All changes and configurations to PowerHome are contained in a couple of files.  The pwrhome.ini file holds most of the information in the Setup area of the Explorer such as passwords, controllers, and such.  The pwrhome.db file located in the database directory holds all of the other information including macros, triggers, timed events, etc.

You could do the programming at your home and then transfer these two files to the remote location.  You'll have to close PowerHome before copying and then open after copying.  You should then have all the info you had at home.

The skeleton Im putting together for you will consist of lines of SQL statements.  From home, you will use the "Direct SQL" option under maintenance to have these SQL statements imported into your database.  If you were running the web interface, you could also import these SQL statements into the remote database using the web's Direct SQL page.

Get back with you soon,

Dave.

 

Back to Top View dhoward's Profile Search for other posts by dhoward Visit dhoward's Homepage
 
dhoward
Admin Group
Admin Group
Avatar

Joined: June 29 2001
Location: United States
Online Status: Offline
Posts: 4447
Posted: July 21 2004 at 16:36 | IP Logged Quote dhoward

Mike,

Ive finished the skeleton for you.  You have a couple of Control Center tabs, one to select the dehydrator and one to select the product.  What the code amounts to is a couple of tabs, 21 global variables, 3 macros, and 70 sendkeys buttons.  There is a global variable defined for each product with the value set to the dehydrator run time in hours.  This will allow you to make changes easily as necessary.  When a dehydrator is activated, the appropriate "ON" command is sent 5 times, 30 seconds apart.  When the dehydrator is shut off, the "OFF" command is sent 5 times, 30 seconds apart.

You'll start on the first tab (SELECT DEHYDRATOR) and select the appropriate dehydrator.  This will then store the selected dehydrator in the "CURRENT_DEHYDRATOR" global variable.  The CC tab will then be automatically changed for you to the "SELECT PRODUCT" tab.  Ive also used a little bit of an obscure function (ph_ccmodify) which will show the currently selected dehydrator in a large font directly on the select product tab.  The operator will then select the appropriate product which will then execute the "LAUNCH CYCLE" macro.  This macro will send the appropriate "ON" commands and place a usermessage in the eventlog as well as display an appropriate messagebox.  These can be easily remmed out if desired.  A timedevent is then calculated and created for the "END CYCLE" macro which send the appropriate "OFF" commands for the dehydrator.  I used a timedevent rather than a macro wait as I seem to have a bug in the macro wait logic that miscalculates on long macro wait times (this is fixed in the next version). 

I didnt really include any error checking to see if a dehydrator is already running or not.  You could easily add this later if needed.

Anyways, below is the "Direct SQL"  code for you.  Just open the Direct SQL screen from the Maintenance menu and copy and paste the code in it.  It should churn for a few seconds and then give you the SQL Performed OK message.

insert into customtab values ('SELECT DEHYDRATOR',1,12632256,'','N','N','N');
insert into customtab values ('SELECT PRODUCT',2,12632256,'','N','N','N');
insert into global_variables values ('CURRENT_DEHYDRATOR','A1');
insert into global_variables values ('P_1','13');
insert into global_variables values ('P_2','14');
insert into global_variables values ('P_3','15');
insert into global_variables values ('P_4','16');
insert into global_variables values ('P_5','17');
insert into global_variables values ('P_6','18');
insert into global_variables values ('P_7','19');
insert into global_variables values ('P_8','20');
insert into global_variables values ('P_9','21');
insert into global_variables values ('P_10','22');
insert into global_variables values ('P_11','23');
insert into global_variables values ('P_12','24');
insert into global_variables values ('P_13','25');
insert into global_variables values ('P_14','26');
insert into global_variables values ('P_15','27');
insert into global_variables values ('P_16','28');
insert into global_variables values ('P_17','29');
insert into global_variables values ('P_18','30');
insert into global_variables values ('P_19','31');
insert into global_variables values ('P_20','32');
insert into macroheader values ('SET DEHYDRATOR','SET DEHYDRATOR',4,4,252,96,0,0,0,12632256,0,0,1,'',10);
insert into macrodetail values ('SET DEHYDRATOR',1,10,'CURRENT_DEHYDRATOR',NULL,'"[LOCAL1]"',0);
insert into macrodetail values ('SET DEHYDRATOR',2,16,'',NULL,'if(ph_ccdescribe(2,"st_cd.text") = "!",1,2)',0);
insert into macrodetail values ('SET DEHYDRATOR',3,38,'',0,'ph_ccmodify(2,''create text(name=st_cd pointer="arrow!" band=detail font.charset="0" font.face="Arial" font.family="2" font.height="-18" font.pitch="2" font.weight="400" background.mode="2" background.color="12632256" color="0" alignment="0" border="2" x="100" y="100" height="120" width="1200"  text="Current Dehydrator: " )'')',0);
insert into macrodetail values ('SET DEHYDRATOR',4,38,'',0,'ph_ccmodify(2,''st_cd.text="Current Dehydrator: [LOCAL1]"'')',0);
insert into macrodetail values ('SET DEHYDRATOR',5,38,'',0,'ph_setcctab(2)',0);
insert into macroheader values ('LAUNCH CYCLE','LAUNCH CYCLE',4,4,252,96,0,0,0,12632256,0,0,1,'',10);
insert into macrodetail values ('LAUNCH CYCLE',2,15,'[TEMP2]',NULL,'left(ph_getglobal_s("CURRENT_DEHYDRATOR"),1)',0);
insert into macrodetail values ('LAUNCH CYCLE',4,38,'',0,'ph_x10(1,"[TEMP2]",[TEMP3],0) + ph_x10(1,"[TEMP2]",102,0)',0);
insert into macrodetail values ('LAUNCH CYCLE',6,38,'',0,'ph_createtimedevent(2,''ph_macroparm("END CYCLE","[TEMP2][TEMP3]",0,0,0,0)'',[TEMP4])',0);
insert into macrodetail values ('LAUNCH CYCLE',8,36,'',NULL,'"Cycle launched on dehydrator [TEMP2][TEMP3] for product [LOCAL1].  Dehydrator will automatically turn off in [TEMP1] hours."',0);
insert into macrodetail values ('LAUNCH CYCLE',10,31,'',NULL,'30',0);
insert into macrodetail values ('LAUNCH CYCLE',12,31,'',NULL,'30',0);
insert into macrodetail values ('LAUNCH CYCLE',14,31,'',NULL,'30',0);
insert into macrodetail values ('LAUNCH CYCLE',16,31,'',NULL,'30',0);
insert into macrodetail values ('LAUNCH CYCLE',18,37,'',NULL,'We''ve turned the dehydrator on 5 times, 30 seconds apart.',0);
insert into macrodetail values ('LAUNCH CYCLE',1,15,'[TEMP1]',NULL,'ph_getglobal_s("P_[LOCAL1]")',0);
insert into macrodetail values ('LAUNCH CYCLE',3,15,'[TEMP3]',NULL,'mid(ph_getglobal_s("CURRENT_DEHYDRATOR"),2)',0);
insert into macrodetail values ('LAUNCH CYCLE',5,15,'[TEMP4]',NULL,'string(ph_relativedatetime(today(),[TEMP1] * 60),''yyyy-mm-dd hh:mm:ss'')',0);
insert into macrodetail values ('LAUNCH CYCLE',7,38,'',0,'ph_setcctab(1)',0);
insert into macrodetail values ('LAUNCH CYCLE',9,24,'No TTS',1,'"Cycle launched on dehydrator [TEMP2][TEMP3] for product [LOCAL1].  Dehydrator will automatically turn off in [TEMP1] hours."',0);
insert into macrodetail values ('LAUNCH CYCLE',11,38,'',0,'ph_x10(1,"[TEMP2]",[TEMP3],0) + ph_x10(1,"[TEMP2]",102,0)',0);
insert into macrodetail values ('LAUNCH CYCLE',13,38,'',0,'ph_x10(1,"[TEMP2]",[TEMP3],0) + ph_x10(1,"[TEMP2]",102,0)',0);
insert into macrodetail values ('LAUNCH CYCLE',15,38,'',0,'ph_x10(1,"[TEMP2]",[TEMP3],0) + ph_x10(1,"[TEMP2]",102,0)',0);
insert into macrodetail values ('LAUNCH CYCLE',17,38,'',0,'ph_x10(1,"[TEMP2]",[TEMP3],0) + ph_x10(1,"[TEMP2]",102,0)',0);
insert into macroheader values ('END CYCLE','END CYCLE',4,4,252,96,0,0,0,12632256,0,0,1,'',10);
insert into macrodetail values ('END CYCLE',2,15,'[TEMP3]',NULL,'mid("[LOCAL1]",2)',0);
insert into macrodetail values ('END CYCLE',4,31,'',NULL,'30',0);
insert into macrodetail values ('END CYCLE',6,31,'',NULL,'30',0);
insert into macrodetail values ('END CYCLE',8,31,'',NULL,'30',0);
insert into macrodetail values ('END CYCLE',10,31,'',NULL,'30',0);
insert into macrodetail values ('END CYCLE',12,37,'',NULL,'We''ve sent the "OFF" command 5 times, 30 seconds apart.  We can now exit.',0);
insert into macrodetail values ('END CYCLE',1,15,'[TEMP2]',NULL,'left("[LOCAL1]",1)',0);
insert into macrodetail values ('END CYCLE',3,38,'',0,'ph_x10(1,"[TEMP2]",[TEMP3],0) + ph_x10(1,"[TEMP2]",103,0)',0);
insert into macrodetail values ('END CYCLE',5,38,'',0,'ph_x10(1,"[TEMP2]",[TEMP3],0) + ph_x10(1,"[TEMP2]",103,0)',0);
insert into macrodetail values ('END CYCLE',7,38,'',0,'ph_x10(1,"[TEMP2]",[TEMP3],0) + ph_x10(1,"[TEMP2]",103,0)',0);
insert into macrodetail values ('END CYCLE',9,38,'',0,'ph_x10(1,"[TEMP2]",[TEMP3],0) + ph_x10(1,"[TEMP2]",103,0)',0);
insert into macrodetail values ('END CYCLE',11,38,'',0,'ph_x10(1,"[TEMP2]",[TEMP3],0) + ph_x10(1,"[TEMP2]",103,0)',0);
insert into sendkeys values ('A1','A1',120,88,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","A1",0,0,0,0))',10);
insert into sendkeys values ('A2','A2',444,88,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","A2",0,0,0,0))',10);
insert into sendkeys values ('A3','A3',768,88,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","A3",0,0,0,0))',10);
insert into sendkeys values ('A4','A4',1092,88,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","A4",0,0,0,0))',10);
insert into sendkeys values ('A5','A5',1416,88,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","A5",0,0,0,0))',10);
insert into sendkeys values ('A6','A6',1740,88,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","A6",0,0,0,0))',10);
insert into sendkeys values ('A7','A7',2064,88,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","A7",0,0,0,0))',10);
insert into sendkeys values ('A8','A8',2388,88,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","A8",0,0,0,0))',10);
insert into sendkeys values ('A9','A9',2712,88,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","A9",0,0,0,0))',10);
insert into sendkeys values ('A10','A10',3036,88,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","A10",0,0,0,0))',10);
insert into sendkeys values ('B1','B1',120,264,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","B1",0,0,0,0))',10);
insert into sendkeys values ('B2','B2',444,264,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","B2",0,0,0,0))',10);
insert into sendkeys values ('B3','B3',768,264,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","B3",0,0,0,0))',10);
insert into sendkeys values ('B4','B4',1092,264,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","B4",0,0,0,0))',10);
insert into sendkeys values ('B5','B5',1416,264,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","B5",0,0,0,0))',10);
insert into sendkeys values ('B6','B6',1740,264,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","B6",0,0,0,0))',10);
insert into sendkeys values ('B7','B7',2064,264,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","B7",0,0,0,0))',10);
insert into sendkeys values ('B8','B8',2388,264,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","B8",0,0,0,0))',10);
insert into sendkeys values ('B9','B9',2712,264,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","B9",0,0,0,0))',10);
insert into sendkeys values ('B10','B10',3036,264,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","B10",0,0,0,0))',10);
insert into sendkeys values ('C1','C1',120,440,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","C1",0,0,0,0))',10);
insert into sendkeys values ('C2','C2',444,440,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","C2",0,0,0,0))',10);
insert into sendkeys values ('C3','C3',768,440,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","C3",0,0,0,0))',10);
insert into sendkeys values ('C4','C4',1092,440,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","C4",0,0,0,0))',10);
insert into sendkeys values ('C5','C5',1416,440,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","C5",0,0,0,0))',10);
insert into sendkeys values ('C6','C6',1740,440,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","C6",0,0,0,0))',10);
insert into sendkeys values ('C7','C7',2064,440,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","C7",0,0,0,0))',10);
insert into sendkeys values ('C8','C8',2388,440,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","C8",0,0,0,0))',10);
insert into sendkeys values ('C9','C9',2712,440,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","C9",0,0,0,0))',10);
insert into sendkeys values ('C10','C10',3036,440,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","C10",0,0,0,0))',10);
insert into sendkeys values ('D1','D1',120,616,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","D1",0,0,0,0))',10);
insert into sendkeys values ('D2','D2',444,616,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","D2",0,0,0,0))',10);
insert into sendkeys values ('D3','D3',768,616,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","D3",0,0,0,0))',10);
insert into sendkeys values ('D4','D4',1092,616,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","D4",0,0,0,0))',10);
insert into sendkeys values ('D5','D5',1416,616,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","D5",0,0,0,0))',10);
insert into sendkeys values ('D6','D6',1740,616,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","D6",0,0,0,0))',10);
insert into sendkeys values ('D7','D7',2064,616,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","D7",0,0,0,0))',10);
insert into sendkeys values ('D8','D8',2388,616,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","D8",0,0,0,0))',10);
insert into sendkeys values ('D9','D9',2712,616,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","D9",0,0,0,0))',10);
insert into sendkeys values ('D10','D10',3036,616,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","D10",0,0,0,0))',10);
insert into sendkeys values ('E1','E1',120,792,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","E1",0,0,0,0))',10);
insert into sendkeys values ('E2','E2',444,792,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","E2",0,0,0,0))',10);
insert into sendkeys values ('E3','E3',768,792,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","E3",0,0,0,0))',10);
insert into sendkeys values ('E4','E4',1092,792,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","E4",0,0,0,0))',10);
insert into sendkeys values ('E5','E5',1416,792,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","E5",0,0,0,0))',10);
insert into sendkeys values ('E6','E6',1740,792,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","E6",0,0,0,0))',10);
insert into sendkeys values ('E7','E7',2064,792,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","E7",0,0,0,0))',10);
insert into sendkeys values ('E8','E8',2388,792,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","E8",0,0,0,0))',10);
insert into sendkeys values ('E9','E9',2712,792,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","E9",0,0,0,0))',10);
insert into sendkeys values ('E10','E10',3036,792,252,96,0,0,0,12632256,'SELECT DEHYDRATOR','ph_rtne(ph_macroparm("SET DEHYDRATOR","E10",0,0,0,0))',10);
insert into sendkeys values ('P_1','PRODUCT 1',344,344,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",1,0,0,0,0))',10);
insert into sendkeys values ('P_2','PRODUCT 2',664,344,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",2,0,0,0,0))',10);
insert into sendkeys values ('P_3','PRODUCT 3',984,344,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",3,0,0,0,0))',10);
insert into sendkeys values ('P_4','PRODUCT 4',1304,344,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",4,0,0,0,0))',10);
insert into sendkeys values ('P_5','PRODUCT 5',1624,344,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",5,0,0,0,0))',10);
insert into sendkeys values ('P_6','PRODUCT 6',344,528,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",6,0,0,0,0))',10);
insert into sendkeys values ('P_7','PRODUCT 7',664,528,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",7,0,0,0,0))',10);
insert into sendkeys values ('P_8','PRODUCT 8',984,528,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",8,0,0,0,0))',10);
insert into sendkeys values ('P_9','PRODUCT 9',1304,528,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",9,0,0,0,0))',10);
insert into sendkeys values ('P_10','PRODUCT 10',1624,528,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",10,0,0,0,0))',10);
insert into sendkeys values ('P_11','PRODUCT 11',344,712,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",11,0,0,0,0))',10);
insert into sendkeys values ('P_12','PRODUCT 12',664,712,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",12,0,0,0,0))',10);
insert into sendkeys values ('P_13','PRODUCT 13',984,712,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",13,0,0,0,0))',10);
insert into sendkeys values ('P_14','PRODUCT 14',1304,712,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",14,0,0,0,0))',10);
insert into sendkeys values ('P_15','PRODUCT 15',1624,712,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",15,0,0,0,0))',10);
insert into sendkeys values ('P_16','PRODUCT 16',344,896,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",16,0,0,0,0))',10);
insert into sendkeys values ('P_17','PRODUCT 17',664,896,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",17,0,0,0,0))',10);
insert into sendkeys values ('P_18','PRODUCT 18',984,896,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",18,0,0,0,0))',10);
insert into sendkeys values ('P_19','PRODUCT 19',1304,896,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",19,0,0,0,0))',10);
insert into sendkeys values ('P_20','PRODUCT 20',1624,896,228,96,0,0,0,12632256,'SELECT PRODUCT','ph_rtne(ph_macroparm("LAUNCH CYCLE",20,0,0,0,0))',10);

Hope this helps,

Dave.

 

Back to Top View dhoward's Profile Search for other posts by dhoward Visit dhoward's Homepage
 

If you wish to post a reply to this topic you must first login
If you are not already registered you must first register

  Post ReplyPost New Topic
Printable version Printable version

Forum Jump
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot delete your posts in this forum
You cannot edit your posts in this forum
You cannot create polls in this forum
You cannot vote in polls in this forum