; --------------------------------------------------------------------------------
; @Title: Menu for Analog Probe connected to IProbe (PowerTrace-II)
; @Description: 
;   This menu can be loaded with MENU.ReProgram t32adc_iprobe.men
; @Author: STA
; @Copyright: (C) 1989-2014 Lauterbach GmbH, licensed for use with TRACE32(R) only
; --------------------------------------------------------------------------------
; $Id: t32adc_iprobe.men 7587 2014-08-29 09:32:38Z estahleder $

; --------------------------------------------------------------------------------
;  Menu for Analog Probe connected to IProbe (PowerTrace-II)
; --------------------------------------------------------------------------------

add
menu
(
 

; --------------------------------------------------------------------------------
;   Trace pulldown submenue
; --------------------------------------------------------------------------------

  popup "&ProbeADC"
  (
    default
    menuitem  "[:aconfig]&Configuration..." "IP"
    menuitem  "[:aconfig]&Configuration ADC" "POD IP"
    menuitem  "[:aconfig]&Configuration Energy" "ETA"

; --------------------------------------------------------------------------------
; --------------------------------------------------------------------------------
    menuitem  "[:time]&Recoding Time"
    (

      &chan=0.
      if IP.ADC.ENABLE(ip.v0)
        &chan=&chan+1.
      if IP.ADC.ENABLE(ip.v1)
        &chan=&chan+1.
      if IP.ADC.ENABLE(ip.v2)
        &chan=&chan+1.
      if IP.ADC.ENABLE(ip.v3)
        &chan=&chan+1.
      if IP.ADC.ENABLE(ip.i0)||IP.ADC.ENABLE(ip.p0)
        &chan=&chan+1.
      if IP.ADC.ENABLE(ip.i1)||IP.ADC.ENABLE(ip.p1)
        &chan=&chan+1.
      if IP.ADC.ENABLE(ip.i2)||IP.ADC.ENABLE(ip.p2)
        &chan=&chan+1.

dialog
(&
        header "Expand Recoding Time"
        pos 2. 0.5 25. 1.
        text "Number of enabled ADC channels = &chan"
        pos 2. 1.5 25. 1.
        text "Time to trace (seconds), MaxTime=214sec"
        pos 2. 2.5 17. 1.
TIME:   EDIT "2." ""

        pos 1. 4.5  9.
        defbutton "Ok"
        (
          dialog.execute apply
          dialog.end
        )
        pos 25. 4.5  9.
        button "Cancel" "dialog.end"

        pos 13. 4.5  9.
apply:  button "Apply"
        (
          local &recstring &waitstring &cval &time &rectime &waittime

          &recstring=""
          &waitstring=""

;          &chan=dialog.string("CHAN")
          &cval=dialog.string("TIME")

          if "&cval"!=""
          (
            on error gosub 
            (
              &cval=""
              &time=""
              return
            )


            EVAL &cval
            &t1=eval.type()
;               &DInteger     DIntNum       DFloat       DHex        DNumeric
            if (&t1!=0x08)&&(&t1!=0x2E)&&(&t1!=0x10)&&(&t1!=0x04)&&(&t1!=0x3E)
            (
              &t1="&cval"+" no valid time value!"
              print %ERROR "&t1"
              &cval=""
            )
          )
          &time=&cval

          &time=&time*1000000000.0
          &rectimebase=524288.*1600.

          &compress=&time/&rectimebase
          &compress=conv.floattoint(&compress)-1.

          if &compress>128.
             &compress=256.
          else if &compress>64.
             &compress=128.
          else if &compress>32.
             &compress=64.
          else if &compress>16.
             &compress=32.
          else if &compress>8.
             &compress=16.
          else if &compress>4.
             &compress=8.
          else if &compress>2.
             &compress=4.
          else if &compress>1.
             &compress=2.
          else
             &compress=1.

          &comp="&compress"
          &comp=string.cut("&comp",-1)+"/1"

          if IP.ADC.ENABLE(ip.v0)
             POD.ADC IP V0 ON &comp
          if IP.ADC.ENABLE(ip.v1)
             POD.ADC IP V1 ON &comp
          if IP.ADC.ENABLE(ip.v2)
             POD.ADC IP V2 ON &comp
          if IP.ADC.ENABLE(ip.v3)
             POD.ADC IP V3 ON &comp
          if IP.ADC.ENABLE(ip.i0)||IP.ADC.ENABLE(ip.p0)
             POD.ADC IP I0 ON &comp
          if IP.ADC.ENABLE(ip.i1)||IP.ADC.ENABLE(ip.p1)
             POD.ADC IP I1 ON &comp
          if IP.ADC.ENABLE(ip.i2)||IP.ADC.ENABLE(ip.p2)
             POD.ADC IP I2 ON &comp
        )
      )
    )
; --------------------------------------------------------------------------------
    popup "[:alist]&List"
    (
      default
      menuitem "&Default"        "IP.List"
      menuitem "&All"            "IP.List IP.V0 IP.V1 IP.V2 IP.V3 IP.I0 IP.I1 IP.I2 IP.P0 IP.P1 IP.P2"
      menuitem "[:correlate]&Tracking with Draw"
      (
        WINPOS , , , , , 3. 
        IP.Draw /ZoomTrack
        IP.List /Track
      )
    )
;     -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
    popup "[:adraw]&Draw"
    (
      default
      menuitem "&Default" 
      (
        WINPOS , , , , , 3. 
        IP.Draw
      )
      menuitem "&Channel V0-V1-V2-V3" 
      (
        WINPOS , , , , , 3. 
        IP.Draw IP.V0 IP.V1 IP.V2 IP.V3
      )
      menuitem "&Channel V0"      "IP.Draw IP.V0"
      menuitem "&Channel V1"      "IP.Draw IP.V1"
      menuitem "&Channel V2"      "IP.Draw IP.V2"
      menuitem "&Channel V3"      "IP.Draw IP.V3"
      menuitem "&Channel I0-I1-I2"   
      (
        WINPOS , , , , , 3. 
        IP.Draw IP.I0 IP.I1 IP.I2
      )
      menuitem "&Channel I0"      "IP.Draw IP.I0"
      menuitem "&Channel I1"      "IP.Draw IP.I1"
      menuitem "&Channel I2"      "IP.Draw IP.I2"
      menuitem "&Channel P0-P1-P2"   
      (
        WINPOS , , , , , 3. 
        IP.Draw IP.P0 IP.P1 IP.P2
      )
      menuitem "&Channel P0"      "IP.Draw IP.P0"
      menuitem "&Channel P1"      "IP.Draw IP.P1"
      menuitem "&Channel P2"      "IP.Draw IP.P2"

      menuitem "[:correlate]&Tracking with List"
      (
        IP.List /Track
        WINPOS , , , , , 3. 
        IP.Draw /ZoomTrack
      )
    )
    addhere
    separator
    menuitem "[:save]Save trace data ..."         "IP.SAVE"
    menuitem "[:load]Load reference data ..."     "IP.LOAD *"
    separator
;     -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
    menuitem "&Reset"                       "IP.RESet"
  )
)
; --------------------------------------------------------------------------------
; --------------------------------------------------------------------------------
