aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/SideChains/WebRtc.NET/include/leptonica/gplot.h
blob: 9d74eafb6f29972f33f4d3c0949c5ef4e32e6644 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/*====================================================================*
 -  Copyright (C) 2001 Leptonica.  All rights reserved.
 -
 -  Redistribution and use in source and binary forms, with or without
 -  modification, are permitted provided that the following conditions
 -  are met:
 -  1. Redistributions of source code must retain the above copyright
 -     notice, this list of conditions and the following disclaimer.
 -  2. Redistributions in binary form must reproduce the above
 -     copyright notice, this list of conditions and the following
 -     disclaimer in the documentation and/or other materials
 -     provided with the distribution.
 -
 -  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 -  ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 -  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 -  A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL ANY
 -  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 -  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 -  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 -  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
 -  OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 -  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 -  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *====================================================================*/

#ifndef  LEPTONICA_GPLOT_H
#define  LEPTONICA_GPLOT_H

/*!
 * \file gplot.h
 *
 * <pre>
 *   Data structures and parameters for generating gnuplot files
 *
 *   We used to support X11 output, but recent versions of gnuplot do not
 *   support the X11 terminal.  To get display to your screen, use
 *   GPLOT_PNG output; e.g.,
 *       gplotSimple1(na, GPLOT_PNG, "/tmp/someroot", ...);
 *       l_fileDisplay("/tmp/someroot.png", ...);
 * </pre>
 */

#define  GPLOT_VERSION_NUMBER    1

#define  NUM_GPLOT_STYLES      5
enum GPLOT_STYLE {
    GPLOT_LINES       = 0,
    GPLOT_POINTS      = 1,
    GPLOT_IMPULSES    = 2,
    GPLOT_LINESPOINTS = 3,
    GPLOT_DOTS        = 4
};

#define  NUM_GPLOT_OUTPUTS     6
enum GPLOT_OUTPUT {
    GPLOT_NONE  = 0,
    GPLOT_PNG   = 1,
    GPLOT_PS    = 2,
    GPLOT_EPS   = 3,
    GPLOT_LATEX = 4
};

enum GPLOT_SCALING {
    GPLOT_LINEAR_SCALE  = 0,   /*!< default */
    GPLOT_LOG_SCALE_X   = 1,
    GPLOT_LOG_SCALE_Y   = 2,
    GPLOT_LOG_SCALE_X_Y = 3
};

extern const char  *gplotstylenames[];  /*!< used in gnuplot cmd file */
extern const char  *gplotfilestyles[];  /*!< used in simple file input */
extern const char  *gplotfileoutputs[]; /*!< used in simple file input */

/*! Data structure for generating gnuplot files */
struct GPlot
{
    char          *rootname;   /*!< for cmd, data, output            */
    char          *cmdname;    /*!< command file name                */
    struct Sarray *cmddata;    /*!< command file contents            */
    struct Sarray *datanames;  /*!< data file names                  */
    struct Sarray *plotdata;   /*!< plot data (1 string/file)        */
    struct Sarray *plottitles; /*!< title for each individual plot   */
    struct Numa   *plotstyles; /*!< plot style for individual plots  */
    l_int32        nplots;     /*!< current number of plots          */
    char          *outname;    /*!< output file name                 */
    l_int32        outformat;  /*!< GPLOT_OUTPUT values              */
    l_int32        scaling;    /*!< GPLOT_SCALING values             */
    char          *title;      /*!< optional                         */
    char          *xlabel;     /*!< optional x axis label            */
    char          *ylabel;     /*!< optional y axis label            */
};
typedef struct GPlot  GPLOT;


