Accuracy in custom Clock

Hi all! I've made a simple clock meant to measure computer uptime. I'm using javax.swing.Timer with a delay of 1000 milliseconds. By each event triggered by the timer a variable (long as datatype) holding the total elapsed seconds is incremented. My clock object is does NOT implement Thread, suggestions on this?
Today I've noticed that my clock was running slower than the clock in Win2k Pro. During 4 hours and 45 minutes I lost 45 seconds!!! Is there a better way to measure time in Java? Would I gain if my clock object impements Thread?

Thanks for your answer. However, I do not want to depend on any systemtime since I've encountered viruses that keeps adjusting systemtime. In Sweden we have so called Summer time meaning that the clock is set 1 hour earlier which would mess up my uptime application.
Do you think I'll get more accuracy implementing Thread or Runnable?
I've just noticed the method java.util.Timer.schedule() http://java.sun.com/docs/books/tutorial/essential/threads/timer.html which seem reasonable...

Similar Messages

  • Making a customized clock

    Hello  I'm building a customized clock at the moment. For seconds i'm using 12 movieclips with bars inside (fig1)
    For every second a bar lights up. I can get the number of "group" to pick and the number of "bar" to light up but i can't actually make them light up because I'm not sure how to actually select the group of bars according to the time. My movieclips are called "group0", "group1" etc. and inside I made different states depending on how many bars light up (fig2)
    fig1 fig2
    Here's my code:
    var now:Date;
    var hour:Number;
    var min:Number;
    var sec:Number;
    var group_access:Number;
    var specificbar:Number;
    addEventListener(Event.ENTER_FRAME, settime);
    function settime (evt:Event) {
          //get time
          now = new Date();
          //check hours and set
          if (now.getHours() > 12) {
         hour = now.getHours() - 12;
          } else if (now.getHours()==0) {
           hour=12;
          } else {
           hour=now.getHours();
          //set min and sec
          min=now.getMinutes();
          sec=now.getSeconds();
    addEventListener(Event.ENTER_FRAME, setSecs);
    function setSecs (evt:Event) {
    //Task: Light up a bar every second
    group_access = (Math.floor ( (sec*2 )/10) ); // to selects the right group of bars eg. 33 seconds will be group 6
    specificbar = sec-(group_access * 5); // to light up the right bar inside the group
    // Need help with this part to work out how to access the moviclip according to the seconds on the clock
    Really worried right now, please help and thank you

    ok i've traced :
    trace(group_access , specificbar);
    result:
    3  4
    3  4
    3  4
    3  4
    4  0
    4  0
    4  0
    seems right =S
    group no.3 and bar no. 4
    then group 4

  • Uploading Data onto a buffer that outputs with a custom clock pulse

    Hello,
    I am currently trying to develop a program that will allow me to upload on or off values to a buffer, and then output these values based on a custom digital waveform I created.  Using a notepad file, I am able to create a digital waveform that is split into microsecond increments. For example if I type 1    0    1    0    0 in the notepad file, the LabVIEW program will create a digital waveform that is high for 1 microsecond and then low for 1 microsecond, then high for 1 microsecond and low for the next 2 microseconds.  After expanding this file to have high and low values covering 30 seconds of time  I was hoping to use this as a clock pulse for releasing the high and low values for 8 channels on a PCI 6220 DAQ board.  If anyone has suggestions on how to go about this it would be extremely helpful. Thank you 
    Attachments:
    Digital Waveform DAQ Assistant 2010 SP2.vi ‏31 KB

    Hi EESteve1992,
    Here are some resources to help you load your digital waveform onto your DAQ application.
    This forum post goes over how to generate a waveform using DAQ:
    http://forums.ni.com/t5/LabVIEW/digital-waveform-output/td-p/378020
    This example gives an example of how to load your data onto your DAQ:
    https://decibel.ni.com/content/docs/DOC-12482
    Hopefully this will help you get started.
    Paolo F.
    National Instruments
    Applications Engineer

  • PXI-6608: Typical accuracy & stability for a 10 Hertz pulse-train output ?

    I need to generate a very accurate and stable
    10 Hertz continuous pulse-train for a test system.
    What typical frequency accuracy & stability
    can expect to achieve from the PXI-6608 for
    a generated 10 Hertz continuous pulse-train.
    I have read the specs ... just want to make
    certain I am interpreting them correctly.
    Thanks!

    Hello there!
    Though this was long time ago already I need confirmation on the same kind of calculations.
    (However, in my case, I am measuring frequency, not reading, also with the 6608)
    I thought the stability of 6608 OCXO was 75ppb per year (or 45ppb as stated in the OCXO notes). So therefore 11.25ppb/day. Not 0.45ppb/day.
    In any case, if the stability of the OCXO is 75ppb :
    - Stability on the 10Mhz clock: 10,000,000*75/1,000,000,000 = 0.75Hz
    The question is, if you measure a 10Hz signal with this device, will you have a 0.75Hz accuracy? Or would you have the accuracy of the clock that you use to MEASURE (using a 100Khz timebase):
    - Stability on time base: 100,000*75/100,000,0000 = 0.0075Hz
    So apart from my measurement error (according to http://zone.ni.com/devzone/cda/tut/p/id/3619) I have to add up this error like this:
    TOTAL ERROR = MEASUREMENT ERROR + CLOCK ERROR = X + 0.0075hZ
    Being XX the calculated error made by the frequency estimation algorithm.

  • MSI HD4830 OC - OC still doesn´t work

    You should know about this problem, there is already one thread, but i want wo know why this sill doesn´t work.
    9.2 with every program overclocking isn´t possible, so with 9.3 and 9.4, too.
    I thought with 9.5 the problem will get fixed, but nothing happend with new catalyst 9.5 already on ati/amd server.
    Thats really sad.

    Greetings,
    I have installed the Catalyst 9.5 driver suite and have a modified bios that sets my Clock speeds to what I wanted (625/1000) stable safe OC imo. Anyway I was stuck using Cat 8.12 Hotfix2 because of the overclock issue not working and after testing with 9.5 my custom clock speeds were indeed working and being reported as 625/1000 in catalyst and GPU-z. So I am unsure if the stock bios is working or not as mentioned I modified mine with RBE+Winflash. But it does work on my MSI R4830-TD1G-OC cards in crossfireX with both overclocking just fine. However when I run DirectX 10-10.1 games CCC crashes nearly every time and recovers but this causes some games to freak out going into window mode or when switching to desktop to show the error unable to switch back to the game in some cases. So I have rolled back to 8.12 hotfix2 until 9.6 gets released and hope that the problem is solved and overclocking still works.

  • Threads write and move files

    Hi,
    I'm trying to run the codes below with 200 threads using JMeter simulation (TCP connection). Here's my logic:
    - clients connect to a server, server accepts and creates new thread
    - the thread suppose to write the data into a file, but the file must be less than some size, in the case below is 200 bytes
    - when the 200 bytes size limit is reached, the thread needs to move that file into another folder and then create a new file for the data to be written
    - the writing data part is fine, but the moving data is not (many files aren't being moved)
    - i should also mention, i declared the fname to be static variable (to be shared by threads)
    So would anyone please help me like to give me advices if my codes below will work with the scenario above or if i need to approach the problem differently?
    Thanks
    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    while((data = in.readLine()) != null) {
        socket.setSoTimeout(5000);
        // data should be in the form of this regex
        data = (data.replaceAll("[^0-9A-Za-z,.\\-#: ]", "")).trim();
        String [] result = data.split(",");
        if (result.length == 19) {
            if ((fname.trim()).equals("")) {
                DateFormat dateFormat = new SimpleDateFormat("yyMMddHHmmssSSSS");
                Date date = new Date();
                fname = "log_"+dateFormat.format(date)+"_.txt";
            else {
                File outFile = new File("temp\\"+fname);
                //System.out.println("outFile.length(): " + outFile.length());
                // check if file is > filesize
                if (outFile.length() > 200) {
                    fdata = fname;
                    DateFormat dateFormat = new SimpleDateFormat("yyMMddHHmmssSSSS");
                    Date date = new Date();
                    fname = "log_"+dateFormat.format(date)+"_.txt";                               
            synchronized (fname) {
                write(data);
                move(fdata);                           
    }Edited by: xpow on May 16, 2009 2:21 AM

    xpow wrote:
    i think 'SSSS' is fine, because it extends the 'SSS' which is a date placeholder. The files that I try to write to are logs file. I actually having trouble to write it, that's why i need to include the 'SSSS'.If you want each thread to have its own file, 'SSSS' may not be good enough. Java is extremely fast at creating objects, and you could easily have 10 threads competing to write to the same temp file. As I said above, if you don't want this, add the Thread ID to your filename. Remember, just because Java time fields allow milliseconds doesn't mean they provide that accuracy. The clock on my home computer actually ticks over about every 15ms.
    That's indeed one of the problem that I'm facing right now. I thought synchronization will take care of this problem.Only if all threads share the same object. As far as I can see, you are synchronizing on a filename created within the thread itself (I'm assuming your original fragment is part of the run() method) so the only synchronization you'd get would be from the I/O itself.
    Yes, I am aware of this fact too, once the code is decent, it'll be moved to unix systemEven so, make sure you clean up your files after you're done with them. It seems that this setup has the potential to create thousands of files, and even a Unix filesystem has its limits.
    My problem is that: there's a tcp server that listens to clients and receive that from it. The data needs to be inserted to the database. But with the volume of clients that connect to the server at the same time, I was thinking it's better to write it to temp file first (with filesize limitation), then to destination folder. There will be another process whose jobs is to parsing the files and move it into database. OK, so I presume each Thread is listening to output from a specific client, with a time limit for waiting (again, this isn't my forte, but I notice you have a 5 second timeout on the socket).
    A few other problems I see with your code:
    1. You've given each thread a limit of 200 bytes; on a decent size disk, the blocksize will be 4K (or even 8), which means that even if you write a file of 200 bytes, it will take up 4K on the disk.
    2. You create a new File and FileWriter object every time you write a chunk of data, which creates a lot of work for the garbage collector. Create them only when you need to open a new file and simply use them until you want to close it and move it. To facilitate this, pass Files between your methods, not names. In fact, for the write method, you can pass the FileWriter.
    3. The regex you use to filter your data includes "\\-#" which is not a valid range. It may well work, but it's always better to put '-' at the end of a metacharacter if it's not part of a range. Also, is a space (' ') the only valid space character you can receive? If, for example, the data could include tabs, you might be better off using '\s' (in the string you'll need "\\s").
    A few other suggestions (I'm assuming that all data read from a particular socket before a timeout comes from a single client):
    1. Make your size limit much bigger and a multiple of 1000 bytes (this should allow for any extra characters that may be added by the operating system). I'd suggest 4,000.
    2. Split the process of reading and writing into two separate threads. Disk I/O is, almost certainly, by far the slowest part of this process and therefore the most likely to block.
    One possibility for (2) is to append your validated data lines to a StringBuffer or StringBuilder and, when your size limit has been reached, copy the contents, pass the copy to a new writer thread, clear your buffer, and continue the process.
    The advantage of this is that your reader thread will only ever be blocked on input, and each writer thread will have a chunk of data that it knows it can put in one file (and probably directly into the 'inbox' directory).
    It still might not be a bad idea to have the "reader" thread create the filenames (don't forget to include the thread ID) and have it keep a "chunk" counter. The filename then becomes date/time plus reader-thread-ID plus chunk#, which ensures they will always be in sequence for your parser.
    Your code might then be something like:
    public class ReaderThread implements Runnable {
       private static final CHUNK_SIZE = 1000;
       private static final DateFormat dateFormat =
               new SimpleDateFormat("yyMMddHHmmssSSSS");
       private final String timeStamp =
               dateFormat.format(new Date());
       // Give your buffer enough extra capacity to complete a line.
       // (this'll just make it run a bit quicker)
       private Stringbuilder data_chunk = new StringBuilder(CHUNK_SIZE + 100);
       private int chunk_counter = 0;
       public void run() {
          // validate your lines as before, and inside your
          // 'if (result.length == 19)' block...
             data_chunk.append(data);
             if (data_chunk.length() >= CHUNK_SIZE)
                handoff(data_chunk);
          // remove all your filename stuff and the synchronized block
       // this is the method that hands off your data "chunk" to the writer thread
       private void handoff(StringBuilder chunk) {
          StringBuilder chunkCopy = new StringBuilder(chunk);
          String outfile = String.format("%s.%d.%7d",
                      timeStamp, this.getId(), ++chunk_count);
          WriterThread w = new WriterThread(chunkCopy, outfile);
          new Thread(w).start();
          chunk.delete(0, chunk.length());
    }This is just a possibility though, and there may be better ways to do it (such as communicating directly with your parser class via a Pipe).
    I'll leave it to you to write the WriterThread if you do decide to try it this way.
    HIH
    Winston

  • Generate a single pulse - long width ( 160sec)

    Hello,
    I have a DAQ Pad6052E. I want to generate a single pulse with one of the 2 counter/timer. It works for pulse width (high state) below ~160secondes. For my application I need to generate a much longer pulse width.  I want to have a pulse width >200 secondes.
    If somebody can give me some advices, that would be very appreciated.
    Thanks,

    In addition to JB's ideas, here's another one if your other counter isn't being used.
    Use the other counter to generate your own custom clock.  Let's suppose it's at 1000 Hz.  Then setup the counter you really care about to use the 1000 Hz clock signal as its timebase.  This will extend your duration capability by a factor of 100.
    Your duration limit is based on the ratio of count register size to timebase frequency.  Your board's counters max out at 2^24.  Your max duration is approximately (2^24 / timebase freq).  The lowest internal timebase is 100 kHz which is why you're limited to about 167 seconds.  With your custom 1 kHz clock, you'll get 100x that much.
    -Kevin P.

  • Adding AM/PM to time

    I know this is hardly the most important questioned asked here but I have always had an issue getting AM/PM to display on the menu bar, 10.5 is still no different to all the other OSX systems. What am I doing wrong, the display AM/PM check but is always greyed out, I've gone to International settings and created a custom clock setup but it still does not work. Can some solve this for me once and all.

    You could try following Michael Conniff's instructions to customize the clock display:
    http://discussions.apple.com/thread.jspa?threadID=121842&tstart=0
    I used it on my clock in Leopard, and it worked splendidly, here's what I see:
    Sun 11 Nov 7:37 PM
    Now if only Apple would add a drop down mini-calendar I would be completely happy...
    Francine
    Francine
    Schwieder

  • How to count time precisely?

    I was trying to count time using a VI like the one attached.
    My trouble is that this is not couting correctly. There is a possible reason I observed. 
    Maybe the computer is not able to process the VI as fast as necessary. 
    I thought about this because, when in edition mode the time counting was very wrong, and, when I created an aplication and installed it, it was running ok, as it got "light". But today, when I tryed to use this aplication with an old computer it didn't work. The clock is delaying.
    Is it possible to count the time correctly? 
    I'm using a DAQ6009 to do my works, my VI is pretty big, and I need an iteration at each 1 ms (milisecond) as I'm using digital inputs to count 5 encoders events (I know that this is not the correct way to count encoders, but this is the only way I can do that, and it's working).
    Thank you all in advace! hope you can help me!
    hugs!
    Solved!
    Go to Solution.
    Attachments:
    teste.vi ‏6 KB

    OK.  Let me try to help you understand a few things.
    The Tick Count and Wait (and Wait Until Next ms Multiple) functions all use a 1 kHz clock that is derived from the processor clock. The accuracy of these clocks is not great, although probably comparable to your stopwatch accuracy.  Any timing generated by these functions will show some differences from the time of day clock as it is derived from a different oscillator.
    The front panel updates are timed both by LabVIEW and the OS. Most screens are updated 60-80 times per second, maximum. Depending on what else the OS is doing, a screen update could be delayed 10s of milliseconds or longer.  It is certain that not every value at the output of the Add function will be displayed.
    The Wait Until Next ms Multiple will wait more than 1 ms if the other code in the loop takes longer than 1 ms.  I am not sure, but I think the indicator is buffered so that any delays by the OS in updating the display should not slow the loop. I tried removing the indicator and it did not seem to make much difference.
    I modified your VI to provide several indications of performance. First, I added the three-frame sequence structure to allow timing of the loop. Second, I changed to a for loop which will run a preset number of iterations. Third, I connected the output of the Wait Until Next ms Multiple timer to an autoindexing tunnel so that a record of the time of each iteration appears in the Ticks array. I calculated the differences between successive times and displayed that on a graph so that you can see the performance.
    I did not mean to sound critical of your use of English.  You write in English much better than I could in your language!  The point I was trying to make is that general descriptions such as "is not counting correctly" without quantitative results or evidence to support the claim do not have enough information to help us help you.
    Lynn
    Attachments:
    teste.2.vi ‏13 KB

  • Problems retriggering

    Greetings. I am using a PXI 6289 and I need to generate a fast continous pulse traing that is synced with an external clock. I have foudn several examples which at the core all have same base. Use a counter to generate a finite number of pulses that is trigered from the external clock and then retrigger it.
    http://sine.ni.com/devzone/cda/epd/p/id/2415  Here is the most basic example.
    So I have a 5kHz clock and I am putting it into the SRC of counter 0 (PFI8)
    I use that as my trigger for CTR 0 output. I tell it to make a 50kHz clock and make 100pulses.
    It does this well except when it goes to retirgger it misses one full cycle of the external clock. So the new pulse train is not continous. I have been looking through the posts and this should work. If you do 99 pulses you can see it does not miss a full cycle but the two clocks are no longer synched if you look at the signals on a scope.
    In the end I jsut need to generate a fast clock from a slower clock and it needs to be continous. I would like it to work with the 6289 but I am beginning to open my mind to getting a new card if this doesn't work.
    If anyone has any suggestions I would greatly appreciate it.
    ~D

    Hi Glish Lab,
    The reason you are missing a full cycle of the external clock is likely due to the trigger rearm time on the PXI-6289.  I have a few questions as well as suggestions that might help us find a better solution for you. 
    Do you know the accuracy of the 5kHz external clock?  I ask this because this would help us determine if you might be better off using a phase-locked loop (PLL) with the PXI backplane clock.  Depending on which PXI chassis you are using, the accuracy of the backplane clock might differ but is around +/- 25 PPM for the PXI 1042.  If your external clock is less accurate than the backplane clock, you might be better off bringing it in as a reference clock so that it will be PLL'd to the higher accuracy backplane clock. 
    The only problem PLLing to the backplane clock is that they are only phase locked and not synchronized.  You will have to wait a few cycles of the 5kHz external clock for the backplane clock to fully PLL.  This also means to synchronize the two you will need to provide a digital pulse as a start trigger (after these few cycles) to synchronize the backplane clock.  You would then be able to divide down the backplane clock by an integer to adjust the sample clock to whatever you would like.  Regardless of whether the accuracy of your clock is greater or less than the backplane, you can still bring in the external sample clock as a reference clock (PLL'd to the backplane) and provide a digital pulse start trigger to gain a faster synchronized clock. 
    If you could provide more information about the source of the external sample clock and details of the other devices you're using in your application, it might help me find a better solution. 
    I hope this helps,
    Paul C.
    Message Edited by Paul C. on 10-25-2007 03:22 PM

  • Why is Flash's Rectangle.intersection() slow?

    For some reason I can't fathom, I have long been able to get faster intersection tests for my own version of the Rectangle object. This is silly. Why should my code be any faster than the Flash player team's code - who have had 10 iterations of the Flash player to get it right?
    example:
    package {
         import flash.display.Sprite;
         import flash.events.Event;
         import flash.geom.Rectangle;
         import flash.utils.getTimer;
          * @author Aaron Steed, robotacid.com
         public class Main extends Sprite {
              public function Main():void {
                   if (stage) init();
                   else addEventListener(Event.ADDED_TO_STAGE, init);
              private function init(e:Event = null):void {
                   removeEventListener(Event.ADDED_TO_STAGE, init);
                   // entry point
                   var t:int, i:int;
                   var flashRect:Rectangle = new Rectangle();
                   var myRect:Rect = new Rect();
                   t = getTimer();
                   for(i = 0; i < 1000000; i++){
                        flashRect.intersects(flashRect);
                   trace(getTimer() - t);
                   t = getTimer();
                   for(i = 0; i < 1000000; i++){
                        myRect.intersects(myRect);
                   trace(getTimer() - t);
    class Rect{
         public var x:Number;
         public var y:Number;
         public var width:Number;
         public var height:Number;
         public function Rect(x:Number = 0, y:Number = 0, width:Number = 0, height:Number = 0){
              this.x = x;
              this.y = y;
              this.width = width;
              this.height = height;
         /* Do two Rects intersect? */
         public function intersects(b:Rect):Boolean{
              return !(this.x > b.x + (b.width - 1) || this.x + (this.width - 1) < b.x || this.y > b.y + (b.height - 1) || this.y + (this.height - 1) < b.y);
    Hell, even if I write a separate method and use
    return !(this.x > b.x + (b.width - 1) || this.x + (this.width - 1) < b.x || this.y > b.y + (b.height - 1) || this.y + (this.height - 1) < b.y);
    with a flash Rectangle it's still faster than using crappy old Rectangle.intersects()
    Why?
    Is there anyone at Adobe that could fix this, as I'm a bit fed up of up of having to write my own versions of Flash's geometry objects.

    Hi, I tried running a benchmark to test the speed, and accuracy of your intersects(), and I discovered that yours is not only 2x faster on my computer, it is also more accurate/robust than Flash's Rectangle.intersects()!
    Below is my benchmarking code, just copy into the first frame of a new Flash document and run.
    I have no idea why your suggestion (http://bugs.adobe.com/jira/browse/ASL-65) is marked resolved, when it is clearly not,
    but I have filed/cloned a bug report (http://bugs.adobe.com/jira/browse/FP-5350) regarding the issue, and also listing your version of intersects() as a workaround.
    Thanks, and cheerio XD.
    import flash.geom.Rectangle;
    import flash.utils.getTimer;
    import flash.text.TextField;
    function normal(i1:int, i2:int):int {
        var totalTime:int = 0;
        for (var i:int=0; i<i1; i++) {
            var rect1:Rectangle = new Rectangle(Math.random()*200-100, Math.random()*200-100, Math.random()*200-100, Math.random()*200-100);
            var rect2:Rectangle = new Rectangle(Math.random()*200-100, Math.random()*200-100, Math.random()*200-100, Math.random()*200-100);
            var startTime:int = getTimer();
            for (var j:int=0; j<i2; j++) {
                rect1.intersects(rect2);
            totalTime += getTimer() - startTime;
        return totalTime;
    function custom(i1:int, i2:int):int {
        var totalTime:int = 0;
        for (var i:int=0; i<i1; i++) {
            var rect1:Rectangle = new Rectangle(Math.random()*200-100, Math.random()*200-100, Math.random()*200-100, Math.random()*200-100);
            var rect2:Rectangle = new Rectangle(Math.random()*200-100, Math.random()*200-100, Math.random()*200-100, Math.random()*200-100);
            var startTime:int = getTimer();
            for (var j:int=0; j<i2; j++) {
                intersects(rect1, rect2);
            totalTime += getTimer() - startTime;
        return totalTime;
    function intersects(a:Rectangle, b:Rectangle):Boolean {
        return !(a.x > b.x + (b.width - 1) || a.x + (a.width - 1) < b.x || a.y > b.y + (b.height - 1) || a.y + (a.height - 1) < b.y);
    function test(i1:int, i2:int):int {
        var totalTime:int = 0;
        for (var i:int=0; i<i1; i++) {
            var rect1:Rectangle = new Rectangle(Math.random()*200-100, Math.random()*200-100, Math.random()*200-100, Math.random()*200-100);
            var rect2:Rectangle = new Rectangle(Math.random()*200-100, Math.random()*200-100, Math.random()*200-100, Math.random()*200-100);
            var startTime:int = getTimer();
            for (var j:int=0; j<i2; j++) {
                try {
                    assert(intersects(rect1, rect2) == rect1.intersects(rect2));
                catch (e:Error) {
                    this.x = 100;
                    this.y = 100;
                    graphics.clear();
                    graphics.beginFill(0xff0000, 0.5);
                    graphics.drawRect(rect1.x,rect1.y,rect1.width,rect1.height);
                    graphics.endFill();
                    graphics.beginFill(0x00ff00, 0.5);
                    graphics.drawRect(rect2.x,rect2.y,rect2.width,rect2.height);
                    graphics.endFill();
                    trace(rect1, rect2, intersects(rect1, rect2), rect1.intersects(rect2));
                    throw new Error("Assertion failed!");
            totalTime += getTimer() - startTime;
        return totalTime;
    function assert(expression:Boolean):void {
        if (!expression) throw new Error("Assertion failed!");
    trace('Rectangle.intersects():', normal(1000, 1000));
    trace('custom intersects():', custom(1000, 1000));
    trace('test accuracy of custom intersects():', test(1000, 1000));

  • How to 'Stop the Clock' for SLA when in customer action?

    Hi
    Does anyone know if the functionality exists so that when a support message goes into 'customer action' or 'solution proposed' status the SLA stops counting down until the message is put back into 'in process'?
    The SLA is out of your control when it is waiting for an action from the user so it should be possible for the clock to stop on the SLA automatically when this is the case and the SLA should re-start and re-calculate the new 'completion by' date.
    I know that this is standard in many other types of Helpdesk software but can't find the way to do this with Service Desk.  Can anyone help?
    We are on SM7 SP22. 
    Thanks very much for your help.
    Regards
    Ashley

    Hello Ashley,
    Have you seen this document [Advanced Quick Guide for VARs Service Desk (Jan 2010)|https://websmp101.sap-ag.de/~form/sapnet?_SHORTKEY=01100035870000722612&_OBJECT=011000358700000122472008E]   ?
    You might want to reference section 5. Service Level Agreements.
    Regards,
    Paul

  • How fast and accuracy of the FPGA's clock reference

    I may need to make a application as below, but the requested accuracy is around 10ns. Can FPGA help on it? I am new newphie on FPGA.
    - Triggered by an external pulse and start a accurate number counter for a high frequency clock signal(Maybe 100MHz)
    - Triggered by another external channel to stop the counter and lock the result.
    - From the lock result, calculate the time duration from the 1st to 2nd trigger.
    Thanks,
    Solved!
    Go to Solution.

    Hey Christian,
    I wonder about the accuracy you have stated for the FPGA Clock. In reference to what time the accuracy can be given as 250 ps? When dealing with the accuracy of my counters, I always assumed that the accuracy is the same as the real time clock (200ppm / 35ppm). If the accuracy is 250ps per cycle, it would be equal to an error of 1 %... or 250 ppb in one second. Both does not occur realistic to me.
    can you please speciify that information?
    Thank you, Christian

  • Custom POD and Clock-In/Out

    Dear Experts,
    did someone face the problem with Custom PODs (Custom POD Plugin, changing the "manufacturing" path of POD to custom one) and Clock-In/Out?
    When I turned the Auto Clock-In on on a custom POD, I can not reach the POD.
    Ist this a bug or do I have to change something in the settings?
    This occurs on SAP ME 6.1.4 Patch 38.
    The error message is, that the POD could not be found. Does this something have to do with auto clock in, the redirect and a custom pod?
    Regards,
    Andrej

    Hi Oksana,
    thank you for your reply.
    I simply have a custom POD plugin. Therefore, my POD does not use the standard "manufacturing" link, but a "custom_manufacturing".
    I have configured shifts and labor tracking. The option to automatically clock in at log-in is enabled.
    After I log in to ME, I recieve the notification of sucessfull clock in. But after I acess my custom POD with the "custom_manufacturing" link, I do get an "resource not found" error.
    After I disable Clock-In at Log-On, I do not get this error.
    If you need more detailed information, just point me to the direction you need, as of my view point the root cause is clear, as after disabling the option, everything works.
    I do not have tested this with 15.0, so I do not know if this is ME 6.1.4 issue only.
    Thnaks in advance.
    Regards,
    Andrej

  • Can you make a custom alarm clock tones

    is it possible to make a custom alarm tone such as a voice recording?

    You would need to do so on a computer and then import the ring tone to the device via iTunes.
    alternately, you can purchase tones from the iTunes store directly from the app, or set it to use any song you have in the Music app..

Maybe you are looking for

  • How do I delete an Apple discussion account?

    I am wondering if you can delete one of your Apple discussion account, so that the username is not longer active for that account.

  • Menu fonts all turn into boxed capital "A"s

    At some point last night, while I was working on my 10.4.9 PowerMac G4, something happened and my menu fonts all turned into some glyph that looks like a capital "A" inside of a box. All of the text on the desktop, menu bar, window titles, and the le

  • Lost all photos and albums in iPhoto version 9.4.3

    Hi all, I'm currently using iPhoto version 9.4.3. Didn't do anything out of the norm but lost all my imported photos from my iPhone that I've painstakingly put into albums. Only thing I did differently was shutting down my laptop cos I was catching a

  • Importing Adobe photshop album files and tags

    I am moving off the PC and onto a new Mac. I am using Adobe Photshop album on my PC and have all my 5 GB of pictures "tagged" with information on who is in it and where it was taken. I will be copying the photos onto the mac and want to use IPHoto. I

  • HELP!!!! Duplicate Object

    Hi all, I have been working on an animation where an object is supposed to vibrate and rotate on itself within a specific area of my stage. I have been successful in having the object vibrate, rotate and start at the specified location. What I am hav