Справка по DEMO_PAINT


Эта справка описывает ДЕМО конфигурацию DEMO_PAINT, служащую иллюстрацией "умных сенсоров", отображение которых осуществляется с использованием пользовательского сценария Painter(v) на языке DaqScript. В данном случае наибольший интерес представляет мнемосхема, содержащая "умные сенсоры". Эта мнемосхема активно использует такие возможности сенсоров, как:

  1. TagEval(v) - задает формулу для расчета тега изображения (идентификатора картинки) по значению v подключенной кривой/тега базы данных DAQ-системы.
  2. LedEval(v) - задает формулу для расчета циферблата (цифровой надписи) по значению v подключенной кривой/тега базы данных DAQ-системы.
  3. Painter(v) - задает пользовательский сценарий рисования сенсора по значению v подключенной кривой/тега базы данных DAQ-системы.

См. также справку по интерпретатору Painter(v).
См. также справку по функциям Painter(v).
См. также советы по сценариям Painter(v).
См. также памятку по функциям Painter(v).
См. также справку по библиотеке графических элементов GuiLib.


Например:

    [Circuit]
    Name = DemoPaint                         ; Set window name
    GeneralMap = .\DemoPaint.bmp             ; Set background picture
    StartupScript = [Circuit.StartupScript]  ; Set startup script section
    []

    [ConfigFileList] ; Include standard definitions
    ConfigFile = ~~\Resource\DaqSite\Default\Painter.crc
    []

    [Circuit.StartupScript] ; Run on startup
    alarm1=30               ; Set alarm1 level
    alarm2=60               ; Set alarm2 level
    []

    [SensorList]
    Sensor = Led1
    [Led1]                                                     ; Display with variable background
    Pos = 10, 10                                               ; Set sensor position
    LED = 7, 0, 3, %7.3f, [LedFont]                            ; Set display format
    TagEval(v) = gt(v,alarm1)+gt(v,alarm2)                     ; Background depends on v
    Tag#1 = 0, ~~\Resource\DaqSite\StdLib\Bitmaps\_LED07C.BMP  ; Background if v <= alarm1
    Tag#2 = 1, ~~\Resource\DaqSite\StdLib\Bitmaps\_LED07Y.BMP  ; Background if alarm1 < v <= alarm2
    Tag#3 = 2, ~~\Resource\DaqSite\StdLib\Bitmaps\_LED07R.BMP  ; Background if v > alarm2
    []

    [SensorList]
    Sensor = Bar1
    [Bar1]                                                                            ; Sensor with script painting
    Pos = 10 40                                                                       ; Set sensor position
    Tag#1 = 0, BAR.BMP                                                                ; Set background picture
    Painter(v) = [Bar1.Painter(v)]                                                    ; Set script to paint sensor
    []
    [Bar1.Painter(v)]                                                                 ; Draw a line script
    sw=sensorWidth()                                                                  ; Get sensor width
    sh=sensorHeight()                                                                 ; Get sensor height
    x1=2                                                                              ; Calculate coordinates of line
    y1=sh-2-v*(sh-4)/100                                                              ;
    x2=sw-2                                                                           ;
    y2=y1                                                                             ;
    color=clAqua*le(v,alarm1)+clYellow*gt(v,alarm1)*le(v,alarm2)+clRed*gt(v,alarm2)   ; Calculate color to draw
    setPen(color,psSolid,pmCopy,4)+drawLine(x1,y1,x2,y2)                              ; Set pen style and draw a line
    setBrush(clWhite,bsClear)                                                         ; Set brush style for text
    fh=-round(1.33*16)                                                                ; Find height of font 16 pt
    @font charset 204                                                                 ; Set font Charset Russian
    @font style 1                                                                     ; Set font Style Bold
    @font color %clBlue                                                               ; Set font Color
    @font height %fh                                                                  ; Set font Height
    @font name Courier New                                                            ; Set font Name
    tw=@textwidth %7.3f%v                                                             ; Get text width
    th=@textheight %7.3f%v                                                            ; Get text height
    setCursor(sw/2-tw/2,max(5,min(y2+2-(th+4)*gt(y2,sh/2),sh-th-5)))                  ; Set text cursor
    @print %7.3f%v                                                                    ; Print v value with format %7.3f
    []
  


Памятка по функциям Painter(v)


Имеется памятка для использования функций Painter(v):


Успешного использования Painter(v)!