#endif /* LEPTONICA_GPLOT_H */
class="p">}; response.deviceinformation = &DevInfo; if (request->has_unixtime) utilsUpdateDateTime(request->unixtime);//(request->seconds); ReportStopReporting(); DiagnosticsStop(); JobStopReporting(); AlarmHandlingStop(); /* extern TangoVersion_t _gTangoVersion; extern char Dat[50]; extern char _gTangoName [MAX_STRING_LEN];//d */ DevInfo.builddate = Dat; DevInfo.name = _gTangoName; usnprintf(Version, 30, "%d.%d.%d.%d",_gTangoVersion.m_major,_gTangoVersion.m_minor,_gTangoVersion.m_patch,_gTangoVersion.m_build); DevInfo.version = Version; FPGA_ReadVersion(1, &Major, &Year, &Month, &Day); usnprintf(FPGA1Version, 30, "FPGA1: Ver %d %d/%d/20%d",HexToDecimal(Major), HexToDecimal(Day),HexToDecimal(Month),HexToDecimal(Year)); DevInfo.fpga1version = FPGA1Version; FPGA_ReadVersion(2, &Major, &Year, &Month, &Day); usnprintf(FPGA2Version, 30, "FPGA2: Ver %d %d/%d/20%d",HexToDecimal(Major), HexToDecimal(Day),HexToDecimal(Month),HexToDecimal(Year)); DevInfo.fpga2version = FPGA2Version; FPGA_ReadVersion(3, &Major, &Year, &Month, &Day); usnprintf(FPGA3Version, 30, "FPGA3: Ver %d %d/%d/20%d",HexToDecimal(Major), HexToDecimal(Day),HexToDecimal(Month),HexToDecimal(Year)); DevInfo.fpga3version = FPGA3Version; Read_HW_Version(BoardVersion, AssyVersion); DevInfo.boardrevision = BoardVersion; DevInfo.assemblyversion = AssyVersion; DevInfo.has_diagnosticsinterval = true; DevInfo.diagnosticsinterval = GetDiagnosticCollectionLimit(); response.has_isafterreset = true; response.isafterreset = FirstConnection; FirstConnection = false; responseContainer = createContainer(MESSAGE_TYPE__ConnectResponse, requestContainer->token, true, &response, &connect_response__pack, &connect_response__get_packed_size); //------------------------------------------------------------------------------------------- uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); size_t container_size = message_container__pack(&responseContainer, container_buffer); my_free(responseContainer.data.data); SendChars((char*)container_buffer, container_size); connect_request__free_unpacked(request,NULL); } void DisconnectionRequest(MessageContainer* requestContainer) { MessageContainer responseContainer; //DisconnectRequest* request = disconnect_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); DisconnectResponse response = DISCONNECT_RESPONSE__INIT; responseContainer = createContainer(MESSAGE_TYPE__DisconnectResponse, requestContainer->token, true, &response, &disconnect_response__pack, &disconnect_response__get_packed_size); ReportStopReporting(); DiagnosticsStop(); JobStopReporting(); AlarmHandlingStop(); //UART_ResetBuffers(); //------------------------------------------------------------------------------------------- uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); size_t container_size = message_container__pack(&responseContainer, container_buffer); my_free(responseContainer.data.data); SendChars((char*)container_buffer, container_size); //disconnect_request__free_unpacked(request,NULL); //CommunicationMailboxFlush(); //USBCDCD_Reinit(); } int KeepAliveOneSecondCounter = 0; #define KEEPALIVE_COMMUNICATION_ABORT_LIMIT 10 bool KeepAliveActive = false; bool keepalivetest = false; void KeepAliveRequestFunc(MessageContainer* requestContainer) { MessageContainer responseContainer; //KeepAliveRequest* request = keep_alive_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); KeepAliveResponse response = KEEP_ALIVE_RESPONSE__INIT; if (keepalivetest == false) KeepAliveOneSecondCounter = 0; KeepAliveActive = true; responseContainer = createContainer(MESSAGE_TYPE__KeepAliveResponse, requestContainer->token, true, &response, &keep_alive_response__pack, &keep_alive_response__get_packed_size); //------------------------------------------------------------------------------------------- uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); size_t container_size = message_container__pack(&responseContainer, container_buffer); my_free(responseContainer.data.data); SendChars((char*)container_buffer, container_size); //keep_alive_request__free_unpacked(request,NULL); } void KeepAliveOneSecondCall(void) { if (KeepAliveActive == false) return; if (FileUploadGetState()==false) return; KeepAliveOneSecondCounter++; if (KeepAliveOneSecondCounter > (KEEPALIVE_COMMUNICATION_ABORT_LIMIT/2)) { Report("keepalive danger",__FILE__,__LINE__,KeepAliveOneSecondCounter,RpWarning,msec_millisecondCounter, 0); } if (KeepAliveOneSecondCounter > KEEPALIVE_COMMUNICATION_ABORT_LIMIT) { Report("keepalive ",__FILE__,__LINE__,KeepAliveOneSecondCounter,RpWarning,msec_millisecondCounter, 0); //LOG_ERROR(KeepAliveOneSecondCounter, "Communication keepalive failed"); KeepAliveOneSecondCounter = 0; KeepAliveActive = false; //ReportStopReporting(); DiagnosticsStop(); JobStopReporting(); //AlarmHandlingStop(); //CommunicationMailboxFlush(); keepalivetest = false; //USBCDCD_init(); USBCDCD_Reinit(); //UART_ResetBuffers(); } }