diff --git a/scripts/eventgen/README.md b/scripts/eventgen/README.md index 30ad5fed22324008c5ecd2002357b73c3d818505..478c8fb83cf7efa97b80a13f033d3fa43760166c 100644 --- a/scripts/eventgen/README.md +++ b/scripts/eventgen/README.md @@ -1,10 +1,10 @@ # Events Generator Script -This script generates Events.h, Topics.h and EventStrings.cpp from a list of -SCXML files representing the state machines of a project. +This script generates the enums for all Events and Topics handled in a project, given a list of `scxml` files that describe all states and transitions. To execute the script: -To execute the script: +`eventgen.py <LIST_OF_SCXML_FILES>` -`./eventgen.py <LIST_OF_SCXML_FILES>` +The header files will be generated in the `generated/` folder. + +Note that the SCXML files should contain transitions with the following form: *< TOPIC >.< EVENT >*. -The files will be generated in the generated/ folder. \ No newline at end of file diff --git a/scripts/eventgen/eventgen.py b/scripts/eventgen/eventgen.py index 7d772986fcd552cfaa99e4da4deba95feb38d7ee..9061dba58668f3ac101cae87c690985647c2d565 100755 --- a/scripts/eventgen/eventgen.py +++ b/scripts/eventgen/eventgen.py @@ -23,7 +23,7 @@ # import re import datetime -from os.path import join +from os.path import join, dirname import os import xml.etree.ElementTree as ET @@ -32,6 +32,10 @@ from collections import OrderedDict OUTPUT_FOLDER = "generated" +EVENTS_TEMPLATE_FILE = os.path.dirname(sys.argv[0]) + '/Events.h.template' +TOPICS_TEMPLATE_FILE = os.path.dirname(sys.argv[0]) + '/Topics.h.template' +STRINGS_TEMPLATE_FILE = os.path.dirname(sys.argv[0]) + '/EventStrings.cpp.template' + # # ASCII art banner # @@ -106,7 +110,7 @@ def generate_events(events, date): event_list_str += e + (", " if e != events[-1] else "") # read template - with open('Events.h.template', 'r') as template_file: + with open( EVENTS_TEMPLATE_FILE, 'r') as template_file: template = template_file.read() # write template @@ -131,7 +135,7 @@ def generate_topics(topics, date): topics=t, string='"' + t + '"', endl=endl) topic_list_str += t + (", " if t != topics[-1] else "") - with open('Topics.h.template', 'r') as template_file: + with open( TOPICS_TEMPLATE_FILE, 'r') as template_file: template = template_file.read() template = template.format(date=date, enum_data=enum_str, topic_list=topic_list_str) @@ -145,7 +149,7 @@ def generate_topics(topics, date): # Generate EventFunctions.cpp # def generate_functions(event_map_str, topic_map_str, date): - with open('EventStrings.cpp.template', 'r') as cpp_template_file: + with open( STRINGS_TEMPLATE_FILE, 'r') as cpp_template_file: cpp = cpp_template_file.read() cpp = cpp.format(date=date, event_map_data=event_map_str, topic_map_data=topic_map_str) diff --git a/scripts/linter.sh b/scripts/linter.sh index 70dd0adb8d12a393cc67d72cc2051353b27c2b22..ae9e1e73a401e5debf1f3377e8676e5fc95f29a4 100755 --- a/scripts/linter.sh +++ b/scripts/linter.sh @@ -1,18 +1,83 @@ #!/bin/bash +# +# Usage: grepcheck <FOLDER_TO_CHECK> <STRING_TO_FIND> <EGREP_ARGS> +# +function grepcheck { + + FILES=$(grep -rl "$2" $1 | egrep "$3") + + for f in $FILES + do + # Print name of the file in red + echo -ne '\033\x5b\x33\x33\x6d' + + echo $f + echo -ne '\033\x5b\x30\x6d' + + if [[ $verbose -eq 1 ]]; then + grep --color=always -r "$2" $f -C3 + echo '' + fi + done + + echo '' + + # If VERBOSE is defined then also print the context in the file +} + +# Horrifying way of checking if -v or --verbose is enabled +verbose=0 + +case "$1" in +-v|--verbose) + verbose=1 + shift ;; +esac + +case "$2" in +-v|--verbose) + verbose=1 +esac + +# Execute checks +echo '--------------------------- CPPCHECK' echo '[Linter] Executing cppcheck' -cppcheck --template=gcc -q --std=c++11 --enable=all \ +echo '' +cppcheck -U "RCC_APB1ENR_CAN2EN" --template=gcc -q --std=c++11 --enable=all \ --suppress=unusedFunction --suppress=missingInclude --suppress=noExplicitConstructor \ - "$@" 2>&1 | awk ' + "$1" 2>&1 | awk ' function color(c,s) { printf("\033[%dm%s\033[0m\n",30+c,s) } - /warning/ {color(1,$0);next} + /error/ {color(1,$0);next} + /warning/ {color(3,$0);next} /style/ {color(2,$0);next} - /performance/ {color(3,$0);next} + /performance/ {color(6,$0);next} /information/ {color(4,$0);next} /portability/ {color(5,$0);next} {print} ' +echo '' + +echo '--------------------------- USING NAMESPACE' +echo '[Linter] Checking for using namespace in .h(pp) files' + +grepcheck $1 'using namespace' '.h(pp)?$' + +echo '--------------------------- GREP PRINTF' +echo '[Linter] Checking for printf instead of TRACE' + +grepcheck $1 "printf" '.*' + +echo '--------------------------- GREP ASSERT' +echo '[Linter] Checking if there are asserts in the code' + +grepcheck $1 "assert" '.*' + +echo '--------------------------- GREP THROW' +echo '[Linter] Checking if there are exceptions in the code' + +grepcheck $1 "throw" '~*catch.hpp' #exit 0 diff --git a/scripts/mavlink_client/README.md b/scripts/mavlink_client/README.md index 4a3c225d75fc187df6b0ac5550cb8bad7f174c9b..e8cd75de7fbd87bf075a2506218e1de6d4be6a3c 100644 --- a/scripts/mavlink_client/README.md +++ b/scripts/mavlink_client/README.md @@ -1,14 +1,14 @@ -# Mavlink Clinet +# Mavlink Client These scripts can be used to transmit and receive mavlink data from a PC, either connected via serial port to a transceiver or directly connected to one of the boards. -`make` compiles the 3 `.c` files: +Use `make` to compile the 3 `.c` files: * continuous_tx: sends a message of raw bytes with a given length at a certain frequency. This was used to test the LoRa modules. * mavlink_demo_tx: sends a message whenever it receives a char on stdin -* mavlink_demo_rx: receives and prints packets, eventually sending back ana ACK. +* mavlink_demo_rx: receives and prints packets, eventually sending back an ACK. -`plot.py`: reads value on stdin and plots them. Can be used piping in the output -of mavlink_demo_rx \ No newline at end of file +`plot.py`: reads value on stdin and plots them. Can be used piped with the output +of mavlink_demo_rx. \ No newline at end of file diff --git a/scripts/old/anakin.sh b/scripts/old/anakin.sh deleted file mode 100755 index 52d32b6107f171f011925e0da0f9f215ff9caf98..0000000000000000000000000000000000000000 --- a/scripts/old/anakin.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -if [ $# -ne 1 ]; then - echo "Usage: $0 <filename.bin>" - exit -1 -fi; - -stm32flash -b 500000 -w $1 -v /dev/ttyUSB0 diff --git a/scripts/old/anakin_client_curses/.gitignore b/scripts/old/anakin_client_curses/.gitignore deleted file mode 100644 index b051c6c57fa8b6cc588a3ebad860005ec6fcf7cc..0000000000000000000000000000000000000000 --- a/scripts/old/anakin_client_curses/.gitignore +++ /dev/null @@ -1 +0,0 @@ -client diff --git a/scripts/old/anakin_client_curses/Makefile b/scripts/old/anakin_client_curses/Makefile deleted file mode 100644 index f97ef085b53c809ca0363276bbae66fbf22e6ded..0000000000000000000000000000000000000000 --- a/scripts/old/anakin_client_curses/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -all: - gcc -o client client.c -lcurses diff --git a/scripts/old/anakin_client_curses/client.c b/scripts/old/anakin_client_curses/client.c deleted file mode 100644 index 5c45227bddf8b8aa5ced0341a9cb56e0ce624d63..0000000000000000000000000000000000000000 --- a/scripts/old/anakin_client_curses/client.c +++ /dev/null @@ -1,319 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#include <fcntl.h> -#include <ncurses.h> -#include <signal.h> -#include <stdint.h> -#include <termios.h> -#include <unistd.h> - -volatile int stop = 0; -uint8_t buf[8192] = {0}; -uint16_t rptr = 0, wptr = 0; - -#pragma pack(1) -struct vec3_t { - float x; - float y; - float z; -}; -#pragma pack() - -enum DataType -{ - DATA_VEC3 = 0, - DATA_QUAT = 1, - DATA_FLOAT = 2, - DATA_INT = 3, - DATA_STRING= 4, - DATA_LIMITED_INT = 5, - DATA_UINT32 = 6 -}; - -const char* sensor_names[] = -{ - "ACCEL_MPU9250", - "ACCEL_INEMO", - "ACCEL_MAX21105", - - "GYRO_MPU9250", - "GYRO_INEMO", - "GYRO_FXAS21002", - "GYRO_MAX21105", - - "COMPASS_MPU9250", - "COMPASS_INEMO", - - "TEMP_MPU9250", - "TEMP_INEMO", - "TEMP_LPS331AP", - "TEMP_MAX21105", - "TEMP_MS580", - - "PRESS_LPS331AP", - "PRESS_MS580", - - "UNUSED_16", - "DMA_TX_FIFOSZ", - "DMA_RX_FIFOSZ", - "DMA_FIFO_ERR", - "CPU%", - "LOG_QUEUE_SZ" -}; - -uint8_t sensor_type[] = -{ - DATA_VEC3, - DATA_VEC3, - DATA_VEC3, - - DATA_VEC3, - DATA_VEC3, - DATA_VEC3, - DATA_VEC3, - - DATA_VEC3, - DATA_VEC3, - - DATA_FLOAT, - DATA_FLOAT, - DATA_FLOAT, - DATA_FLOAT, - DATA_FLOAT, - - DATA_FLOAT, - DATA_FLOAT, - - DATA_INT, - DATA_LIMITED_INT, - DATA_LIMITED_INT, - DATA_UINT32, - DATA_UINT32, - DATA_LIMITED_INT -}; - -#define NUM_SENSORS ((int)((sizeof(sensor_names) / sizeof(sensor_names[0])))) - - -void on_signal(int s) -{ - if(!stop) - { - signal(s, on_signal); - stop = 1; - } -} - -int logline = 0; -void log_string(const char* data, int len) -{ - if(len <= 0) - return; - - move(NUM_SENSORS + 2 + logline, 10); - attron(COLOR_PAIR(1)); - printw(data); - if(len < 30) - for(int i=len;i<30;i++) - printw(" "); - refresh(); - logline = (logline+1)%20; -} - -void draw_sensor(int id, int type, const void* data) -{ - char tmp[256] = {0}; - - if(id >= (int)NUM_SENSORS) - { - sprintf(tmp, "Got packet for invalid sensor %d\n", id); - log_string(tmp, strlen(tmp)); - return; - } - - if(type < 0 || type > 6 || type == 4) - { - sprintf(tmp, "Got packet for invalid type %d\n", type); - log_string(tmp, strlen(tmp)); - return; - } - - move(1+id, 10); - sprintf(tmp, "%20s : ", sensor_names[id]); - - uint8_t color = (type != 5) ? (type + 1) : 2; - attron(COLOR_PAIR(color)); - printw(tmp); - attroff(COLOR_PAIR(color)); - - int all_null = 1; - for(int i=0;i<NUM_SENSORS && all_null == 1;i++) - if(((const char *)data)[i] != 0) - all_null = 0; - if((data == NULL || all_null == 1) && type != 5) - { - attron(COLOR_PAIR(5)); - attron(A_BOLD); - printw("[NULL] "); - attroff(A_BOLD); - attroff(COLOR_PAIR(5)); - return; - } - - const uint8_t* i = (const uint8_t*) data; - const struct vec3_t* v = (const struct vec3_t*) data; - const float* f = (const float*) data; - const uint8_t* ui = (const uint8_t*) data; - const uint32_t* ui32 = (const uint32_t*) data; - - switch(type) - { - case DATA_FLOAT: - sprintf(tmp, "%7.4f ", *f); - printw(tmp); - break; - case DATA_INT: - sprintf(tmp, "%d ", *i); - printw(tmp); - break; - case DATA_UINT32: - sprintf(tmp, "%d ", *ui32); - printw(tmp); - break; - case DATA_VEC3: - sprintf(tmp, "(%7.4f, %7.4f, %7.4f)", v->x, v->y, v->z); - printw(tmp); - break; - case DATA_LIMITED_INT: - { - uint32_t vv = (*ui * 27) / 256; - for(uint32_t i=0;i<27;i++) - { - if(i < vv) - printw("#"); - else - printw("."); - } - break; - } - default: - printw("[NOT IMPLEMENTED]"); - break; - } -} - -int sfd; -int init_serial(const char *device) -{ - sfd = open(device, O_RDWR | O_NOCTTY | O_SYNC); - if(sfd < 0) - { - printf("Cannot open ttyUSB0\n"); - return 1; - } - - struct termios tty; - memset(&tty, 0, sizeof(tty)); - if(tcgetattr(sfd, &tty) != 0) - { - printf("Cannot get attributes\n"); - return 1; - } - cfmakeraw(&tty); - cfsetospeed(&tty, B115200); - cfsetispeed(&tty, B115200); - tcsetattr(sfd, TCSANOW, &tty); - - return 0; -} - -void parse(int len) -{ - if(len == 0) - return; - - uint8_t type = buf[0]; - if(type == DATA_STRING) - log_string((const char *)&buf[1], len-1); - else - { - uint8_t id = buf[1]; - draw_sensor(id, type, &buf[2]); - } -} - -int fromHex(char l) -{ - if(l >= '0' && l <= '9') - return l - '0'; - if(l >= 'a' && l <= 'f') - return 10 + l - 'a'; - if(l >= 'A' && l <= 'F') - return 10 + l - 'A'; - return 0; -} - -int read_and_draw() -{ - memset(buf, 0, sizeof(buf)); - int bpos = 0; - char b; - char tmp = 0; - do { - read(sfd, &b, 1); - if(b == '\n' || b == '\r') - break; - else { - if(tmp == 0) - tmp = b; - else { - buf[bpos++] = (fromHex(tmp) << 4) | fromHex(b); - tmp = 0; - } - } - } while(1); - parse(bpos); - return 0; -} - -int main(int argc, char *argv[]) -{ - if(argc < 2) - { - printf("Usage: %s <PORT>\n", argv[0]); - return -1; - } - if(init_serial(argv[1])) - return -1; - - signal(SIGINT, on_signal); - signal(SIGTERM, on_signal); - - initscr(); - start_color(); - init_pair(1, COLOR_BLUE, COLOR_BLACK); - init_pair(2, COLOR_GREEN, COLOR_BLACK); - init_pair(3, COLOR_CYAN, COLOR_BLACK); - init_pair(4, COLOR_WHITE, COLOR_BLACK); - init_pair(5, COLOR_RED, COLOR_BLACK); - init_pair(7, COLOR_MAGENTA, COLOR_BLACK); - erase(); - refresh(); - - log_string("Ready...", 8); - while(!stop) - { - if(read_and_draw() == 1) - stop = 1; - refresh(); - } - - endwin(); - - signal(SIGINT, 0); - signal(SIGTERM, 0); - - return 0; -} diff --git a/scripts/old/excel_eventgen/EventFunctions.cpp.template b/scripts/old/excel_eventgen/EventFunctions.cpp.template deleted file mode 100644 index 18f7690704c127e2bd5eb516097a08868e505565..0000000000000000000000000000000000000000 --- a/scripts/old/excel_eventgen/EventFunctions.cpp.template +++ /dev/null @@ -1,59 +0,0 @@ -/* Copyright (c) 2018 Skyward Experimental Rocketry - * Authors: Luca Erbetta - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -/* - ****************************************************************************** - * THIS FILE IS AUTOGENERATED. DO NOT EDIT. * - ****************************************************************************** - */ - -// Generated from: {sheet_link} -// Autogen date: {date} - - -#include "Events.h" -#include "Topics.h" - -#include <map> - -namespace HomeoneBoard -{{ - -string getEventString(uint8_t event) -{{ - static const map<uint8_t, string> event_string_map {{ -{event_map_data} - }}; - auto it = event_string_map.find(event); - return it == event_string_map.end() ? "EV_UNKNOWN" : it->second; -}} - -string getTopicString(uint8_t topic) -{{ - static const map<uint8_t, string> topic_string_map{{ -{topic_map_data} - }}; - auto it = topic_string_map.find(topic); - return it == topic_string_map.end() ? "TOPIC_UNKNOWN" : it->second; -}} - -}} \ No newline at end of file diff --git a/scripts/old/excel_eventgen/Events.h.template b/scripts/old/excel_eventgen/Events.h.template deleted file mode 100644 index 2c4937a1fdd509e3307baf666120b77fdd067fec..0000000000000000000000000000000000000000 --- a/scripts/old/excel_eventgen/Events.h.template +++ /dev/null @@ -1,67 +0,0 @@ -/* Copyright (c) 2018 Skyward Experimental Rocketry - * Authors: Luca Erbetta - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -/* - ****************************************************************************** - * THIS FILE IS AUTOGENERATED. DO NOT EDIT. * - ****************************************************************************** - */ - -// Generated from: {sheet_link} -// Autogen date: {date} - -#ifndef SRC_SHARED_BOARDS_HOMEONE_EVENTS_H -#define SRC_SHARED_BOARDS_HOMEONE_EVENTS_H - -#include <cstdint> -#include <string> - -#include "events/Event.h" -#include "events/EventBroker.h" -#include "EventClasses.h" -#include "Topics.h" - -using std::string; -using std::map; - -namespace HomeoneBoard -{{ -/** - * Definition of all events in the Homeone Board software - * Refer to section 5.1.1 of the Software Design Document. - */ -enum Events : uint8_t -{{ -{enum_data} -}}; - -/** - * @brief Returns the name of the provided event - * - * @param event - * @return string - */ -string getEventString(uint8_t event); - -}} - -#endif /* SRC_SHARED_BOARDS_HOMEONE_EVENTS_H */ diff --git a/scripts/old/excel_eventgen/README.md b/scripts/old/excel_eventgen/README.md deleted file mode 100644 index f87e46c67ebcec406b02c58e10dbe91b00a0c8d3..0000000000000000000000000000000000000000 --- a/scripts/old/excel_eventgen/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Events Generator Script - -This script generates the Events.h and Topics.h heander file from a GoogleSheets document on Google Drive. - -To execute the script: - -``` -pip install --upgrade google-api-python-client -pip install oauth2client -python scripts/homeone/event_header_generator/event_generator.py -``` - -The first time a browser window should open asking for your credentials (use the Skyward ones). -If it doesn't and only gives you an error, try executing it by clicking on the icon. \ No newline at end of file diff --git a/scripts/old/excel_eventgen/Topics.h.template b/scripts/old/excel_eventgen/Topics.h.template deleted file mode 100644 index 43e72f7302673cf61bbb3a6605681feb08cf7236..0000000000000000000000000000000000000000 --- a/scripts/old/excel_eventgen/Topics.h.template +++ /dev/null @@ -1,61 +0,0 @@ -/* Copyright (c) 2018 Skyward Experimental Rocketry - * Authors: Luca Erbetta - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -/* - ****************************************************************************** - * THIS FILE IS AUTOGENERATED. DO NOT EDIT. * - ****************************************************************************** - */ - -// Generated from: {sheet_link} -// Autogen date: {date} - -#ifndef SRC_SHARED_BOARDS_HOMEONE_TOPICS_H -#define SRC_SHARED_BOARDS_HOMEONE_TOPICS_H - -#include <stdint.h> -#include <string> - -using std::map; -using std::string; - -namespace HomeoneBoard -{{ -/** - * Definition of various event topics to use in the EventBroker - */ -enum Topics : uint8_t -{{ -{enum_data} -}}; - -/** - * @brief Returns the name of the provided event - * - * @param event - * @return string - */ -string getTopicString(uint8_t topic); - -}} // namespace HomeoneBoard - -#endif /* SRC_SHARED_BOARDS_HOMEONE_TOPICS_H_ */ diff --git a/scripts/old/excel_eventgen/credentials.json b/scripts/old/excel_eventgen/credentials.json deleted file mode 100644 index dae318afc5661116b82fe75f80f4316e538e670a..0000000000000000000000000000000000000000 --- a/scripts/old/excel_eventgen/credentials.json +++ /dev/null @@ -1 +0,0 @@ -{"installed":{"client_id":"1025168905991-tv31etsgm3lecodc5c798shqciekad40.apps.googleusercontent.com","project_id":"homeone-event-ge-1540834105298","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://www.googleapis.com/oauth2/v3/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"Yhaf67HuHR4DyXZKNXWu2lre","redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]}} \ No newline at end of file diff --git a/scripts/old/excel_eventgen/event_generator.py b/scripts/old/excel_eventgen/event_generator.py deleted file mode 100755 index e895e6fc1bf6ee8615103c51250e5e85ae4a241a..0000000000000000000000000000000000000000 --- a/scripts/old/excel_eventgen/event_generator.py +++ /dev/null @@ -1,197 +0,0 @@ -#!/usr/bin/python3 - -# Copyright (c) 2018 Skyward Experimental Rocketry -# Authors: Luca Erbetta -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -# - -from googleapiclient.discovery import build -from httplib2 import Http -from oauth2client import file, client, tools - -import re -import datetime -import sys -from os.path import join -import os - -OUTPUT_FOLDER = "generated" -SCOPES = 'https://www.googleapis.com/auth/spreadsheets.readonly' - -service = None - -SPREADSHEET_ID = '12TecOmDd7Uot-MvXkCbhDJRU48-XO6s5ChKDlr4AOvI' -EVENTS_RANGE_NAME = 'EventList!A2:A' -TOPICS_RANGE_NAME = 'Topics!B3:B' - - -def auth(): - try: - store = file.Storage('store.json') - creds = store.get() - if not creds or creds.invalid: - flow = client.flow_from_clientsecrets('credentials.json', SCOPES) - creds = tools.run_flow(flow, store) - - global service - service = build('sheets', 'v4', http=creds.authorize(Http())) - return True - except: - print("Authentication error:", sys.exc_info()[0]) - return False - - -def load_events(): - result = service.spreadsheets().values().get(spreadsheetId=SPREADSHEET_ID, - range=EVENTS_RANGE_NAME).execute() - lines = result.get('values', []) - - # Event names start with EV_ and contains only uppercase letters or underscores - re_event = re.compile(r'(?P<ev>^EV_([A-Z_]+)+)') - - # Only return lines with valid events, remove additional data - events = [] - for l in lines: - m = re_event.match(l[0]) - if m is not None: - events.append(m.group('ev')) - else: - print("Skipped line containing invalid event: {}".format(l)) - - return events - - -def load_topics(): - result = service.spreadsheets().values().get(spreadsheetId=SPREADSHEET_ID, - range=TOPICS_RANGE_NAME).execute() - lines = result.get('values', []) - re_topics = re.compile(r'(?P<topic>^TOPIC_([A-Z_]+)+)') - - # Only return lines with valid topics, remove additional data - topics = [] - for l in lines: - m = re_topics.match(l[0]) - if m is not None: - topics.append(m.group('topic')) - else: - print("Skipped line containing invalid topics: {}".format(l)) - - return topics - - -def has_duplicates(lst): - if len(lst) != len(set(lst)): - return True - return False - - - -print("Homeone on-board software event header generator v0.2") -print("Google sheets API auth in progress...") - -if auth(): - print("Auth successfull.") -else: - exit() - -#directory = os.path.dirname(OUTPUT_FOLDER) -if not os.path.exists(OUTPUT_FOLDER): - os.mkdir(OUTPUT_FOLDER) - -print("Reading from: https://docs.google.com/spreadsheets/d/12TecOmDd7Uot-MvXkCbhDJRU48-XO6s5ChKDlr4AOvI") - -events = load_events() -topics = load_topics() - -# Check duplicates -if has_duplicates(events): - print("Duplicate events found! Terminating.") - exit() - -if has_duplicates(topics): - print("Duplicate topics found! Terminating.") - exit() - -print("{} events loaded.".format(len(events))) -print("{} topics loaded.".format(len(topics))) - -enum_str = "" -event_map_str = "" - -date = datetime.datetime.now() -link = "https://docs.google.com/spreadsheets/d/{id}".format(id=SPREADSHEET_ID) - - -# Events.h generation - -print("Generating Events.h...") - -for e in events: - endl = ",\n" if e != events[-1] else "" - enum_str += " " + e + \ - (" = EV_FIRST_SIGNAL" if e == events[0] else "") + endl - event_map_str += " {{ {event}, {string} }}{endl}".format( - event=e, string='"' + e + '"', endl=endl) - -with open('Events.h.template', 'r') as template_file: - template = template_file.read() - -template = template.format(sheet_link=link, date=date, - enum_data=enum_str) - -with open(join(OUTPUT_FOLDER, 'Events.h'), 'w') as header_file: - header_file.write(template) - -print("Events.h successfully generated.") -# Topics.h generation - -print("Generating Topics.h...") -enum_str = "" -topic_map_str = "" - -for t in topics: - endl = ",\n" if t != topics[-1] else "" - enum_str += " " + t + endl - topic_map_str += " {{ {topics}, {string} }}{endl}".format( - topics=t, string='"' + t + '"', endl=endl) - -with open('Topics.h.template', 'r') as template_file: - template = template_file.read() - -template = template.format(sheet_link=link, date=date, - enum_data=enum_str) - -with open(join(OUTPUT_FOLDER, 'Topics.h'), 'w') as header_file: - header_file.write(template) - -with open('EventFunctions.cpp.template', 'r') as cpp_template_file: - cpp = cpp_template_file.read() - -cpp = cpp.format(sheet_link=link, date=date, - event_map_data=event_map_str, topic_map_data=topic_map_str) - -with open(join(OUTPUT_FOLDER, 'EventFunctions.cpp'), 'w') as cpp_file: - cpp_file.write(cpp) - -print("Topics.h successfully generated.") - -print() -print("All files successfully generated. Please move Events.h, Topics.h, EventFunction.cpp into the Homeone board folder.") -print(".... Done.") diff --git a/scripts/old/gen_fault_headers.py b/scripts/old/gen_fault_headers.py deleted file mode 100755 index 0a5badbdaac96f3de9d501d912fbe39c1f3f4ef2..0000000000000000000000000000000000000000 --- a/scripts/old/gen_fault_headers.py +++ /dev/null @@ -1,239 +0,0 @@ -#!/usr/bin/python - -# Copyright (c) 2017 Skyward Experimental Rocketry -# Authors: Alain Carlucci -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - - -import csv,string,hashlib,datetime,sys - -if len(sys.argv) != 3: - print("Usage: %s <CSV File> <Output header file>" % (sys.argv[0])) - exit(-1) - -headerLine = None - -newLines = [] - -lineCtr = 0 -curCatId = 0 -categories={} -enums={} - -import hashlib - -def fileHash(filename): - h = hashlib.sha1() - with open(filename, 'rb', buffering=0) as f: - for b in iter(lambda : f.read(128*1024), b''): - h.update(b) - return h.hexdigest() - -def genEnum(name, s, inc): - a = ('''enum class %s -{ -''') % (name,); - cnt = 0 - for i in s: - if inc: - a += " " + i + " = " + str(cnt) + ",\n" - else: - a += " " + i + " = " + str(s[i]) + ",\n" - cnt += 1 - a += "};\n" - a += "const std::size_t %s_SIZE = %d;\n" %(name, cnt) - return a - -def genHeaderFile(fileName,csvFile): - print("[*] Generating header file (%s)" %(fileName,)) - content = ('''/* Copyright (c) 2017 Skyward Experimental Rocketry - * Authors: Alain Carlucci - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -/* - ****************************************************************************** - * THIS FILE IS AUTOGENERATED. DO NOT EDIT. * - ****************************************************************************** - */ - -// CSV File: %s -// SHA1 of CSV File: %s -// Autogen date: %s - -#include <cstdint> - -#ifndef SKYWARD_FAULT_CTRL_LIST_H -#define SKYWARD_FAULT_CTRL_LIST_H - -''') % (csvFile, fileHash(csvFile), datetime.datetime.now()) - content += genEnum("Fault", enums, True) - content += "\nnamespace FaultCounterData\n{\n\n" - content += genEnum("FaultCategory", categories, False) - content += ''' - -// Usage: categoryID = FaultCounter::FaultToCategory[faultID]; -const uint32_t FaultToCategory[] = -{ - ''' - colCnt = 0 - for i in enums: - content += "%d, " % (categories[enums[i]], ) - colCnt += 1 - if colCnt == 20: - content += "\n " - colCnt = 0 - content += ''' -}; /* CategoryMapping */ - -} /* FaultCounterData */ - -#endif /* SKYWARD_FAULT_CTRL_LIST_H */ - -''' - try: - with open(fileName, "w") as f: - f.write(content) - print("[+] Written %d lines in %s" % (len(content.split("\n")), fileName)) - except: - print("[!] Cannot open %s for writing.", fileName) - exit(-1) - - -def checkForGoodName(n): - if len(n) == 0: - return False - - if n[0] not in string.ascii_uppercase: - return False - - for x in n: - if x not in string.ascii_uppercase + string.digits + '_': - return False - - if n[-1] not in string.ascii_uppercase + string.digits: - return False - - return True - -def genEnumName(cat,name): - ctr = 2 - - genBName = "F_" + cat + "_" + name - genName = genBName - - while genName in enums: - genName = genBName + "_" + str(ctr) - ctr += 1 - - return genName - -# return False: csv file is ok -# return True: csv file must be updated -def handleLine(r): - global lineCtr,categories,newLines,enums,curCatId - - if len(r) != 4: - print("[!] Parsing error at line %d. I'm expecting 4 fields" % (lineCtr,)) - exit(-1) - - curCat = r[0].strip().upper() - curName = r[1].strip().upper() - curDesc = r[2].strip() - curEnum = r[3].strip().upper() - - if checkForGoodName(curCat) == False: - print("[!] Invalid category at line %d." % (lineCtr,)) - exit(-1) - - if checkForGoodName(curName) == False: - print("[!] Invalid name at line %d." % (lineCtr,)) - exit(-1) - - if len(curEnum) > 0 and (checkForGoodName(curEnum) == False or curEnum in enums): - print("[!] Invalid generated name at line %d." % (lineCtr,)) - exit(-1) - - retVal = False - if len(curEnum) == 0: - curEnum = genEnumName(curCat, curName) - retVal = True - - if curCat not in categories: - print("[+] Added category '%s'" % (curCat,)) - categories[curCat] = curCatId - curCatId += 1 - - print("[+] Added %s in category %s" %(curEnum,curCat)) - enums[curEnum] = curCat - - newLines.append([curCat, curName, curDesc, curEnum]) - return retVal - -mustUpdate = False -print("[*] Opening %s..." % (sys.argv[1],)) -try: - with open(sys.argv[1], "r") as csvfile: - r = csv.reader(csvfile, delimiter=',', quotechar='"') - for row in r: - lineCtr += 1 - if headerLine is None: - headerLine = row - continue - if handleLine(row): - mustUpdate = True -except Exception as e: - print("[!] Cannot open %s for reading: %s!" %(sys.argv[1],str(e))) - exit(-1) - -if not mustUpdate: - print("[+] No need to update the csv file.") -else: - print("[*] Updating %s..." % (sys.argv[1],)) - - try: - with open(sys.argv[1], "w") as csvfile: - r = csv.writer(csvfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL) - r.writerow(headerLine) - for row in newLines: - r.writerow(row) - print("[+] Successfully updated csv file") - except: - print("[!] Cannot open %s for writing!" %(sys.argv[1],)) - exit(-1) - -genHeaderFile(sys.argv[2], sys.argv[1]) diff --git a/scripts/openocd-flash.sh b/scripts/openocd/openocd-flash.sh similarity index 100% rename from scripts/openocd-flash.sh rename to scripts/openocd/openocd-flash.sh diff --git a/scripts/start_openocd.sh b/scripts/openocd/start_openocd.sh similarity index 100% rename from scripts/start_openocd.sh rename to scripts/openocd/start_openocd.sh diff --git a/scripts/scxml2plant/scxml2plant.sh b/scripts/scxml2plant/scxml2plant.sh new file mode 100755 index 0000000000000000000000000000000000000000..dbd1f04907a38ead88b5e27d8ae037cf95b88bac --- /dev/null +++ b/scripts/scxml2plant/scxml2plant.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +# Input checks +if [ "$#" -ne 1 ]; then + echo "Usage: scxml2plant <FOLDER_TO_SEARCH>" + exit 1 +fi + +# Find this folder when calling the script from another folder +PATH_TO_XALAN=$(dirname $0) + +# Select all scxml files +for file in $(find $1 -name "*.scxml") +do + # generate plantuml + INPUT_XML=$file + OUTPUT_NAME=$(dirname $file)/$(basename -s ".scxml" $file).plantuml + echo "Input file: " $INPUT_XML " Output basename: " $OUTPUT_NAME + + java -cp $PATH_TO_XALAN/xalan/xalan.jar \ + -Dorg.apache.xerces.xni.parser.XMLParserConfiguration=org.apache.xerces.parsers.XIncludeParserConfiguration org.apache.xalan.xslt.Process \ + -IN $INPUT_XML -XSL $PATH_TO_XALAN/xslt/scxml2plantuml.xslt -OUT $OUTPUT_NAME + + # generate README + README_FILE=$(dirname $file)/README.md + + touch $README_FILE + echo "\`\`\`plantuml" > $README_FILE + cat $OUTPUT_NAME >> $README_FILE + echo "\`\`\`" >> $README_FILE + rm $OUTPUT_NAME +done diff --git a/scripts/scxml2plant/xalan/LICENSE.txt b/scripts/scxml2plant/xalan/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..47ad566a4592992bb8c6cfe6bda017487dda8cf5 --- /dev/null +++ b/scripts/scxml2plant/xalan/LICENSE.txt @@ -0,0 +1,684 @@ +<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + +The license above applies to this Apache Xalan release of: + Xalan-Java 2 - XSLT Processor + Xalan-Java 2 - Serializer + +The license above also applies to the jar files +xalan.jar and xsltc.jar - Xalan-Java 2 - XSLT Processor from +Source: http://xalan.apache.org/ + +The license above also applies to the jar file +serializer.jar - Xalan-Java 2 - Serializer +Source: http://xalan.apache.org/ +Used by: Xalan-Java 2 and Xerces-Java 2 + +The license above also applies to the jar file +xercesImpl.jar - Xerces-Java 2 XML Parser. +Source: http://xerces.apache.org/ +Used by: Xalan-Java 2 + +The license above also applies to the jar file +xml-apis.jar - Xerces-Java 2 XML Parser. +Source: http://xerces.apache.org/ +Used by: Xalan-Java 2 and release copy of Xerces-Java 2 + + + + + + + + +The following license applies to the included files: + tools/ant.jar + tools/antRun + tools/antRun.bat +Source: http://ant.apache.org/ +Used By: Xalan's build process: java/build.xml and test/build.xml + +<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +/* + * ============================================================================ + * The Apache Software License, Version 1.1 + * ============================================================================ + * + * Copyright (C) 1999 The Apache Software Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modifica- + * tion, 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. + * + * 3. The end-user documentation included with the redistribution, if any, must + * include the following acknowledgment: "This product includes software + * developed by the Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, if + * and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Ant" and "Apache Software Foundation" must not be used to + * endorse or promote products derived from this software without prior + * written permission. For written permission, please contact + * apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", nor may + * "Apache" appear in their name, without prior written permission of the + * Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 THE + * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- + * DING, 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. + * + * This software consists of voluntary contributions made by many individuals + * on behalf of the Apache Software Foundation. For more information on the + * Apache Software Foundation, please see <http://www.apache.org/>. + * + */ +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + + + + + + + +The following license, Apache Software License, Version 1.1, +applies to the included BCEL.jar from Apache Jakarta +(Byte Code Engineering Library). +Source: http://jakarta.apache.org/bcel +Used By: XSLTC component of xml-xalan/java + +The following license, Apache Software License, Version 1.1, +also applies to the included regexp.jar, +jakarta-regexp-1.2.jar from Apache Jakarta. +Source: http://jakarta.apache.org/regexp +Used By: BCEL.jar which is used by XSLTC component of xml-xalan/java + +<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +/* + * + * Copyright (c) 2001 The Apache Software Foundation. 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. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" and + * "Apache BCEL" must not be used to endorse or promote products + * derived from this software without prior written permission. For + * written permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * "Apache BCEL", nor may "Apache" appear in their name, without + * prior written permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 THE APACHE SOFTWARE FOUNDATION OR + * ITS 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. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + + + + + + + +The following license applies to the DOM documentation +for the org.w3c.dom.* packages: + +<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +W3C® DOCUMENT LICENSE +http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231 +Public documents on the W3C site are provided by the copyright holders +under the following license. By using and/or copying this document, +or the W3C document from which this statement is linked, you (the licensee) +agree that you have read, understood, and will comply with the following +terms and conditions: + +Permission to copy, and distribute the contents of this document, or the +W3C document from which this statement is linked, in any medium for any +purpose and without fee or royalty is hereby granted, provided that you include +the following on ALL copies of the document, or portions thereof, that you use: + +1. A link or URL to the original W3C document. +2. The pre-existing copyright notice of the original author, or if it + doesn't exist, a notice (hypertext is preferred, but a textual representation + is permitted) of the form: "Copyright © [$date-of-document] World Wide Web + Consortium, (Massachusetts Institute of Technology, European Research + Consortium for Informatics and Mathematics, Keio University). All Rights + Reserved. http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231" +3. If it exists, the STATUS of the W3C document. + +When space permits, inclusion of the full text of this NOTICE should be provided. +We request that authorship attribution be provided in any software, documents, +or other items or products that you create pursuant to the implementation of the +contents of this document, or any portion thereof. + +No right to create modifications or derivatives of W3C documents is granted pursuant +to this license. However, if additional requirements (documented in the Copyright FAQ) +are satisfied, the right to create modifications or derivatives is sometimes granted +by the W3C to individuals complying with those requirements. + +THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS +OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; +THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE +IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, +COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE +OR IMPLEMENTATION OF THE CONTENTS THEREOF. + +The name and trademarks of copyright holders may NOT be used in advertising +or publicity pertaining to this document or its contents without specific, +written prior permission. Title to copyright in this document will at all +times remain with copyright holders. + + +---------------------------------------------------------------------------- + +This formulation of W3C's notice and license became active on December 31 2002. +This version removes the copyright ownership notice such that this license +can be used with materials other than those owned by the W3C, moves information +on style sheets, DTDs, and schemas to the Copyright FAQ, reflects that ERCIM +is now a host of the W3C, includes references to this specific dated version +of the license, and removes the ambiguous grant of "use". See the older +formulation for the policy prior to this date. Please see our Copyright FAQ for +common questions about using materials from our site, such as the translating +or annotating specifications. Other questions about this notice can be directed +to site-policy@w3.org. + + +Joseph Reagle <mailto:site-policy@w3.org +Last revised by Reagle $Date: 2005-07-19 12:33:09 -0400 (Tue, 19 Jul 2005) $ +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + + + + + + + + +The following license applies to the DOM software, +for the org.w3c.dom.* packages in jar file xml-apis.jar: + +<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +W3C® SOFTWARE NOTICE AND LICENSE +http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 +This work (and included software, documentation such as READMEs, +or other related items) is being provided by the copyright holders +under the following license. By obtaining, using and/or copying this +work, you (the licensee) agree that you have read, understood, and will +comply with the following terms and conditions. + +Permission to copy, modify, and distribute this software and its +documentation, with or without modification, for any purpose and +without fee or royalty is hereby granted, provided that you include +the following on ALL copies of the software and documentation or +portions thereof, including modifications: + +1. The full text of this NOTICE in a location viewable to users of the + redistributed or derivative work. +2. Any pre-existing intellectual property disclaimers, notices, + or terms and conditions. If none exist, the W3C Software Short Notice + should be included (hypertext is preferred, text is permitted) within + the body of any redistributed or derivative code. +3. Notice of any changes or modifications to the files, including the + date changes were made. (We recommend you provide URIs to the location + from which the code is derived.) + +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS +MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT +NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR +PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE +ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. + +The name and trademarks of copyright holders may NOT be used in advertising +or publicity pertaining to the software without specific, written prior +permission. Title to copyright in this software and any associated documentation +will at all times remain with copyright holders. + + +____________________________________ + +This formulation of W3C's notice and license became active on December 31 2002. +This version removes the copyright ownership notice such that this license can +be used with materials other than those owned by the W3C, reflects that ERCIM +is now a host of the W3C, includes references to this specific dated version +of the license, and removes the ambiguous grant of "use". Otherwise, this +version is the same as the previous version and is written so as to preserve +the Free Software Foundation's assessment of GPL compatibility and OSI's +certification under the Open Source Definition. Please see our Copyright FAQ +for common questions about using materials from our site, including specific +terms and conditions for packages like libwww, Amaya, and Jigsaw. Other +questions about this notice can be directed to site-policy@w3.org. + + +Joseph Reagle <mailto:site-policy@w3.org +Last revised by Reagle $Date: 2005-07-19 12:33:09 -0400 (Tue, 19 Jul 2005) $ +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + + + + + + + +The following license applies to the SAX software, +for the org.xml.sax.* packages in jar file xml-apis.jar: + +<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +This module, both source code and documentation, is in the Public Domain, +and comes with NO WARRANTY. See http://www.saxproject.org for further information. +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + + + + + + + +The following license applies to the jar file +java_cup.jar - LALR Parser Generator for Java(TM). +Source: http://www.cs.princeton.edu/~appel/modern/java/CUP +Used By: XSLTC component of xml-xalan/java + +<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +CUP Parser Generator Copyright Notice, License, and Disclaimer + +Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, provided +that the above copyright notice appear in all copies and that both +the copyright notice and this permission notice and warranty disclaimer +appear in supporting documentation, and that the names of the authors +or their employers not be used in advertising or publicity pertaining +to distribution of the software without specific, written prior permission. + +The authors and their employers disclaim all warranties with regard to +this software, including all implied warranties of merchantability +and fitness. In no event shall the authors or their employers be liable +for any special, indirect or consequential damages or any damages +whatsoever resulting from loss of use, data or profits, whether in an action +of contract, negligence or other tortious action, arising out of or +in connection with the use or performance of this software. +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + + + + + + + +The following license applies to the jar file runtime.jar - Component +of JavaCup: LALR Parser Generator for Java(TM). +Source: http://www.cs.princeton.edu/~appel/modern/java/CUP +Used By: XSLTC component of xml-xalan/java + +<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +CUP Parser Generator Copyright Notice, License, and Disclaimer +(runtime.jar component) + +Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, provided +that the above copyright notice appear in all copies and that both +the copyright notice and this permission notice and warranty disclaimer +appear in supporting documentation, and that the names of the authors +or their employers not be used in advertising or publicity pertaining +to distribution of the software without specific, written prior permission. + +The authors and their employers disclaim all warranties with regard to +this software, including all implied warranties of merchantability +and fitness. In no event shall the authors or their employers be liable +for any special, indirect or consequential damages or any damages +whatsoever resulting from loss of use, data or profits, whether in an action +of contract, negligence or other tortious action, arising out of or +in connection with the use or performance of this software. +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + + + + + + + +The following license applies to the JLEX jar file +JLex.jar - A Lexical Analyzer Generator for Java(TM). +Source: http://www.cs.princeton.edu/~appel/modern/java/JLex +Used By: XSLTC component of xml-xalan/java + +<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +JLEX COPYRIGHT NOTICE, LICENSE AND DISCLAIMER. + +Copyright 1996-2000 by Elliot Joel Berk and C. Scott Ananian + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and +that both the copyright notice and this permission notice and +warranty disclaimer appear in supporting documentation, and that the +name of the authors or their employers not be used in advertising or +publicity pertaining to distribution of the software without specific, +written prior permission. + +The authors and their employers disclaim all warranties with regard +to this software, including all implied warranties of merchantability and +fitness. In no event shall the authors or their employers be liable for any +special, indirect or consequential damages or any damages whatsoever resulting +from loss of use, data or profits, whether in an action of contract, +negligence or other tortious action, arising out of or in connection +with the use or performance of this software. + +Java is a trademark of Sun Microsystems, Inc. References to the Java +programming language in relation to JLex are not meant to imply that +Sun endorses this product. +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + + + + + + + +The following license applies to the jar file +stylebook-1.0-b3_xalan-2.jar - Tool for generating Xalan documentation. +Integrated with Xalan-Java 2 and Xerces 2. +Source: http://svn.apache.org/viewvc/xml/stylebook/ +Used by: Xalan-Java 2, Xalan-C++ + +<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. 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. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Xalan", "Xerces", and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 THE APACHE SOFTWARE FOUNDATION OR + * ITS 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. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 1999, International + * Business Machines, Inc., http://www.apache.org. For more + * information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> diff --git a/scripts/scxml2plant/xalan/NOTICE.txt b/scripts/scxml2plant/xalan/NOTICE.txt new file mode 100644 index 0000000000000000000000000000000000000000..132f8bccd53579fb004f2b5d095588d3ff9e832a --- /dev/null +++ b/scripts/scxml2plant/xalan/NOTICE.txt @@ -0,0 +1,80 @@ + ========================================================================= + == NOTICE file corresponding to section 4(d) of the Apache License, == + == Version 2.0, in this case for the Apache Xalan Java distribution. == + ========================================================================= + + Apache Xalan (Xalan XSLT processor) + Copyright 1999-2014 The Apache Software Foundation + + Apache Xalan (Xalan serializer) + Copyright 1999-2012 The Apache Software Foundation + + This product includes software developed at + The Apache Software Foundation (http://www.apache.org/). + + ========================================================================= + Portions of this software was originally based on the following: + - software copyright (c) 1999-2002, Lotus Development Corporation., + http://www.lotus.com. + - software copyright (c) 2001-2002, Sun Microsystems., + http://www.sun.com. + - software copyright (c) 2003, IBM Corporation., + http://www.ibm.com. + + ========================================================================= + The binary distribution package (ie. jars, samples and documentation) of + this product includes software developed by the following: + + - The Apache Software Foundation + - Xerces Java - see LICENSE.txt + - JAXP 1.3 APIs - see LICENSE.txt + - Bytecode Engineering Library - see LICENSE.txt + - Regular Expression - see LICENSE.txt + + - Scott Hudson, Frank Flannery, C. Scott Ananian + - CUP Parser Generator runtime (javacup\runtime) - see LICENSE.txt + + ========================================================================= + The source distribution package (ie. all source and tools required to build + Xalan Java) of this product includes software developed by the following: + + - The Apache Software Foundation + - Xerces Java - see LICENSE.txt + - JAXP 1.3 APIs - see LICENSE.txt + - Bytecode Engineering Library - see LICENSE.txt + - Regular Expression - see LICENSE.txt + - Ant - see LICENSE.txt + - Stylebook doc tool - see LICENSE.txt + + - Elliot Joel Berk and C. Scott Ananian + - Lexical Analyzer Generator (JLex) - see LICENSE.txt + + ========================================================================= + Apache Xerces Java + Copyright 1999-2006 The Apache Software Foundation + + This product includes software developed at + The Apache Software Foundation (http://www.apache.org/). + + Portions of Apache Xerces Java in xercesImpl.jar and xml-apis.jar + were originally based on the following: + - software copyright (c) 1999, IBM Corporation., http://www.ibm.com. + - software copyright (c) 1999, Sun Microsystems., http://www.sun.com. + - voluntary contributions made by Paul Eng on behalf of the + Apache Software Foundation that were originally developed at iClick, Inc., + software copyright (c) 1999. + + ========================================================================= + Apache xml-commons xml-apis (redistribution of xml-apis.jar) + + Apache XML Commons + Copyright 2001-2003,2006 The Apache Software Foundation. + + This product includes software developed at + The Apache Software Foundation (http://www.apache.org/). + + Portions of this software were originally based on the following: + - software copyright (c) 1999, IBM Corporation., http://www.ibm.com. + - software copyright (c) 1999, Sun Microsystems., http://www.sun.com. + - software copyright (c) 2000 World Wide Web Consortium, http://www.w3.org + diff --git a/scripts/scxml2plant/xalan/readme.html b/scripts/scxml2plant/xalan/readme.html new file mode 100644 index 0000000000000000000000000000000000000000..538f4286b0308b84b3c4dcfbeb6937ab2d3d56a4 --- /dev/null +++ b/scripts/scxml2plant/xalan/readme.html @@ -0,0 +1,39 @@ +<!-- + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +--> + +<html> +<head> +<title> +</title> +</head> +<body> +<meta content="0; URL=docs/whatsnew.html" http-equiv="Refresh"> + Redirecting to <a href="docs/whatsnew.html">What's New in Xalan_Java 2</a> +</body> +</html> + + + + + + + + + + + + diff --git a/scripts/scxml2plant/xalan/serializer.jar b/scripts/scxml2plant/xalan/serializer.jar new file mode 100644 index 0000000000000000000000000000000000000000..175126880ff58fab0922f3e0cd25ecff765989ba Binary files /dev/null and b/scripts/scxml2plant/xalan/serializer.jar differ diff --git a/scripts/scxml2plant/xalan/xalan.jar b/scripts/scxml2plant/xalan/xalan.jar new file mode 100644 index 0000000000000000000000000000000000000000..5c6c6f947071ef42c8d984f13ace5884e2bc7f03 Binary files /dev/null and b/scripts/scxml2plant/xalan/xalan.jar differ diff --git a/scripts/scxml2plant/xalan/xercesImpl.jar b/scripts/scxml2plant/xalan/xercesImpl.jar new file mode 100644 index 0000000000000000000000000000000000000000..0aaa990f3ecadf60d28b5395dc87bbe49da0cdd7 Binary files /dev/null and b/scripts/scxml2plant/xalan/xercesImpl.jar differ diff --git a/scripts/scxml2plant/xalan/xml-apis.jar b/scripts/scxml2plant/xalan/xml-apis.jar new file mode 100644 index 0000000000000000000000000000000000000000..46733464fc746776c331ecc51061f3a05e662fd1 Binary files /dev/null and b/scripts/scxml2plant/xalan/xml-apis.jar differ diff --git a/scripts/scxml2plant/xalan/xsltc.jar b/scripts/scxml2plant/xalan/xsltc.jar new file mode 100644 index 0000000000000000000000000000000000000000..e11dbeca0aa04a138ea1a5fb29ed331ed02191f6 Binary files /dev/null and b/scripts/scxml2plant/xalan/xsltc.jar differ diff --git a/scripts/scxml2plant/xslt/scxml2plantuml.xslt b/scripts/scxml2plant/xslt/scxml2plantuml.xslt new file mode 100644 index 0000000000000000000000000000000000000000..8468b2c3f684ab52e06678ff41d747407b5751a3 --- /dev/null +++ b/scripts/scxml2plant/xslt/scxml2plantuml.xslt @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="utf-8"?> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:sc="http://www.w3.org/2005/07/scxml"> + + <xsl:output method="text" encoding="utf-8"/> + <xsl:strip-space elements="*" /> + <xsl:template match="text()|@*"/> + <xsl:template match="text()|@*" mode="target"/> + <xsl:template match="text()|@*" mode="id"/> + + <xsl:template match="/sc:scxml"> + <xsl:text>@startuml
</xsl:text> + <xsl:apply-templates select="@initial"/> + <xsl:apply-templates select="*"/> + <xsl:text>@enduml
</xsl:text> + </xsl:template> + + <xsl:template match="@initial"> + <xsl:text>[*] --> </xsl:text> + <xsl:call-template name="gettargetname"> + <xsl:with-param name="id" select="."/> + </xsl:call-template> + <xsl:text>
</xsl:text> + </xsl:template> + + <xsl:template match="sc:initial"> + <xsl:apply-templates select="*"/> + </xsl:template> + + <xsl:template match="sc:final[@id]"> + <xsl:value-of select="concat(@id, ' : <<final>>
')"/> + </xsl:template> + <xsl:template match="sc:final"> + <xsl:text>unnamed : <<final>>
</xsl:text> + </xsl:template> + + <xsl:template match="sc:state"> + <xsl:text>state </xsl:text> + <xsl:apply-templates select="." mode="id"/> + <xsl:text> {
</xsl:text> + + <xsl:apply-templates select="@initial"/> + <xsl:apply-templates select="*"/> + + <xsl:text>}
</xsl:text> + </xsl:template> + + <xsl:template match="sc:history"> + <xsl:text>state </xsl:text> + <xsl:apply-templates select="." mode="id"/> + <xsl:text> {
</xsl:text> + + <xsl:apply-templates select="*"/> + + <xsl:apply-templates select="." mode="id"/> + <xsl:value-of select="concat(' : <<', @type, ' history>>
')"/> + + <xsl:text>}
</xsl:text> + </xsl:template> + + <xsl:template match="sc:parallel"> + <xsl:text>state </xsl:text> + <xsl:apply-templates select="." mode="id"/> + <xsl:text> {
</xsl:text> + + <xsl:for-each select="sc:state | sc:parallel | sc:history"> + <xsl:apply-templates select="."/> + <xsl:if test="position() != last()"> + <xsl:text>||
</xsl:text> + </xsl:if> + </xsl:for-each> + + <xsl:apply-templates select="sc:transition"/> + + <xsl:text>}
</xsl:text> + </xsl:template> + + + <!--get id of the state - special case for initial state--> + <xsl:template match="sc:state[@id] | sc:history[@id] | sc:parallel[@id] | sc:final[@id]" mode="id"> + <xsl:value-of select="@id"/> + </xsl:template> + <xsl:template match="sc:state | sc:history | sc:parallel" mode="id"> + <xsl:text>unnamed</xsl:text> + </xsl:template> + <xsl:template match="sc:initial" mode="id"> + <xsl:text>[*]</xsl:text> + </xsl:template> + + <xsl:template name="gettargetname"> + <xsl:param name="id"/> + <xsl:apply-templates select="//*[@id = $id][1]" mode="id"/> + </xsl:template> + + <!--target can be specified explicitely as some other state--> + <xsl:template match="sc:transition[@target]" mode="target"> + <xsl:call-template name="gettargetname"> + <xsl:with-param name="id" select="@target"/> + </xsl:call-template> + </xsl:template> + <!--or self-transiton when @target not specified--> + <xsl:template match="sc:transition" mode="target"> + <xsl:apply-templates select=".." mode="id"/> + </xsl:template> + + <!--if 'cond' attribute exists it shall be sourrounded with brackets--> + <xsl:template match="sc:transition/@cond"> + <xsl:value-of select="concat('[', ., ']')"/> + </xsl:template> + + <xsl:template match="sc:transition"> + <xsl:apply-templates select=".." mode="id"/> + <xsl:text> --> </xsl:text> + <xsl:apply-templates select="." mode="target"/> + <xsl:if test="@event or @cond"> + <xsl:text> : </xsl:text> + </xsl:if> + <xsl:value-of select="@event"/> + <xsl:apply-templates select="@cond"/> + <xsl:text>
</xsl:text> + </xsl:template> + +</xsl:stylesheet> diff --git a/scripts/scxml2plant/xslt/scxml2plantuml_finaldot.xslt b/scripts/scxml2plant/xslt/scxml2plantuml_finaldot.xslt new file mode 100644 index 0000000000000000000000000000000000000000..f9050a05ddb1f253be2cea26a355830028cbe939 --- /dev/null +++ b/scripts/scxml2plant/xslt/scxml2plantuml_finaldot.xslt @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="utf-8"?> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:sc="http://www.w3.org/2005/07/scxml"> + + <xsl:output method="text" encoding="utf-8"/> + <xsl:strip-space elements="*" /> + <xsl:template match="text()|@*"/> + <xsl:template match="text()|@*" mode="target"/> + <xsl:template match="text()|@*" mode="id"/> + + <xsl:template match="/sc:scxml"> + <xsl:text>@startuml
</xsl:text> + <xsl:apply-templates select="@initial"/> + <xsl:apply-templates select="*"/> + <xsl:text>@enduml
</xsl:text> + </xsl:template> + + <xsl:template match="@initial"> + <xsl:text>[*] --> </xsl:text> + <xsl:call-template name="gettargetname"> + <xsl:with-param name="id" select="."/> + </xsl:call-template> + <xsl:text>
</xsl:text> + </xsl:template> + + <xsl:template match="sc:initial"> + <xsl:apply-templates select="*"/> + </xsl:template> + + <xsl:template match="sc:state"> + <xsl:text>state </xsl:text> + <xsl:apply-templates select="." mode="id"/> + <xsl:text> {
</xsl:text> + + <xsl:apply-templates select="@initial"/> + <xsl:apply-templates select="*"/> + + <xsl:text>}
</xsl:text> + </xsl:template> + + <xsl:template match="sc:history"> + <xsl:text>state </xsl:text> + <xsl:apply-templates select="." mode="id"/> + <xsl:text> {
</xsl:text> + + <xsl:apply-templates select="*"/> + + <xsl:apply-templates select="." mode="id"/> + <xsl:value-of select="concat(' : <<', @type, ' history>>
')"/> + + <xsl:text>}
</xsl:text> + </xsl:template> + + <xsl:template match="sc:parallel"> + <xsl:text>state </xsl:text> + <xsl:apply-templates select="." mode="id"/> + <xsl:text> {
</xsl:text> + + <xsl:for-each select="sc:state | sc:parallel | sc:history"> + <xsl:apply-templates select="."/> + <xsl:if test="position() != last()"> + <xsl:text>||
</xsl:text> + </xsl:if> + </xsl:for-each> + + <xsl:apply-templates select="sc:transition"/> + + <xsl:text>}
</xsl:text> + </xsl:template> + + + <!--get id of the state - special case for initial state--> + <xsl:template match="sc:state[@id] | sc:history[@id] | sc:parallel[@id]" mode="id"> + <xsl:value-of select="@id"/> + </xsl:template> + <xsl:template match="sc:state | sc:history | sc:parallel" mode="id"> + <xsl:text>unnamed</xsl:text> + </xsl:template> + <xsl:template match="sc:initial | sc:final" mode="id"> + <xsl:text>[*]</xsl:text> + </xsl:template> + + <xsl:template name="gettargetname"> + <xsl:param name="id"/> + <xsl:apply-templates select="//*[@id = $id][1]" mode="id"/> + </xsl:template> + + <!--target can be specified explicitely as some other state--> + <xsl:template match="sc:transition[@target]" mode="target"> + <xsl:call-template name="gettargetname"> + <xsl:with-param name="id" select="@target"/> + </xsl:call-template> + </xsl:template> + <!--or self-transiton when @target not specified--> + <xsl:template match="sc:transition" mode="target"> + <xsl:apply-templates select=".." mode="id"/> + </xsl:template> + + <!--if 'cond' attribute exists it shall be sourrounded with brackets--> + <xsl:template match="sc:transition/@cond"> + <xsl:value-of select="concat('[', ., ']')"/> + </xsl:template> + + <xsl:template match="sc:transition"> + <xsl:apply-templates select=".." mode="id"/> + <xsl:text> --> </xsl:text> + <xsl:apply-templates select="." mode="target"/> + <xsl:if test="@event or @cond"> + <xsl:text> : </xsl:text> + </xsl:if> + <xsl:value-of select="@event"/> + <xsl:apply-templates select="@cond"/> + <xsl:text>
</xsl:text> + </xsl:template> + +</xsl:stylesheet>