Skip to content

Commit

Permalink
initial web client code
Browse files Browse the repository at this point in the history
  • Loading branch information
dohnarms committed Nov 17, 2020
0 parents commit d272dd1
Show file tree
Hide file tree
Showing 7 changed files with 1,539 additions and 0 deletions.
48 changes: 48 additions & 0 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
Copyright (c) 2017-2020, UChicago Argonne, LLC

All Rights Reserved

Alive Web Client

Beamline Controls Group, Advanced Photon Source, Argonne National Laboratory


OPEN SOURCE LICENSE

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. Software changes,
modifications, or derivative works, should be noted with comments and
the author and organization's name.

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.

3. Neither the names of UChicago Argonne, LLC or the Department of Energy
nor the names of its contributors may be used to endorse or promote
products derived from this software without specific prior written
permission.

4. The software and the end-user documentation included with the
redistribution, if any, must include the following acknowledgment:

"This product includes software produced by UChicago Argonne, LLC
under Contract No. DE-AC02-06CH11357 with the Department of Energy."

****************************************************************************

DISCLAIMER

THE SOFTWARE IS SUPPLIED "AS IS" WITHOUT WARRANTY OF ANY KIND.

Neither the United States GOVERNMENT, nor the United States Department
of Energy, NOR uchicago argonne, LLC, nor any of their employees, makes
any warranty, express or implied, or assumes any legal liability or
responsibility for the accuracy, completeness, or usefulness of any
information, data, apparatus, product, or process disclosed, or
represents that its use would not infringe privately owned rights.

****************************************************************************
55 changes: 55 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@


prefix = /usr/local
cgi_bin_dir = $(prefix)/cgi-bin


#### Set any of these if library or header not in default search path
#AliveClient_Library_Dir = /usr/local/lib
#AliveClient_Include_Dir = /usr/local/include
#DCGI_Library_Dir = /usr/local/lib
#DCGI_Include_Dir = /usr/local/include


#### Set either of these if you don't want to use either of the
#### default values for the alive database address and port that
#### are built into the alive-client library
#Server = localhost
#DB_Port = 5679


# You can put local overrides in a separate file if you want
-include LocalOptions

#####################################################

export AliveClient_Library_Dir
export AliveClient_Include_Dir

export DCGI_Library_Dir
export DCGI_Include_Dir

export Server
export DB_Port


.PHONY : all clean install uninstall

all:
make -C src all

clean:
make -C src clean


INSTALL_MKDIR = mkdir -p
INSTALL_BIN = install -c -m 0755
UNINSTALL_RM = -rm

install : all
$(INSTALL_MKDIR) $(DESTDIR)$(cgi_bin_dir)
$(INSTALL_BIN) src/ioc_alive.cgi $(DESTDIR)$(cgi_bin_dir)/

uninstall :
$(UNINSTALL_RM) $(DESTDIR)$(cgi_bin_dir)/ioc_alive.cgi

12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# web-client
Web client for the Alive database server, as part of the
[Alive system](https://epics-alive-server.github.io/) used by the
Beamline Controls Group of the Advanced Photon Source.

## Documentation
* [Installation notes](https://raw.githubusercontent.com/epics-alive-server/web-client/master/docs/installation.txt)

This is the original web client. I'm working on a newer
heavily-reworked version that is moving towards doing all data
processing locally in Javascript, instead of on the server. This will
install alongside the version presented here (with a different name).
47 changes: 47 additions & 0 deletions docs/installation.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
Web Client for the APS Alive System


Dependencies
------------

This program requires gcc, make, and two external libraries.

It uses the alive-client library and my CGI library, dcgi. The
aliveclient library can be found at
"https://github.com/epics-alive-server/client-tools", and the dcgi can
be found at "https://github.com/dohnarms/dcgi". You don't need to
install them after compiling.


Makefile Options
----------------

There are several options in the top-level Makefile that need to be
set.

The "prefix" and "cgi_bin_dir" variables control where the resultant
CGI binary is installed. Ignore these if you aren't going to use
"make" to install the file.

If the alive-client library files aren't in standard locations for
libraries and header files (thus automatically found by the compiler),
set "AliveClient_Library_Dir" and "AliveClient_Include_Dir" variables
to their locations. Similary, for dcgi, set "DCGI_Library_Dir" and
"DCGI_Include_Dir".

"Server", and "DB_Port" specify the alive database server IP address
(or name) and TCP port number. If either is not defined, the default
value is retrieved from the alive-client library.


Installation
------------

If you run "make install", the executable ioc_alive.cgi will be
installed to the location that is specified in the Makefile. If it's
in the web site's cgi-bin directory, you probably access it as
"http://webserver/cgi-bin/ioc_alive.cgi"




38 changes: 38 additions & 0 deletions src/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@


LOCAL_CFLAGS =
LOCAL_LDFLAGS = -laliveclient -ldcgi
ifdef AliveClient_Library_Dir
LOCAL_LDFLAGS += -L$(AliveClient_Library_Dir)
endif
ifdef AliveClient_Include_Dir
LOCAL_CFLAGS += -I$(AliveClient_Include_Dir)
endif
ifdef DCGI_Library_Dir
LOCAL_LDFLAGS += -L$(DCGI_Library_Dir)
endif
ifdef DCGI_Include_Dir
LOCAL_CFLAGS += -I$(DCGI_Include_Dir)
endif

DEFINITIONS =
ifdef Server
DEFINITIONS += -DSERVER=\"$(Server)\"
endif
ifdef DB_Port
DEFINITIONS += -DDB_PORT=$(DB_Port)
endif


.PHONY: all clean

all: ioc_alive.cgi

ioc_alive.cgi: ioc_alive.o
gcc -Wall -o ioc_alive.cgi ioc_alive.o $(LOCAL_LDFLAGS)

ioc_alive.o: ioc_alive.c ioc_alive.h
gcc -O2 -Wall -c ioc_alive.c $(DEFINITIONS) $(LOCAL_CFLAGS)

clean:
-rm ioc_alive.cgi *.o
Loading

0 comments on commit d272dd1

Please sign in to comment.