Hi,
Still i don't understand how i can implement this concept in my application. As i am using Asyn Driver, i have used 2 different reason in asynInt32 and for 2 record.
asyn reason (1) delay -> i put one loop which read system time and compare with there time specified by value field of the PV by -> caput <PV name> <value time> if the system time is
greater than <value time> loop break and record processing complete with return value asynSuccess.
asyn reason (2) currenttime -> read current time of the system -> it is simple scanning record with SCAN field of 1 second.
If in project i
define only one PV with any one case of above, it works fine....
But if i use 2 PV and using both function same time, when i put delay value with $ caput <PV name> <value time> and monitor second PV on other terminal with camonitor <PV name (PV reading current valu)> the second PV read out hanged till completion of first PV complete it's delay time.
Means reason (1) delay is keep execution in loop and
prevent execution of other PVs record processing.
So i think i have to run loop in separate thread and kill that thread after completion of delay time and return asynSuccess. I am using asynDriver and it is necessory to return with asynSuccess.
Or is there any other way to do this?
With regards
Vikram
Dear all,
I want to know how to create and handle EPICS thread
at run time.
In my application, i am using serial communication. I am
reading/writing data from serial port.
I am using Asyn driver.
In my application i have
added one more functionality (asyn reason) to wait for
user-define time and then complete record processing.
In this function caput
<PV name> with time in seconds will wait for that much
seconds (I put one loop to read system time and check that
user-defined time has been reached or not) and then "return
asynSuccess".
This is working fine but
problem now is-> the system is not processing any other
record/PV till the delay time will complete. Means if i user
requested delay time for 5 minutes--> the system will not
process other reading or writing PV till 5 minutes complete.
How i can handle this
situation? while system is waiting for time delay other record
needs to be processed and have to give values or write to the
output.
I think i have to create
epicsThread for this delay. so it will run in separate thread
and other functions can work independently. But in my case
after completion of my delay i have to delete Thread ... How i
can delete that Thread and make sure that my asyn driver will
return asynSuccess for that delay function?
Thanks & regards
Vikram