PDA

View Full Version : does Girder have a timer?



Ron
October 13th, 2002, 12:55 PM
Thanks for the great speech, care to work for the PR department ? :grin:

jediperry
October 13th, 2002, 12:55 PM
When you set some actions, you have to click the apply button or girder will forget the setting you just entered.

I think from your previous post, it sounds like you are attempting to use the wrong timer plugin. The time server plugin must be placed in the plugins/hardware directory and enabled in the "hardware plugins" settings tab.

To set a time, goto the notepad event you have made, then in the dropdown box next to the "learn event" button, change it from "All" to "time server" and click on the learn event. The settings box you will get is quite self explitry I think

Hope this helps

Mike

jediperry
October 13th, 2002, 12:55 PM
Thats because neither of the two timersrs in the software plugin section are what you want :smile:

The time server is a plugin that causes an event to happen rather than a plugin that is activated by an event, so it is counted at a hardware plugin.

so the TimeServer.dll is placed in the hardware directory and activated in the hardware plugins tab in the girder settings.

jediperry
October 13th, 2002, 12:55 PM
Sending the keyboard shortcuts to the DVR application is perhaps a little bit more complicated as you have to tell girder which application you are sending the shortcuts to.
This is done using the "Target button" that you will find located on the keyboard action tab.
The easiest way to do this it to drag the icon in the top right of the targetting window onto the running DRV application. This will fill in any relivant details in the 5 boxes on the bottom right. Click OK,
then you can set the keyboard shorcut you wish to set.

Windows programs are able to control whether more than one instance of themselfs can occur. In the case of girder, the running instance will just recieve the command line you have passed to it. Winamp is another good example of this.

Can't help with AT, but I should think there is windows help on that :grin:

Mike

<font size=-1>[ This Message was edited by: jediperry on 2001-08-03 13:18 ]</font>

jediperry
October 13th, 2002, 12:55 PM
Glad you got it working.
Have you tried looking at using command capture? There is some good help on this with girder.

Mike

jediperry
October 13th, 2002, 12:55 PM
Yep. It will usually even work if the app is minimised etc.

MMcM
October 13th, 2002, 12:55 PM
.GIR files are text with a fairly obvious format. I edit them with Emacs all the time.

The Girder UI is not going to be all that good at managing your schedule of recording times. Another approach would be to set up Girder to take its actions in response to some IRcode and then use the Windows scheduler to run it with the -eventstring command line argument when you need.

MMcM
October 13th, 2002, 12:55 PM
I don't know much about the application you are ultimately controlling, so I will not be able to offer any help there. So, let's start by assuming that you have Girder set up to control that successfully. Specifically, that you have Start and Stop commands defined that work when run manually via Test Command (F5). Also, let's assume that Girder is running with this script loaded, perhaps because it starts automatically when Windows does.

Next, you want to define a unique Event String for each of these commands. You can do this by learning a code from some input device, like an IR remote, if you have one. Or, you can just as easily edit the .GIR file by hand and change the irstr= line for each of the commands. Pick something that no other input device you might be using will take.

Having done that, you can cause the commands to run by running GIRDER.EXE with the -eventstring command line argument. For instance, if you had irstr=Start, you'd say -eventstring Start.

Then you just schedule normally. For example,
at 9:00 "c:Program FilesGirder3Girder.exe" -eventstring Start
at 10:00 "c:Program FilesGirder3Girder.exe" -eventstring Stop

<font size=-1>[ This Message was edited by: MMcM on 2001-08-03 05:08 ]</font>

MMcM
October 13th, 2002, 12:55 PM
There's no real problem with a second instance of the Girder process starting. When the program has that command line argument, it rendezvous with the existing instance and gives it the event and then exits without ever displaying its own window. I am not sure of the precise mechanism, but it is probably along the lines of finding a top-level window with a known class and sending it a copy data message.

The way the scheduler works in detail is more or less like this. There is an NT service called Task scheduler (or something along those lines). It keeps its set of active tasks in binary files in WINNTTASKS (or more specifically, where HKLMSoftwareMicrosoftTaskScheduler tells it to). NETAPI32 has NetScheduleJobXxx functions which talk to that service. AT.EXE is a simple command line UI for those functions.

So, given that you have a set of times that you want to run, which you got from someplace, you could easily edit up a .CMD file that called AT with them. Or, if one wanted to go even further, one could write a small program to do it. Although the functions are mainly meant to be C[++]-callable, their signature is flat enough that doing it from VB would be straightforward. You aren't going to want to muck around with the files that the scheduler itself uses to remember what to do.

<font size=-1>[ This Message was edited by: MMcM on 2001-08-04 01:07 ]</font>

JayGuerette
October 13th, 2002, 12:55 PM
Although I know very little about the "Time Server" plugin, it sounds like it may do what you want. Check out the download page (http://www.girder.nl/download.php) to read it's extremely short description, or download it (http://www.girder.nl/download.php?Link=29) and see what it's all about.

<font size=-1>[ This Message was edited by: JayGuerette on 2001-07-27 20:28 ]</font>

JayGuerette
October 13th, 2002, 12:55 PM
In your defense... there is no documention or help, and the interface is somewhat counter-intuitive. :eek:

JayGuerette
October 13th, 2002, 12:55 PM
In your defense... there is no documention or help, and the interface is somewhat counter-intuitive. :eek:


To clarify: I was referring to the Time Server plugin, not Girder! :smile:

oe1k
October 13th, 2002, 12:55 PM
True testimonials of Girder:

"I've been using Girder for only a month, and I'd say it is slightly hard to 'set-up'. That is, configuring it to do what you want takes a while (maybe a few hours), but installation is easy. Mostly, it's hard to decide what you want it to do, since it can do so much.
And, once you see the possibilities, you will be amazed the uses you come up with.
Sure, you may only want it to do job X now, but it'll be there when you realize you want it to do jobs Y and Z aswell.
Girder is truely the input and control support that Windows(tm) needs."
-Richard Owens, Computer Engineer (student)

<font size=-1>[ This Message was edited by: oe1k on 2001-07-28 09:34 ]</font>

Mance
October 13th, 2002, 12:55 PM
I'm interested in using Girder to control an application that does not have a built in timer. It's a Sigma Designs DVR MPG2 capture card and I would like to use it like a VCR (unattended recordings).

Can Girder be used on a timer? I saw something in the features list that looked like a sleep timer. Can this be used to 'push' the record button on my DVR's application at a specific time and then 'push' the Stop button later?

At this point I'm not even looking at it for remote control (I have another PC with a Hollywood Plus and an X-10 Mouse Remote that works well enough as is, except for the horrible RF interference), I just want it to control an application on a schedule. Is this possible? Is it difficult?

Mance
October 13th, 2002, 12:55 PM
Thanks, I guess that's what I'm looking for. I was kind of hoping for some more detailed info, like from someone that has actually used it.

Now the more important question, how difficult is it to set up and use Girder? :wink:

I'm a sys admin. I can set up PC's and configure software all day long, but I don't do programming.

Mance
October 13th, 2002, 12:55 PM
Okay, now I need some help. I downloaded Girder and ran through the sample in the help file. I now have a group called New and a command in it called New that opens Notepad (If I right click on it and say Test Command). I'm not using a remote control, I'm using the keyboard.

So I was looking for a way to launch Notepad from a timer, just to test this Time Server plugin. I'm at a loss as to how this works. I activated the plugin, so it would show up in the plugin tab. And then I went there and looked at its settings. I set its target to the New command that opens Notepad, but I'm at a loss as to how to tell Girder when I want this command to be executed. It seems that it wants a time delay in milliseconds from an event.

What I'm looking for is a way to tell it what time and date I want this command to be executed. Is this Time Server plugin not designed for this? Am I doing this wrong?

Also, I just went back to Girder to repeat the sample, and now it won't even let me execute the sample New command that opens Notepad. It keeps changing to the first tab called Window and not the OS tab that has the Execute Notepad command in it. In fact every time it is now wiping the Notepad execution command from the OS tab if I try and activate the command. I've tried deleting the New command entry and starting over from the help file but to no avail. I now can't even execute the Help file sample!

Am I a complete idiot? Help!

Mance
October 13th, 2002, 12:55 PM
Okay, I got the sample command to work again. I had to specify a Startup Option, default, and then save everything and make sure the hardware plugin was running, keyboard, and then it worked. For some reason before it was defaulting to the Window tab. Don't know why. But the open Notepad command seems to work now.

So how do I use the Time Server to tell it when I want this to be executed?

Any ideas?

Mance
October 13th, 2002, 12:55 PM
Thanks. I think that helps. In theory :wink:

However I tried doing what you suggested and no matter which of the two Timer plugins I activated in the Software Plugin section under setttings, neither one gave me an addition to that drop down list you mentioned. It stayed as "All".

I'll keep trying. Any additional help would be appreciated.

And thanks, I did finally figure out you have to hit Apply to make that command thing stick.

Mance

Mance
October 13th, 2002, 12:55 PM
Oh. My bad.

That's very helpful. I'll give that a try.

Mance
October 13th, 2002, 12:55 PM
Okay, so I put the plugin in the right folder.

Now I'm more confused than ever. I swear in real life I'm a very smart person :wink:

I can now do as you describe: the Time Server is chosen in the drop down field for this command (command works to open Notepad when tested with Right mouse click). When I click on Learn Event the Time Server setup dialogue box opens. This is where I'm stuck.

There is both a Date & Time...From and a Date & Time...To set of options. This confuses me as I want this singular event (the execution of Notepad in this example) to be triggered at a set time. Wouldn't it only need one time event specified? Am I setting a duration of time for Notepad to be run? It certainly won't know how to close it at the end of this duration. I don't understand what these two options are for. Regardless, no matter how I set either, it does not execute the command in the previous box (that it came from) to open Notepad.

I know I'm just missing something. Does the Time Server box have to be open for this to happen? The event is listed there at the time I specified in the event list (I clicked the Insert Event button), but nothing happens when the time rolls around. And whether that box is open or closed it doesn't activate the command.

The software is running with the keyboard input having a green light. When I first set this event in the time server, the "LED" display, or whatever that thing is in the middle of the Girder box, went from saying "New" to "6000". Now it shows, "4m38U1-00000", and there's a message in the border of this page that says, "Waiting for IR Code". Methinks something's amiss.

Learn me!

Mance
October 13th, 2002, 12:55 PM
Okay, I guess I needed to just suffer for a while :wink:

I'm starting to get the hang of this, I think.

This timer emulates an IR command. So when I create a time event I have to "Send' the IR command to Girder, so that it will recognize the "signal" when the timer sends it.

Ahah. This all seems fairly arcane, but I guess you technical types like it this way.

So it still doesn't explain to me why there's a From time and a To time. Any explanations? It appears from testing that I can set either to set off my event, but I'm not sure.

Also, are the "LED" codes I'm seeing the actual signal that's going to be sent when the timer executes?

I'm wondering if I define my actions, 'pressing' an application's Record button with one timed event, and then 'pressing' the Stop button with another timed event, if there's a way I can edit those two times afterwards externally faster than going in and going through all the dialogue boxes each time.

Is any of this stored in a config file that I can edit directly? Or is it all in hex code or something?

Mance

Mance
October 13th, 2002, 12:55 PM
"Another approach would be to set up Girder to take its actions in response to some IRcode and then use the Windows scheduler to run it with the -eventstring command line argument when you need."

Please explain. This sounds more like what I'm interested in. Easy cut and paste automation (in text files).

If I begin using this to Record and Stop with this video capturing application, I'm going to want an easy way to alter the date and time. All the rest of the programming would stay the same, so there's no need to go in and define all these event relationships each time.

So, pardon my ignorance, but what's an Eventstring, how would I use that with Windows scheduler (I'm in NT4 so I'm assuming At.exe), and how would I get it to emulate an IR input for Girder's sake?

This sounds potentially more elegant once all the setup work is done.

Mance
October 13th, 2002, 12:55 PM
Excellent. That would be exactly what I'm looking for. Thank you so much. Editing that text file that would control AT.EXE would be so simple in the long run (that is how the scheduler works, isn't it?).

Now I have some work ahead of me to try and make that work.

The purpose of this is to, while I'm away, start and stop a Sigma Designs DVR. It's a PCI card that encodes a video signal to MPG2. I want to use it as a VCR. I just found out from Sigma that there are hot keys for the Record and Stops buttons (CTRL+SHFT+M, and CTRL+S, respectively). I'm now assuming that it must be as easy to do this as creating that sample "open Notepad" command.

Also, pardon my ignorance with the Windows Scheduler, but if you tell it to run Girder with that eventstring conditioner, aren't you invoking a second copy of Girder, assuming Girder was already running? Or by using this eventstring are you just sending a command to Girder? Normally I'd think that referencing the EXE would start another session of a program, but what do I know :wink:

thanks, that was really helpful. Now I just have to figure out the scheduler.

Mance

Mance
October 13th, 2002, 12:55 PM
Success!

I finally got it to work. Thanks everyone here for all your help. I will look into this apparently more sophisticated method of using the NT scheduler to control this, but for now that's over my head :wink:

Also, once I got this working at all (using hotkeys), I stopped looking into how to get Girder to control the DVR app's buttons directly. But since the way I'm doing this is sort of cumbersome, I'll need to go back and look at that when I get home, as well as perhaps replacing the Time Server function with NT's scheduler.

I had the hardest time figuring out how to get Girder to send hotkey commands to the DVR app. I thought I was doing it wrong, even though I read the directions carefully. No matter what window specific targetting function I chose, it wouldn't work. Then I looked at some other posts here where RonB said that sending hotkeys can be problematic. I finally got it to work by sending the hotkey to the foreground window, which seemed to be the only way the DVR would accept it.

So I made three timed events in order to record a TV show while I'm away.

1) The first event is a Window command that brings 'focus' to the DVR app, bringing it to the foreground (this is just in case I accidentally leave some other app in the foreground when I walk away.

2) The second timed event is the hotkey sequence CTRL+SHFT+M, this starts the encoding (the recording of the TV show to the hard drive). Once the DVR app is in the foreground it will accept this hotkey sequence.

3) The third event is CTRL+S, which stops the recording

So forcing the focus is a bit clumsy, but it worked. Also, this means that I have to set up the DVR in advance with settings I choose and a filename and path I choose for the MPG file, which means that I can only record one show while I'm away. I just checked my home system remotely using VNC and the show recorded! Now if I plan on doing this a lot, I'm going to need to refine this procedure.

Do you guys know if the Time Server events (that I 'send' to the Girder command on schedule as a simulated IR input) can be edited as text files? If so I could just set up some automated way of editing those files to control all this as opposed to having to go in each time and setting those three events by hand.

Thanks again for all your help.

I'd love to find a way to have a little gui that would allow me to choose time and date ranges from a calendar grid (perhaps a plugin for the browser that would allow me to Right Click on a show in the TV Guide website and send that selection to Girder's Time Server plugin, the same way ATI's All In Wonder Radeon uses an Electronic Program Guide), but since I'm not a programmer that may be asking too much.

I'll report back here if I find any way to make this process more sophisticated.

Mance
October 13th, 2002, 12:55 PM
Would command capture allow me to control those DVR buttons (Record and Stop) without having to make sure that the DVR app was in the foreground?

I'd love to just control it directly without having to do that silly force focus step.

Euth
March 15th, 2003, 06:21 PM
Ok this is extremely late, but I just figured out how to use the time server plug in the correct way. Documentation would have been awesome, but hey... :)

Basically the first screen you see is a list of "profiles" or "shedules" that you have set up (which is blank on first run). Each schedule on that list has it's own IR code that is sent to girder at the specified time. So when you want to learn an event for a specific time, you have to...

choose time server from the drop down, and hit learn.
click add to add a schedule (unless you want to use one already listed).
set up your time and date for start, and optionally an end time (if you are going to have it run more than once).
click on "insert event to the list".
click apply.
at this point, make sure the correct schedule is highlighted, and click on "send IR code to girder" (this is where it actually learns the event).
click ok, and you're done.

Once the specified time rolls around it will send the IR code (for that schedule) to girder and your command will go through.
With this added functionality the possibilities are endless.

Big thanks to Slavo for the plug in (even though docs ;)) and also a HUGE thanks to Ron for this fantastic program.

ubbo
January 31st, 2004, 12:56 PM
hello,
thank you very much for the timeserver-instructions.
it works perfect.

do you have any idea to manage more than one event with only one timestamp by timeserver?

best wishes
stephanus :)