diff --git a/Audio Files/Il Barbiere di Siviglia Largo al factotum (Peter Mattei).wav b/Audio Files/Il Barbiere di Siviglia Largo al factotum (Peter Mattei).wav new file mode 100644 index 0000000000000000000000000000000000000000..80761bc861d068bae495ee215d02421402a274da Binary files /dev/null and b/Audio Files/Il Barbiere di Siviglia Largo al factotum (Peter Mattei).wav differ diff --git a/Audio Files/Memories.mp3 b/Audio Files/Memories.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..119542bc72ae2d52d5c2512299d777999cc7d658 Binary files /dev/null and b/Audio Files/Memories.mp3 differ diff --git a/Dlls/spcm_datasort_win64.dll b/Dlls/spcm_datasort_win64.dll new file mode 100644 index 0000000000000000000000000000000000000000..6befc844548c6005817787fc1f4ff2f84ed48ca2 Binary files /dev/null and b/Dlls/spcm_datasort_win64.dll differ diff --git a/Dlls/spcm_win64.dll b/Dlls/spcm_win64.dll new file mode 100644 index 0000000000000000000000000000000000000000..b760a3a2733c19f4cd47c85b8fdb070b634a9596 Binary files /dev/null and b/Dlls/spcm_win64.dll differ diff --git a/Hierarchy.txt b/Hierarchy.txt new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Labiview spectrum/installer.ico b/Labiview spectrum/installer.ico new file mode 100644 index 0000000000000000000000000000000000000000..542264800272bd3d3889ee03bbc9afab9fcfbc5a Binary files /dev/null and b/Labiview spectrum/installer.ico differ diff --git a/Labiview spectrum/m4i_xxxx_labview_english.pdf b/Labiview spectrum/m4i_xxxx_labview_english.pdf new file mode 100644 index 0000000000000000000000000000000000000000..82f6ddc5c557afc0baf94e97b58adc4a37edd2b2 Binary files /dev/null and b/Labiview spectrum/m4i_xxxx_labview_english.pdf differ diff --git a/Labiview spectrum/spcm_examples/.ipynb_checkpoints/Untitled-Copy1-checkpoint.ipynb b/Labiview spectrum/spcm_examples/.ipynb_checkpoints/Untitled-Copy1-checkpoint.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..960defaf02841f4802964bba23677809bb14bee1 --- /dev/null +++ b/Labiview spectrum/spcm_examples/.ipynb_checkpoints/Untitled-Copy1-checkpoint.ipynb @@ -0,0 +1,375 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "df = pd.read_excel('14_11_2023 testondigitizer.xlsx')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Time Untitled Untitled 1 Untitled 2 \\\n", + "0 2023-11-14 11:08:21.688000 -0.005829 0 0 \n", + "1 2023-11-14 11:08:22.688000 -0.005798 0 0 \n", + "2 2023-11-14 11:08:23.688000 -0.005646 0 0 \n", + "3 2023-11-14 11:08:24.688000 -0.005310 0 0 \n", + "4 2023-11-14 11:08:25.688000 -0.005554 0 0 \n", + "... ... ... ... ... \n", + "950267 04:32:59 -0.000574 0 0 \n", + "950268 04:33:00 -0.000616 0 0 \n", + "950269 04:33:01 -0.000647 0 0 \n", + "950270 04:33:02 -0.000739 0 0 \n", + "950271 04:33:03 -0.000598 0 0 \n", + "\n", + " Untitled 3 \n", + "0 0 \n", + "1 0 \n", + "2 0 \n", + "3 0 \n", + "4 0 \n", + "... ... \n", + "950267 0 \n", + "950268 0 \n", + "950269 0 \n", + "950270 0 \n", + "950271 0 \n", + "\n", + "[950272 rows x 5 columns]\n" + ] + } + ], + "source": [ + "print(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt \n", + "import datetime\n", + "\n", + "\n", + "df.plot(kind='line', \n", + " x= 'Time', \n", + " y='Untitled', \n", + " color='red')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "ename": "UnicodeEncodeError", + "evalue": "'charmap' codec can't encode character '\\x96' in position 268: character maps to <undefined>", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mUnicodeEncodeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m<ipython-input-9-86d55b5d0aa7>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'stream13122023_boh.txt'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'w'\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0moutput_file\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 14\u001b[0m \u001b[0mfile_writer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcsv\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwriter\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0moutput_file\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 15\u001b[1;33m \u001b[0mfile_writer\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwriterows\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnewLines\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 16\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 17\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\encodings\\cp1252.py\u001b[0m in \u001b[0;36mencode\u001b[1;34m(self, input, final)\u001b[0m\n\u001b[0;32m 17\u001b[0m \u001b[1;32mclass\u001b[0m \u001b[0mIncrementalEncoder\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcodecs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mIncrementalEncoder\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 18\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mencode\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfinal\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 19\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mcodecs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcharmap_encode\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minput\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0merrors\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mencoding_table\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 20\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 21\u001b[0m \u001b[1;32mclass\u001b[0m \u001b[0mIncrementalDecoder\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcodecs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mIncrementalDecoder\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mUnicodeEncodeError\u001b[0m: 'charmap' codec can't encode character '\\x96' in position 268: character maps to <undefined>" + ] + } + ], + "source": [ + "\n", + "import binascii\n", + "import csv\n", + "import serial\n", + "import numpy as np\n", + "\n", + "with open('stream13122023_second_try.txt', 'rb') as input_file:\n", + " lines = input_file.readlines()\n", + " newLines = []\n", + " for line in lines:\n", + " newLine = line.decode('utf-8') \n", + " newLines.append(newLine)\n", + "\n", + "with open('stream13122023_boh.txt', 'w') as output_file:\n", + " file_writer = csv.writer(output_file)\n", + " file_writer.writerows(newLines)\n", + " \n", + " \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "ename": "MemoryError", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mMemoryError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m<ipython-input-11-a131a711f7a5>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[1;31m# Convert each 16-bit integer to ASCII and create a string\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 8\u001b[1;33m \u001b[0mascii_data\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m''\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mchr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mvalue\u001b[0m \u001b[1;32min\u001b[0m \u001b[0msixteen_bit_values\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 9\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m<ipython-input-11-a131a711f7a5>\u001b[0m in \u001b[0;36m<listcomp>\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[1;31m# Convert each 16-bit integer to ASCII and create a string\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 8\u001b[1;33m \u001b[0mascii_data\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m''\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mchr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mvalue\u001b[0m \u001b[1;32min\u001b[0m \u001b[0msixteen_bit_values\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 9\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mMemoryError\u001b[0m: " + ] + } + ], + "source": [ + "\n", + "with open('stream_second_13122023 - Copy.txt', 'rb') as binary_file:\n", + " binary_data = binary_file.read()\n", + "\n", + " # Convert pairs of bytes to 16-bit integers\n", + " sixteen_bit_values = [int.from_bytes(binary_data[i:i+2], byteorder='little') for i in range(0, len(binary_data), 2)]\n", + "\n", + " # Convert each 16-bit integer to ASCII and create a string\n", + " ascii_data = ''.join([chr(value) for value in sixteen_bit_values])\n", + "\n", + "\n", + " with open('stream13122023_second_try.txt', 'w', encoding='utf-8', errors='replace') as ascii_file:\n", + " ascii_file.write(ascii_data)\n", + "\n", + "print(f\"Conversion complete. ASCII data written to \")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Conversion complete. ASCII data written to \n" + ] + } + ], + "source": [ + "import struct\n", + "chunk_size = 2 # Set an appropriate chunk size\n", + "\n", + "with open('stream_oldprogram1kcps__1MHz_30 sec.dat', 'rb') as binary_file:\n", + " with open('stream_oldprogram1kcps__1MHz_30 sec.txt', 'w', encoding='utf-8', errors='replace') as ascii_file:\n", + " while True:\n", + " chunk = binary_file.read(chunk_size)\n", + " if not chunk:\n", + " break\n", + "\n", + " \n", + " # Interpret each pair of bytes as a 16-bit float\n", + " sixteen_bit_float = struct.unpack('=h', chunk)[0] \n", + " # Convert the 16-bit float to its ASCII representation\n", + " ascii_data = str(sixteen_bit_float)\n", + " \n", + " # Write to output file\n", + " ascii_file.write(ascii_data + '\\n')\n", + "print(f\"Conversion complete. ASCII data written to \")" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "18874368\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Read the data from the text file\n", + "with open('stream_oldprogram1kcps__1MHz_30 sec.txt', 'r') as file:\n", + " data = [float(line.strip()) for line in file]\n", + " mean_data = np.array(data)\n", + "# Generate a sequence of numbers as the x-axis values\n", + "x_values = np.arange(len(data))\n", + "print(len(x_values))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Numbers of peaks= 18434\n" + ] + }, + { + "data": { + "image/png": "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LrlEV1xxhdrb23XllVfqbW97m17/+tfrjDPO0OLFi3XwwQdLktrb2/X2t79dhx56qN7xjnfomGOO0dy5cyVJM2fO1Nq1a7V48WIdcMAB+sAHPqCDDjpIZ5xxhrZv3y5Juuyyy3TUUUfpsMMO01ve8ha1t7dblf0d73iHzjjjDP3xj3+UJH3ta1/TUUcdpYMPPljnnXeePM/TX//6V82dO1fvfOc7NWvWLG3fvj32fcNFenAAAACgRr76r6c1f/nmqv7MA3cZr6+8/qB+v/7000/ryCOPLHtt/Pjx2m233bRo0SJJ0v33368nnnhCO+ywgxYvXlx4389//nNNmjRJTzzxhJ566inNmjUr9ncsXLhQV111lS677DK9/e1v1zXXXKNzzz1Xb37zm/WBD3xAkvTFL35Rl19+uf7f//t/Vn/fEUccoQULFkiSPvrRj+rLX/6yJOld73qX/v3vf+utb32rfvrTn+riiy/W7Nmz+33f61//eqvfW4kZJQAAAGAE8TwvNstb6eunn366dthhh8h77rnnHp199tmSpIMPPliHHnpo7O/YY489CkHUkUceWQi2nnrqKZ144ok65JBD9Ic//EFPP/30kMofmjNnjo455hgdcsghuv322/v9eUnfZ4MZJQAAAKBGBpr5qZWDDjpI11xzTdlrmzdv1pIlS7TXXnvpkUce0ZgxY2K/N+mStdbW1sLHrusWlt69973v1T/+8Q8ddthhuvLKK3XHHXdYl/+xxx7T7Nmz1dHRofPPP19z587VrrvuqgsvvDD2LKSk77PFjBIAAAAwgpx22mlqb2/Xb3/7W0lSb2+vPvWpT+m9732vRo8ePeD3vuIVr9DVV18tSZo/f76efPJJq9+9ZcsWTZs2Td3d3frDH/5gXfZrrrlGN998s84555xCsLPjjjtq69atZQknxo0bpy1btkjSgO8bDmaUAAAAgBHEGKO///3vOv/88/X1r39dfX19es1rXqNvfvObg37v+eefr/e85z069NBDdfjhh+vQQw/VhAkTEv/ur3/96zrmmGO0++6765BDDikEMwO55JJL9Pvf/17btm3TwQcfrNtvv11TpkyRJH3gAx/QIYccopkzZ+qoo44qfM973/tefehDH9KoUaN0//339/u+4TDVyAiRRbNnz/bCDB0AAABAvTzzzDM64IAD0i7GkPT29qq7u1ttbW16/vnnddppp+m5555TS0tL2kUbtrh/F2PMI57nzY57PzNKAAAAACT56cFPOeUUdXd3y/M8XXrppSMiSBoKAiUAAAAAkvy9P6zK8pHMAQAAAAAqECgBAAAAQAUCJQAAAACoQKAEAAAAABUIlAAAAIARxnVdzZo1SwcffLDe9ra3qb293fpn3HHHHXrd615Xg9I1BgIlAAAAIC3f/a40Z075a3Pm+K8Pw6hRozRv3jw99dRTamlp0S9+8Yth/bxmRKAEAABQCzXqAI9YzVpfRx0lvf3txb99zhz/86OOqtqvOPHEE7Vo0SJt27ZN//Vf/6WjjjpKhx9+uK699lpJ0uLFi3XiiSfqiCOO0BFHHKH77rsv8jMefvhhHX744XrhhRd05513atasWZo1a5YOP/xwbdmypWplzRICJQAjT7M+bAFkSx06wCNKs9bXKadIV1/t/61f/rL/36uv9l+vgp6eHt1www065JBDdNFFF+nUU0/Vww8/rDlz5ujTn/60tm3bpp122km33HKLHn30Uf35z3/Wxz72sbKfcd999+lDH/qQrr32Wu255566+OKL9bOf/Uzz5s3T3XffrVGjRlWlrFlDoARg5Aketr233qbOnt7medgOFYElUBtBB7j3bW/Xpv/9XNU7wCNOUF89b32bnj3vf5qrvk45Rfrwh6Wvf93/bxX+5u3bt2vWrFmaPXu2dtttN73//e/XzTffrG9/+9uaNWuWTj75ZHV0dOjll19Wd3e3PvCBD+iQQw7R2972Ns2fP7/wc5555hmdd955+te//qXddttNknTCCSfok5/8pH784x9r48aNyuVywy5vFhEoARh5gofttje9Vb846dzmetgORbOO4gL1cMop+ul+r9KE73+7ah3gEe2UU/Sz/U/Xfpf9qLnqa84c6dJLpS99yf9v5eDVEIR7lObNm6ef/OQnamlpked5uuaaawqvv/zyyzrggAN0ySWXaOrUqXr88cc1d+5cdXV1FX7OtGnT1NbWpscee6zw2gUXXKBf/epX2r59u4499lgtWLBg2OXNIgKlNDGKG496QTWccop+fehZ+vh9f2quh+1QBIHl9je9RT8/8T8JLEO0RXaor3hz5ujcx67Xj44/u2od4BGtGesrHJy6+mrpa18rLsOrwd9+5pln6ic/+Yk8z5OkQvCzadMmTZs2TY7j6He/+516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\n", + "text/plain": [ + "<Figure size 1008x864 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "from scipy.signal import find_peaks\n", + "from scipy.signal import find_peaks, peak_prominences\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Assuming x_values and data are already defined\n", + "\n", + "# Convert mean_data to integers\n", + "integer_array = mean_data.astype(int)\n", + "\n", + "# Find peaks with a prominence of 6000\n", + "peaks, _ = find_peaks(integer_array, prominence=2200)\n", + "prominences = peaks\n", + "#prominences(peaks)\n", + "print('Numbers of peaks=',len(prominences))\n", + "\n", + "# Create a simple 2D plot\n", + "\n", + "# Plot peaks on the 2D plot\n", + "data = data[0:10000]\n", + "x_values = x_values[0:10000]\n", + "\n", + "plt.figure(figsize=(14, 12))\n", + "plt.plot(x_values, data, label='Original Data')\n", + "valid_peaks = peaks[peaks < len(data)]\n", + "plt.plot(np.array(x_values)[valid_peaks], np.array(data)[valid_peaks], \"rx\", label='Peaks')\n", + "\n", + "\n", + "# Additional settings for visualization\n", + "plt.xlabel('X Values')\n", + "plt.ylabel('Data Values')\n", + "plt.title('2D Plot of the Data with Peaks')\n", + "plt.legend()\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from astropy.io import fits\n", + "from astropy.table import Table\n", + "\n", + "with open('stream 14122023 BURST MODE SECOND.txt', 'r') as file:\n", + " data = np.array([float(line.strip()) for line in file])\n", + "# Add a fake column (for example, a sequence of numbers)\n", + "fake_column = np.arange(len(data))\n", + "\n", + "# Create a FITS table with two columns\n", + "data_table = Table({'Data':data, 'FakeColumn':fake_column,})\n", + "\n", + "# Save the FITS table to a file\n", + "output_fits_path = 'output_data.fits'\n", + "data_table.write(output_fits_path, overwrite=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "65536" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "81920/2048\n", + "\n", + "2**16" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Labiview spectrum/spcm_examples/M4_AD_Fifo.vi b/Labiview spectrum/spcm_examples/M4_AD_Fifo.vi new file mode 100644 index 0000000000000000000000000000000000000000..a91b07312d9953146595e12a5eb2e61b23e10477 Binary files /dev/null and b/Labiview spectrum/spcm_examples/M4_AD_Fifo.vi differ diff --git a/Labiview spectrum/spcm_examples/M4_AD_Std.vi b/Labiview spectrum/spcm_examples/M4_AD_Std.vi new file mode 100644 index 0000000000000000000000000000000000000000..8eccd77c00cefdf58784c0aad08027b41d7fe0aa Binary files /dev/null and b/Labiview spectrum/spcm_examples/M4_AD_Std.vi differ diff --git a/Labiview spectrum/spcm_examples/M4_AD_Std_ABA.vi b/Labiview spectrum/spcm_examples/M4_AD_Std_ABA.vi new file mode 100644 index 0000000000000000000000000000000000000000..4400b24ae8f65ed644b83c3c209d1e00b9659eb4 Binary files /dev/null and b/Labiview spectrum/spcm_examples/M4_AD_Std_ABA.vi differ diff --git a/Labiview spectrum/spcm_examples/M4_AD_Std_Average.vi b/Labiview spectrum/spcm_examples/M4_AD_Std_Average.vi new file mode 100644 index 0000000000000000000000000000000000000000..40293be323893ab1ad3535b96fc9f1396e5a14dc Binary files /dev/null and b/Labiview spectrum/spcm_examples/M4_AD_Std_Average.vi differ diff --git a/Labiview spectrum/spcm_examples/M4_AD_Std_Multi_TS.vi b/Labiview spectrum/spcm_examples/M4_AD_Std_Multi_TS.vi new file mode 100644 index 0000000000000000000000000000000000000000..67489a34f193603dbc4da25324fbd3b93288a4ea Binary files /dev/null and b/Labiview spectrum/spcm_examples/M4_AD_Std_Multi_TS.vi differ diff --git a/Labiview spectrum/spcm_examples/M4_AD_Std_SegmentStatistic.vi b/Labiview spectrum/spcm_examples/M4_AD_Std_SegmentStatistic.vi new file mode 100644 index 0000000000000000000000000000000000000000..6d6e8fcd7387f456cd170b19dc3a99055599c319 Binary files /dev/null and b/Labiview spectrum/spcm_examples/M4_AD_Std_SegmentStatistic.vi differ diff --git a/Labiview spectrum/spcm_examples/M4_AD_Std_Sync.vi b/Labiview spectrum/spcm_examples/M4_AD_Std_Sync.vi new file mode 100644 index 0000000000000000000000000000000000000000..249ffaea5d2ce6dd44fc8a875cbe52958bbf55c9 Binary files /dev/null and b/Labiview spectrum/spcm_examples/M4_AD_Std_Sync.vi differ diff --git a/Labiview spectrum/spcm_examples/Untitled-Copy1.ipynb b/Labiview spectrum/spcm_examples/Untitled-Copy1.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..5b2a77293fd1668fc396a60b9f0e1f3b04e99d07 --- /dev/null +++ b/Labiview spectrum/spcm_examples/Untitled-Copy1.ipynb @@ -0,0 +1,371 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "df = pd.read_excel('14_11_2023 testondigitizer.xlsx')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Time Untitled Untitled 1 Untitled 2 \\\n", + "0 2023-11-14 11:08:21.688000 -0.005829 0 0 \n", + "1 2023-11-14 11:08:22.688000 -0.005798 0 0 \n", + "2 2023-11-14 11:08:23.688000 -0.005646 0 0 \n", + "3 2023-11-14 11:08:24.688000 -0.005310 0 0 \n", + "4 2023-11-14 11:08:25.688000 -0.005554 0 0 \n", + "... ... ... ... ... \n", + "950267 04:32:59 -0.000574 0 0 \n", + "950268 04:33:00 -0.000616 0 0 \n", + "950269 04:33:01 -0.000647 0 0 \n", + "950270 04:33:02 -0.000739 0 0 \n", + "950271 04:33:03 -0.000598 0 0 \n", + "\n", + " Untitled 3 \n", + "0 0 \n", + "1 0 \n", + "2 0 \n", + "3 0 \n", + "4 0 \n", + "... ... \n", + "950267 0 \n", + "950268 0 \n", + "950269 0 \n", + "950270 0 \n", + "950271 0 \n", + "\n", + "[950272 rows x 5 columns]\n" + ] + } + ], + "source": [ + "print(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt \n", + "import datetime\n", + "\n", + "\n", + "df.plot(kind='line', \n", + " x= 'Time', \n", + " y='Untitled', \n", + " color='red')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "ename": "UnicodeEncodeError", + "evalue": "'charmap' codec can't encode character '\\x96' in position 268: character maps to <undefined>", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mUnicodeEncodeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m<ipython-input-9-86d55b5d0aa7>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'stream13122023_boh.txt'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'w'\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0moutput_file\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 14\u001b[0m \u001b[0mfile_writer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcsv\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwriter\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0moutput_file\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 15\u001b[1;33m \u001b[0mfile_writer\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwriterows\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnewLines\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 16\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 17\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\encodings\\cp1252.py\u001b[0m in \u001b[0;36mencode\u001b[1;34m(self, input, final)\u001b[0m\n\u001b[0;32m 17\u001b[0m \u001b[1;32mclass\u001b[0m \u001b[0mIncrementalEncoder\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcodecs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mIncrementalEncoder\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 18\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mencode\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfinal\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 19\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mcodecs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcharmap_encode\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minput\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0merrors\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mencoding_table\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 20\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 21\u001b[0m \u001b[1;32mclass\u001b[0m \u001b[0mIncrementalDecoder\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcodecs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mIncrementalDecoder\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mUnicodeEncodeError\u001b[0m: 'charmap' codec can't encode character '\\x96' in position 268: character maps to <undefined>" + ] + } + ], + "source": [ + "\n", + "import binascii\n", + "import csv\n", + "import serial\n", + "import numpy as np\n", + "\n", + "with open('stream13122023_second_try.txt', 'rb') as input_file:\n", + " lines = input_file.readlines()\n", + " newLines = []\n", + " for line in lines:\n", + " newLine = line.decode('utf-8') \n", + " newLines.append(newLine)\n", + "\n", + "with open('stream13122023_boh.txt', 'w') as output_file:\n", + " file_writer = csv.writer(output_file)\n", + " file_writer.writerows(newLines)\n", + " \n", + " \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "ename": "MemoryError", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mMemoryError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m<ipython-input-11-a131a711f7a5>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[1;31m# Convert each 16-bit integer to ASCII and create a string\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 8\u001b[1;33m \u001b[0mascii_data\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m''\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mchr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mvalue\u001b[0m \u001b[1;32min\u001b[0m \u001b[0msixteen_bit_values\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 9\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m<ipython-input-11-a131a711f7a5>\u001b[0m in \u001b[0;36m<listcomp>\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[1;31m# Convert each 16-bit integer to ASCII and create a string\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 8\u001b[1;33m \u001b[0mascii_data\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m''\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mchr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mvalue\u001b[0m \u001b[1;32min\u001b[0m \u001b[0msixteen_bit_values\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 9\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mMemoryError\u001b[0m: " + ] + } + ], + "source": [ + "\n", + "with open('stream_second_13122023 - Copy.txt', 'rb') as binary_file:\n", + " binary_data = binary_file.read()\n", + "\n", + " # Convert pairs of bytes to 16-bit integers\n", + " sixteen_bit_values = [int.from_bytes(binary_data[i:i+2], byteorder='little') for i in range(0, len(binary_data), 2)]\n", + "\n", + " # Convert each 16-bit integer to ASCII and create a string\n", + " ascii_data = ''.join([chr(value) for value in sixteen_bit_values])\n", + "\n", + "\n", + " with open('stream13122023_second_try.txt', 'w', encoding='utf-8', errors='replace') as ascii_file:\n", + " ascii_file.write(ascii_data)\n", + "\n", + "print(f\"Conversion complete. ASCII data written to \")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Conversion complete. ASCII data written to \n" + ] + } + ], + "source": [ + "import struct\n", + "chunk_size = 2 # Set an appropriate chunk size\n", + "\n", + "with open('streamCh0_1.dat', 'rb') as binary_file:\n", + " with open('streamCh0_1.txt', 'w', encoding='utf-8', errors='replace') as ascii_file:\n", + " while True:\n", + " chunk = binary_file.read(chunk_size)\n", + " if not chunk:\n", + " break\n", + "\n", + " \n", + " # Interpret each pair of bytes as a 16-bit float\n", + " sixteen_bit_float = struct.unpack('=h', chunk)[0] \n", + " # Convert the 16-bit float to its ASCII representation\n", + " ascii_data = str(sixteen_bit_float)\n", + " \n", + " # Write to output file\n", + " ascii_file.write(ascii_data + '\\n')\n", + "print(f\"Conversion complete. ASCII data written to \")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0 1 2 ... 2097149 2097150 2097151]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Read the data from the text file\n", + "with open('streamCh0_1.txt', 'r') as file:\n", + " data = [float(line.strip()) for line in file]\n", + " mean_data = np.array(data)\n", + "# Generate a sequence of numbers as the x-axis values\n", + "x_values = np.arange(len(data))\n", + "print((x_values))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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zx999NE655xzdNJJJ+nlL3+5HnjggRHf79JLL9Xq1av36lk6NdpByUv6mXPudufcxem5w733ayQp/XpYev5oSSvMvSvTc0enx+XzFc65i51zC51zCzds2LAffxoAAADAwcF7r5e//OV62ctepsWLF+vhhx/Wjh079Dd/8zeVa4eHh3XUUUfp8ssvH/F9f/KTn2jOnDn7/Xn/8i//UnfddZcWL16s17zmNXruc5+rkf4sPxGC0jO990+R9EJJf+qc+60218YaB32b89WT3n/We3+e9/68Qw89dM+fFgAAADjIXXvttZoyZYre+ta3SpJ6enr0yU9+Ul/84hfV39+vSy+9VK961av0kpe8RBdddJGWLVumM844Q5LU39+vV7/61TrrrLP0mte8Rk972tO0cOFCSdLxxx+vjRs3atmyZTr11FP1jne8Q6effrouuugi7dq1S5L0uc99Tk996lN19tln6xWveIX6+/v36Nlf85rX6KKLLtI3vvENSdI//MM/6KlPfarOOOMMXXzxxfLe6/LLL9fChQv1+te/Xuecc4527doVvW5fjep4cO/96vTreufc9ySdL2mdc+5I7/2atK1ufXr5SknHmNsXSFqdnl8QOQ8AAACMax/50f16YPW2/fqepx01Sx96yem1r99///0699xzg3OzZs3SscceqyVLlkiSbr75Zt1zzz2aN2+eli1bll/36U9/WnPnztU999yj++67T+ecc070MxYvXqxvfvOb+tznPqdXv/rVuuKKK/SGN7xBL3/5y/WOd7xDkvS3f/u3+sIXvqA/+7M/26Of31Oe8hQ99NBDkqR3vetd+vu//3tJ0hvf+EZdeeWVeuUrX6lLLrlEH//4x3XeeefVXveSl7xkjz63bNQqSs656c65mdmxpIsk3Sfph5LenF72Zkk/SI9/KOm1zrnJzrkT1BracGvanrfdOXdBOu3uTeYeAAAAAIb3PjrlzZ5/3vOep3nz5lWuufHGG/Xa175WknTGGWforLPOin7GCSeckIeoc889Nw9b9913n5797GfrzDPP1Ne//nXdf//9e/X8meuuu05Pe9rTdOaZZ+raa6+tfb9Or9sTo1lROlzS99J/GL2SvuG9/6lz7jZJlznn3iZpuaRXSZL3/n7n3GWSHpA0LOlPvffN9L3+RNKlkqZKuir9AQAAAIxr7So/o+X000/X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\n", + "text/plain": [ + "<Figure size 1008x864 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "from scipy.signal import find_peaks\n", + "from scipy.signal import find_peaks, peak_prominences\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Assuming x_values and data are already defined\n", + "\n", + "# Convert mean_data to integers\n", + "integer_array = mean_data.astype(int)\n", + "\n", + "# Find peaks with a prominence of 6000\n", + "# peaks, _ = find_peaks(integer_array, prominence=1000)\n", + "# prominences = peaks\n", + "# #prominences(peaks)\n", + "# print('Numbers of peaks=',len(prominences))\n", + "\n", + "# Create a simple 2D plot\n", + "\n", + "# Plot peaks on the 2D plot\n", + "data = data[0:512]\n", + "x_values = x_values[0:512]\n", + "\n", + "plt.figure(figsize=(14, 12))\n", + "plt.plot(x_values, data, label='Original Data')\n", + "# valid_peaks = peaks[peaks < len(data)]\n", + "# plt.plot(np.array(x_values)[valid_peaks], np.array(data)[valid_peaks], \"rx\", label='Peaks')\n", + "\n", + "\n", + "# Additional settings for visualization\n", + "plt.xlabel('X Values')\n", + "plt.ylabel('Data Values')\n", + "plt.title('2D Plot of the Data with Peaks')\n", + "plt.legend()\n", + "plt.show()\n", + "plt.close()" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from astropy.io import fits\n", + "from astropy.table import Table\n", + "\n", + "with open('stream 14122023 BURST MODE SECOND.txt', 'r') as file:\n", + " data = np.array([float(line.strip()) for line in file])\n", + "# Add a fake column (for example, a sequence of numbers)\n", + "fake_column = np.arange(len(data))\n", + "\n", + "# Create a FITS table with two columns\n", + "data_table = Table({'Data':data, 'FakeColumn':fake_column,})\n", + "\n", + "# Save the FITS table to a file\n", + "output_fits_path = 'output_data.fits'\n", + "data_table.write(output_fits_path, overwrite=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "65536" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "81920/2048\n", + "\n", + "2**16" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Labiview spectrum/spcm_examples/spcm_library/spcm_card_common.llb b/Labiview spectrum/spcm_examples/spcm_library/spcm_card_common.llb new file mode 100644 index 0000000000000000000000000000000000000000..5a9e8a3065f369ca6a5015b270f7bf6b253764a6 Binary files /dev/null and b/Labiview spectrum/spcm_examples/spcm_library/spcm_card_common.llb differ diff --git a/Labiview spectrum/spcm_examples/spcm_library/spcm_card_m4i.llb b/Labiview spectrum/spcm_examples/spcm_library/spcm_card_m4i.llb new file mode 100644 index 0000000000000000000000000000000000000000..40aaacc6f65df6ce7aabf98a5752260bd413c0bd Binary files /dev/null and b/Labiview spectrum/spcm_examples/spcm_library/spcm_card_m4i.llb differ diff --git a/Labiview spectrum/spcm_examples/spcm_library/spcm_drv_interface.llb b/Labiview spectrum/spcm_examples/spcm_library/spcm_drv_interface.llb new file mode 100644 index 0000000000000000000000000000000000000000..6125ae187bb6123c3f6423806a106f4528b3f624 Binary files /dev/null and b/Labiview spectrum/spcm_examples/spcm_library/spcm_drv_interface.llb differ diff --git a/Labiview spectrum/spcm_examples/spcm_library/spcm_gui_common.llb b/Labiview spectrum/spcm_examples/spcm_library/spcm_gui_common.llb new file mode 100644 index 0000000000000000000000000000000000000000..7c5af46fd9a8a1d02f3af6093ac892810907d4a0 Binary files /dev/null and b/Labiview spectrum/spcm_examples/spcm_library/spcm_gui_common.llb differ diff --git a/Labiview spectrum/spcm_examples/spcm_library/spcm_gui_m4i.llb b/Labiview spectrum/spcm_examples/spcm_library/spcm_gui_m4i.llb new file mode 100644 index 0000000000000000000000000000000000000000..dd047a3551855e7d4795f6b8be50a28aafb379bd Binary files /dev/null and b/Labiview spectrum/spcm_examples/spcm_library/spcm_gui_m4i.llb differ diff --git a/Labiview spectrum/uninst.exe b/Labiview spectrum/uninst.exe new file mode 100644 index 0000000000000000000000000000000000000000..4c79b3dfebd12932b7397d04d7c9bd6751f5ea50 Binary files /dev/null and b/Labiview spectrum/uninst.exe differ diff --git a/README.md b/README.md index 638b87588cabcec33aa562211411578654df82f5..00af71b9e96569292f4a0356f139083e90ae1326 100644 --- a/README.md +++ b/README.md @@ -1,93 +1,69 @@ -# swipe-labview-iasfbo +# SWIPE LabVIEW INSTALLATION GUIDE + +HELLO! +Here is a quick guide to get SWIPE LabVIEW up and running on a new machine without getting crazy. + +1. PREREQUISITES + • Operating System: Windows 10 or newer (64-bit) + • LabVIEW: Version 2022 Q3 (64-bit) + – Download and install from NI + – Activate your LabVIEW license before proceeding + +2. DEPENDENCIES + a) VI Package Manager (VIPM) + – Install the Live HDF5 package (v1.2.2.5) via VIPM + – Package name: lvhdf5-1.2.2.5 + + b) Visual Studio (for C++/CLI DLL) + – Install “Desktop development with C++” workload + – Tested on VS 2022 (any recent version should work) + + c) HDF5 File Visualizer + – Download and install from the HDF Group (you have to register to the site before being able to download): + https://www.hdfgroup.org/download-hdf5/ + d) HDF5 View + - Download and install from the HDF Group https://www.hdfgroup.org/download-hdfview/ (software that allows to visualize the File HDF5) + +3. INSTALLATION STEPS + 1. Clone or copy the project folder to your machine. + 2. Open SWIPE LabView.lvproj in LabVIEW. + 3. Select the VI "Fifo_ToBinaryFile3_07_2024_tests" + 4. LabVIEW will compile and search for all VIs and DLLs. + + Expected DLLs (place in <project-root>\dlls or add that folder to your PATH, because LabView will start searching them in a default path, you have to select "Browse…" and search them inside the folder LABVIEW SWIPE 29_04_25): + • spcm_win64.dll + • spcm_datasort_win64.dll + • my_my_second_top_beautiful_DLL.dll + + If you see missing-DLL errors for the custom DLL, ensure C++/CLI support is installed. + +4. CONFIGURING THE WAV PLAYER + • Default WAV: Barbiere_di_Siviglia.wav (in <project-root>\sounds) (but if you have just downloaded it you need to reset it) + • Before running the VI, set the “Base Path” (top-left of front panel) to your WAV file. + • If no valid WAV is selected, the acquisition will halt when it finishes. + +5. RUNNING THE PROJECT + 1. Ensure all dependencies are installed and the project is open. + 2. Click “Run” in LabVIEW. + 3. Watch the “Errors” window for missing-VI or missing-DLL warnings. + 4. If no broken arrow "Run" the program should work. + 5. After acquisition completes, the selected WAV file will play automatically. + 6. Enjoy the HDF5 file from the acquisition. + +6. TROUBLESHOOTING + – Missing VI errors + • Verify Live HDF5 is installed in VIPM + • Check VI search paths include the HDF5 package folder + + – DLL load failures + • Confirm DLLs are in a folder on your Windows PATH + • Reinstall the Visual C++ Redistributable matching your VS version + + – WAV file not found + • Double-check the Base Path points to a valid .wav file + • Ensure file permissions allow LabVIEW to read it. + +7. Problems? + +For every problem contact: edoardo.borciani@inaf.it - - -## Getting started - -To make it easy for you to get started with GitLab, here's a list of recommended next steps. - -Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)! - -## Add your files - -- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files -- [ ] [Add files using the command line](https://docs.gitlab.com/topics/git/add_files/#add-files-to-a-git-repository) or push an existing Git repository with the following command: - -``` -cd existing_repo -git remote add origin https://www.ict.inaf.it/gitlab/edoardo.borciani/swipe-labview-iasfbo.git -git branch -M main -git push -uf origin main -``` - -## Integrate with your tools - -- [ ] [Set up project integrations](https://www.ict.inaf.it/gitlab/edoardo.borciani/swipe-labview-iasfbo/-/settings/integrations) - -## Collaborate with your team - -- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/) -- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html) -- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically) -- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/) -- [ ] [Set auto-merge](https://docs.gitlab.com/user/project/merge_requests/auto_merge/) - -## Test and Deploy - -Use the built-in continuous integration in GitLab. - -- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/) -- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/) -- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html) -- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/) -- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html) - -*** - -# Editing this README - -When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template. - -## Suggestions for a good README - -Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information. - -## Name -Choose a self-explaining name for your project. - -## Description -Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors. - -## Badges -On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge. - -## Visuals -Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method. - -## Installation -Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection. - -## Usage -Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README. - -## Support -Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc. - -## Roadmap -If you have ideas for releases in the future, it is a good idea to list them in the README. - -## Contributing -State if you are open to contributions and what your requirements are for accepting them. - -For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self. - -You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser. - -## Authors and acknowledgment -Show your appreciation to those who have contributed to the project. - -## License -For open source projects, say how it is licensed. - -## Project status -If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers. diff --git a/SWIPE_LabVIEW.aliases b/SWIPE_LabVIEW.aliases new file mode 100644 index 0000000000000000000000000000000000000000..ee542d0d5d072d3b9e4cf2387d69e0eaae78bfd7 --- /dev/null +++ b/SWIPE_LabVIEW.aliases @@ -0,0 +1,2 @@ +[My Computer] +My Computer = "192.168.56.1" diff --git a/SWIPE_LabVIEW.lvlps b/SWIPE_LabVIEW.lvlps new file mode 100644 index 0000000000000000000000000000000000000000..fda970285b84daf7ea0254b1ad6bb3e9f929b1c4 --- /dev/null +++ b/SWIPE_LabVIEW.lvlps @@ -0,0 +1,2 @@ +[ProjectWindow_Data] +ProjectExplorer.ClassicPosition[String] = "196,616,596,1081" diff --git a/SWIPE_LabVIEW.lvproj b/SWIPE_LabVIEW.lvproj new file mode 100644 index 0000000000000000000000000000000000000000..952b056a40c51a99e12e1088d3fc9e2e6c34b471 --- /dev/null +++ b/SWIPE_LabVIEW.lvproj @@ -0,0 +1,347 @@ +<?xml version='1.0' encoding='UTF-8'?> +<Project Type="Project" LVVersion="22308000"> + <Property Name="NI.LV.All.SourceOnly" Type="Bool">true</Property> + <Item Name="My Computer" Type="My Computer"> + <Property Name="server.app.propertiesEnabled" Type="Bool">true</Property> + <Property Name="server.control.propertiesEnabled" Type="Bool">true</Property> + <Property Name="server.tcp.enabled" Type="Bool">false</Property> + <Property Name="server.tcp.port" Type="Int">0</Property> + <Property Name="server.tcp.serviceName" Type="Str">My Computer/VI Server</Property> + <Property Name="server.tcp.serviceName.default" Type="Str">My Computer/VI Server</Property> + <Property Name="server.vi.callsEnabled" Type="Bool">true</Property> + <Property Name="server.vi.propertiesEnabled" Type="Bool">true</Property> + <Property Name="specify.custom.address" Type="Bool">false</Property> + <Item Name="SWIPE_Softw_v_1_0.vi" Type="VI" URL="../SWIPE_Softw_v_1_0.vi"/> + <Item Name="Dependencies" Type="Dependencies"> + <Item Name="user.lib" Type="Folder"> + <Item Name="Conditional Auto-Indexing Tunnel (Bool)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (Bool)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (CDB)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (CDB)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (CSG)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (CSG)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (CTL-REF)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (CTL-REF)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (CXT)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (CXT)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (DBL)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (DBL)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (EXT)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (EXT)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (GEN-REF)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (GEN-REF)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (GObj-REF)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (GObj-REF)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (I8)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (I8)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (I16)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (I16)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (I32)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (I32)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (I64)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (I64)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (LVObject)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (LVObject)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (Path)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (Path)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (SGL)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (SGL)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (String)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (String)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (U8)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (U8)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (U16)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (U16)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (U32)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (U32)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (U64)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (U64)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (Variant)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (Variant)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel (VI-REF)__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel (VI-REF)__ogtk.vi"/> + <Item Name="Conditional Auto-Indexing Tunnel__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/array/array.llb/Conditional Auto-Indexing Tunnel__ogtk.vi"/> + <Item Name="Get Header from TD__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/lvdata/lvdata.llb/Get Header from TD__ogtk.vi"/> + <Item Name="Get TDEnum from Data__ogtk.vi" Type="VI" URL="/<userlib>/_OpenG.lib/lvdata/lvdata.llb/Get TDEnum from Data__ogtk.vi"/> + <Item Name="Type Descriptor Enumeration__ogtk.ctl" Type="VI" URL="/<userlib>/_OpenG.lib/lvdata/lvdata.llb/Type Descriptor Enumeration__ogtk.ctl"/> + <Item Name="Type Descriptor Header__ogtk.ctl" Type="VI" URL="/<userlib>/_OpenG.lib/lvdata/lvdata.llb/Type Descriptor Header__ogtk.ctl"/> + <Item Name="Type Descriptor__ogtk.ctl" Type="VI" URL="/<userlib>/_OpenG.lib/lvdata/lvdata.llb/Type Descriptor__ogtk.ctl"/> + </Item> + <Item Name="vi.lib" Type="Folder"> + <Item Name="_2DArrToArrWfms.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/_2DArrToArrWfms.vi"/> + <Item Name="_ArrWfmsTo1DInterleave.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/_ArrWfmsTo1DInterleave.vi"/> + <Item Name="_ArrWfmsTo2DArr.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/_ArrWfmsTo2DArr.vi"/> + <Item Name="_ArrWfmsToData.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/_ArrWfmsToData.vi"/> + <Item Name="_Get Sound Error From Return Value.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/_Get Sound Error From Return Value.vi"/> + <Item Name="_GetConfiguration.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/_GetConfiguration.vi"/> + <Item Name="BuildHelpPath.vi" Type="VI" URL="/<vilib>/Utility/error.llb/BuildHelpPath.vi"/> + <Item Name="Check Attribute Existence.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/Check Attribute Existence.vi"/> + <Item Name="Check if File or Folder Exists.vi" Type="VI" URL="/<vilib>/Utility/libraryn.llb/Check if File or Folder Exists.vi"/> + <Item Name="Check Object Existence.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/Check Object Existence.vi"/> + <Item Name="Check Special Tags.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Check Special Tags.vi"/> + <Item Name="Clear Errors.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Clear Errors.vi"/> + <Item Name="Commit LV Type.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/Commit LV Type.vi"/> + <Item Name="CommitCacheElement.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/CommitCacheElement.vi"/> + <Item Name="compatFileDialog.vi" Type="VI" URL="/<vilib>/_oldvers/_oldvers.llb/compatFileDialog.vi"/> + <Item Name="ConcatPaths.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/common.llb/ConcatPaths.vi"/> + <Item Name="Convert property node font to graphics font.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Convert property node font to graphics font.vi"/> + <Item Name="Details Display Dialog.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Details Display Dialog.vi"/> + <Item Name="DialogType.ctl" Type="VI" URL="/<vilib>/Utility/error.llb/DialogType.ctl"/> + <Item Name="DialogTypeEnum.ctl" Type="VI" URL="/<vilib>/Utility/error.llb/DialogTypeEnum.ctl"/> + <Item Name="Error Cluster From Error Code.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Error Cluster From Error Code.vi"/> + <Item Name="Error Code Database.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Error Code Database.vi"/> + <Item Name="ErrWarn.ctl" Type="VI" URL="/<vilib>/Utility/error.llb/ErrWarn.ctl"/> + <Item Name="eventvkey.ctl" Type="VI" URL="/<vilib>/event_ctls.llb/eventvkey.ctl"/> + <Item Name="Find Tag.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Find Tag.vi"/> + <Item Name="Format Message String.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Format Message String.vi"/> + <Item Name="FormatTime String.vi" Type="VI" URL="/<vilib>/express/express execution control/ElapsedTimeBlock.llb/FormatTime String.vi"/> + <Item Name="General Error Handler Core CORE.vi" Type="VI" URL="/<vilib>/Utility/error.llb/General Error Handler Core CORE.vi"/> + <Item Name="General Error Handler.vi" Type="VI" URL="/<vilib>/Utility/error.llb/General Error Handler.vi"/> + <Item Name="Get String Text Bounds.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Get String Text Bounds.vi"/> + <Item Name="Get Text Rect.vi" Type="VI" URL="/<vilib>/picture/picture.llb/Get Text Rect.vi"/> + <Item Name="GetHelpDir.vi" Type="VI" URL="/<vilib>/Utility/error.llb/GetHelpDir.vi"/> + <Item Name="GetOwningH5FileRefnum.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/GetOwningH5FileRefnum.vi"/> + <Item Name="GetRTHostConnectedProp.vi" Type="VI" URL="/<vilib>/Utility/error.llb/GetRTHostConnectedProp.vi"/> + <Item Name="GetVariantDims.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/xnodehelpers/GetVariantDims.vi"/> + <Item Name="H5_index_t.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/library.llb/H5_index_t.ctl"/> + <Item Name="H5_iter_order_t.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/library.llb/H5_iter_order_t.ctl"/> + <Item Name="H5Aclose.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/H5Aclose.vi"/> + <Item Name="H5Acreate.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/H5Acreate.vi"/> + <Item Name="H5Adelete.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/H5Adelete.vi"/> + <Item Name="H5Aopen_by_name.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/H5Aopen_by_name.vi"/> + <Item Name="H5Aopen_name.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/H5Aopen_name.vi"/> + <Item Name="H5Awrite (Variant).vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/H5Awrite (Variant).vi"/> + <Item Name="H5Dclose.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/dataset.llb/H5Dclose.vi"/> + <Item Name="H5Dcreate.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/dataset.llb/H5Dcreate.vi"/> + <Item Name="H5Dopen.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/dataset.llb/H5Dopen.vi"/> + <Item Name="H5Dwrite (Variant).vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/dataset.llb/H5Dwrite (Variant).vi"/> + <Item Name="H5E_type_t.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/error.llb/H5E_type_t.ctl"/> + <Item Name="H5Eget_msg.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/error.llb/H5Eget_msg.vi"/> + <Item Name="H5F_obj_types_t.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/file.llb/H5F_obj_types_t.ctl"/> + <Item Name="H5Fclose.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/file.llb/H5Fclose.vi"/> + <Item Name="H5Fcreate.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/file.llb/H5Fcreate.vi"/> + <Item Name="H5Fget_obj_count.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/file.llb/H5Fget_obj_count.vi"/> + <Item Name="H5Fget_obj_ids.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/file.llb/H5Fget_obj_ids.vi"/> + <Item Name="H5Fopen.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/file.llb/H5Fopen.vi"/> + <Item Name="H5G_info_t.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/H5G_info_t.ctl"/> + <Item Name="H5G_obj_t.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/H5G_obj_t.ctl"/> + <Item Name="H5G_storage_type_t.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/H5G_storage_type_t.ctl"/> + <Item Name="H5Gclose.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/H5Gclose.vi"/> + <Item Name="H5Gcreate.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/H5Gcreate.vi"/> + <Item Name="H5Gget_info.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/H5Gget_info.vi"/> + <Item Name="H5Gget_num_objs.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/H5Gget_num_objs.vi"/> + <Item Name="H5Gget_objname_by_idx.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/H5Gget_objname_by_idx.vi"/> + <Item Name="H5Gget_objtype_by_idx.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/H5Gget_objtype_by_idx.vi"/> + <Item Name="H5Ginfo2LVH5Ginfo.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/private/H5Ginfo2LVH5Ginfo.vi"/> + <Item Name="H5Gopen.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/H5Gopen.vi"/> + <Item Name="H5Gunlink.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/H5Gunlink.vi"/> + <Item Name="h5helper.dll" Type="Document" URL="/<vilib>/UPVI/lvhdf5/h5helper.dll"/> + <Item Name="H5Idec_ref.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/identifier.llb/H5Idec_ref.vi"/> + <Item Name="H5Iget_file_id.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/identifier.llb/H5Iget_file_id.vi"/> + <Item Name="H5Iget_name.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/identifier.llb/H5Iget_name.vi"/> + <Item Name="H5Iget_ref.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/identifier.llb/H5Iget_ref.vi"/> + <Item Name="H5Iget_type.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/identifier.llb/H5Iget_type.vi"/> + <Item Name="H5Iinc_ref.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/identifier.llb/H5Iinc_ref.vi"/> + <Item Name="H5Ldelete.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/link.llb/H5Ldelete.vi"/> + <Item Name="H5Lget_name_by_idx.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/link.llb/H5Lget_name_by_idx.vi"/> + <Item Name="H5O_info_t.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/object.llb/H5O_info_t.ctl"/> + <Item Name="H5O_token_t.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/object.llb/H5O_token_t.ctl"/> + <Item Name="H5O_type_t.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/object.llb/H5O_type_t.ctl"/> + <Item Name="H5ObjInfoToLVH5ObjInfo.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/object.llb/private/H5ObjInfoToLVH5ObjInfo.vi"/> + <Item Name="H5Oget_info_by_idx.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/object.llb/H5Oget_info_by_idx.vi"/> + <Item Name="H5open.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/library.llb/H5open.vi"/> + <Item Name="H5R Dataset Region Ref.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/reference.llb/H5R Dataset Region Ref.ctl"/> + <Item Name="H5R Object Ref.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/reference.llb/H5R Object Ref.ctl"/> + <Item Name="H5R Ref.lvclass" Type="LVClass" URL="/<vilib>/UPVI/lvhdf5/reference.llb/H5R Ref.lvclass"/> + <Item Name="H5R_type_t.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/reference.llb/H5R_type_t.ctl"/> + <Item Name="H5S_class_t.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/dataspace.llb/H5S_class_t.ctl"/> + <Item Name="H5Sclose.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/dataspace.llb/H5Sclose.vi"/> + <Item Name="H5Screate.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/dataspace.llb/H5Screate.vi"/> + <Item Name="H5Screate_simple.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/dataspace.llb/H5Screate_simple.vi"/> + <Item Name="H5Sselect_all.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/dataspace.llb/H5Sselect_all.vi"/> + <Item Name="H5T_cset_t.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5T_cset_t.ctl"/> + <Item Name="H5Tclose.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tclose.vi"/> + <Item Name="H5Tcommit.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tcommit.vi"/> + <Item Name="H5Tcommitted.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tcommitted.vi"/> + <Item Name="H5Tcopy.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tcopy.vi"/> + <Item Name="H5Tcreate.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tcreate.vi"/> + <Item Name="H5Tenum_create.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tenum_create.vi"/> + <Item Name="H5Tenum_insert (U8).vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tenum_insert (U8).vi"/> + <Item Name="H5Tenum_insert (U16).vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tenum_insert (U16).vi"/> + <Item Name="H5Tenum_insert (U32).vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tenum_insert (U32).vi"/> + <Item Name="H5Tenum_insert (U64).vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tenum_insert (U64).vi"/> + <Item Name="H5Tenum_insert.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tenum_insert.vi"/> + <Item Name="H5Tequal.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tequal.vi"/> + <Item Name="H5Tget_class.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tget_class.vi"/> + <Item Name="H5Tget_member_type.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tget_member_type.vi"/> + <Item Name="H5Tget_nmembers.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tget_nmembers.vi"/> + <Item Name="H5Tget_size.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tget_size.vi"/> + <Item Name="H5Tinsert.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tinsert.vi"/> + <Item Name="H5Topen.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Topen.vi"/> + <Item Name="H5Tset_cset.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tset_cset.vi"/> + <Item Name="H5Tset_fields.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tset_fields.vi"/> + <Item Name="H5Tset_precision.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tset_precision.vi"/> + <Item Name="H5Tset_size.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tset_size.vi"/> + <Item Name="H5Tset_tag.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tset_tag.vi"/> + <Item Name="H5Tvlen_create.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/H5Tvlen_create.vi"/> + <Item Name="HDF5 Ref.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/library.llb/HDF5 Ref.ctl"/> + <Item Name="HDF5 Ref.lvclass" Type="LVClass" URL="/<vilib>/UPVI/lvhdf5/library.llb/HDF5 Ref.lvclass"/> + <Item Name="hdf5.dll" Type="Document" URL="/<vilib>/UPVI/lvhdf5/hdf5.dll"/> + <Item Name="List Group Objects.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/List Group Objects.vi"/> + <Item Name="LoadTypeCache.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/LoadTypeCache.vi"/> + <Item Name="Longest Line Length in Pixels.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Longest Line Length in Pixels.vi"/> + <Item Name="LVBoundsTypeDef.ctl" Type="VI" URL="/<vilib>/Utility/miscctls.llb/LVBoundsTypeDef.ctl"/> + <Item Name="LVH5A Operation.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/LVH5A Operation.ctl"/> + <Item Name="LVH5AreadI16Array.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/private/LVH5AreadI16Array.vi"/> + <Item Name="LVH5AreadString.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/private/LVH5AreadString.vi"/> + <Item Name="LVH5AreadUnitsArray.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/private/LVH5AreadUnitsArray.vi"/> + <Item Name="LVH5AwriteI16Array.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/private/LVH5AwriteI16Array.vi"/> + <Item Name="LVH5AwriteString.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/private/LVH5AwriteString.vi"/> + <Item Name="LVH5AwriteUnitsArray.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/private/LVH5AwriteUnitsArray.vi"/> + <Item Name="LVH5ClassID.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/LVH5ClassID.ctl"/> + <Item Name="LVH5D Operation.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/dataset.llb/LVH5D Operation.ctl"/> + <Item Name="LVH5EMajorID.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/error.llb/LVH5EMajorID.ctl"/> + <Item Name="LVH5EMinorID.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/error.llb/LVH5EMinorID.ctl"/> + <Item Name="LVH5EPushAndErrCluster.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/error.llb/LVH5EPushAndErrCluster.vi"/> + <Item Name="LVH5F Operation.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/file.llb/LVH5F Operation.ctl"/> + <Item Name="LVH5G_info_t.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/LVH5G_info_t.ctl"/> + <Item Name="LVH5LoadSymbol.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/library.llb/LVH5LoadSymbol.vi"/> + <Item Name="LVH5O_info_t.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/object.llb/LVH5O_info_t.ctl"/> + <Item Name="LVH5Screate_matching_space (Variant).vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/dataspace.llb/LVH5Screate_matching_space (Variant).vi"/> + <Item Name="LVH5StringParameters.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/LVH5StringParameters.ctl"/> + <Item Name="LVH5TCloseTypeCache.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/LVH5TCloseTypeCache.vi"/> + <Item Name="LVH5Tcreate_dataset_type (Variant).vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/LVH5Tcreate_dataset_type (Variant).vi"/> + <Item Name="LVH5Tcreate_element_type (Variant).vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/LVH5Tcreate_element_type (Variant).vi"/> + <Item Name="LVH5TGetPredefinedType.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/LVH5TGetPredefinedType.vi"/> + <Item Name="LVHDF5 Error Cluster.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/error.llb/LVHDF5 Error Cluster.ctl"/> + <Item Name="LVHDF5 PQ Typename.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/LVHDF5 PQ Typename.vi"/> + <Item Name="LVNumericRepresentation.ctl" Type="VI" URL="/<vilib>/numeric/LVNumericRepresentation.ctl"/> + <Item Name="LVRectTypeDef.ctl" Type="VI" URL="/<vilib>/Utility/miscctls.llb/LVRectTypeDef.ctl"/> + <Item Name="LVSWMR Type.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/file.llb/LVSWMR Type.ctl"/> + <Item Name="LVTypeElement.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/LVTypeElement.ctl"/> + <Item Name="LVTypeTable.ctl" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/LVTypeTable.ctl"/> + <Item Name="Make Timestamp Compound.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/Make Timestamp Compound.vi"/> + <Item Name="MakeComplexCluster.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/MakeComplexCluster.vi"/> + <Item Name="MakeUnitArrayType.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/private/MakeUnitArrayType.vi"/> + <Item Name="NI_AALBase.lvlib" Type="Library" URL="/<vilib>/Analysis/NI_AALBase.lvlib"/> + <Item Name="NI_Data Type.lvlib" Type="Library" URL="/<vilib>/Utility/Data Type/NI_Data Type.lvlib"/> + <Item Name="NI_FileType.lvlib" Type="Library" URL="/<vilib>/Utility/lvfile.llb/NI_FileType.lvlib"/> + <Item Name="NI_PackedLibraryUtility.lvlib" Type="Library" URL="/<vilib>/Utility/LVLibp/NI_PackedLibraryUtility.lvlib"/> + <Item Name="Not an HDF5 Refnum Constant.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/identifier.llb/Not an HDF5 Refnum Constant.vi"/> + <Item Name="Not an HDF5 Refnum.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/identifier.llb/Not an HDF5 Refnum.vi"/> + <Item Name="Not Found Dialog.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Not Found Dialog.vi"/> + <Item Name="OpenCreate LV Type Group.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/OpenCreate LV Type Group.vi"/> + <Item Name="OpenCreateGroup (Array).vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/OpenCreateGroup (Array).vi"/> + <Item Name="OpenCreateGroup (String).vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/OpenCreateGroup (String).vi"/> + <Item Name="OpenCreateGroup.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/group.llb/OpenCreateGroup.vi"/> + <Item Name="OpenCreateReplace Attribute.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/OpenCreateReplace Attribute.vi"/> + <Item Name="OpenCreateReplace Dataset.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/dataset.llb/OpenCreateReplace Dataset.vi"/> + <Item Name="OpenCreateReplace HDF5 File.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/file.llb/OpenCreateReplace HDF5 File.vi"/> + <Item Name="Parse Dataset Path.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/common.llb/Parse Dataset Path.vi"/> + <Item Name="Path To Command Line String.vi" Type="VI" URL="/<vilib>/AdvancedString/Path To Command Line String.vi"/> + <Item Name="PathToUNIXPathString.vi" Type="VI" URL="/<vilib>/Platform/CFURL.llb/PathToUNIXPathString.vi"/> + <Item Name="Play Sound File.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Play Sound File.vi"/> + <Item Name="Read LV Type Attrs.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/Read LV Type Attrs.vi"/> + <Item Name="Recover Error Stack.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/error.llb/Recover Error Stack.vi"/> + <Item Name="Sampling Mode.ctl" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sampling Mode.ctl"/> + <Item Name="Search and Replace Pattern.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Search and Replace Pattern.vi"/> + <Item Name="Set Bold Text.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Set Bold Text.vi"/> + <Item Name="Set String Value.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Set String Value.vi"/> + <Item Name="SetTDName.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/SetTDName.vi"/> + <Item Name="Simple Error Handler.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Simple Error Handler.vi"/> + <Item Name="Simple H5Awrite (Variant).vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/Simple H5Awrite (Variant).vi"/> + <Item Name="Sound Data Format.ctl" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound Data Format.ctl"/> + <Item Name="Sound File Close.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound File Close.vi"/> + <Item Name="Sound File Info (path).vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound File Info (path).vi"/> + <Item Name="Sound File Info (refnum).vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound File Info (refnum).vi"/> + <Item Name="Sound File Info.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound File Info.vi"/> + <Item Name="Sound File Open.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound File Open.vi"/> + <Item Name="Sound File Position.ctl" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound File Position.ctl"/> + <Item Name="Sound File Read (DBL).vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound File Read (DBL).vi"/> + <Item Name="Sound File Read (I16).vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound File Read (I16).vi"/> + <Item Name="Sound File Read (I32).vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound File Read (I32).vi"/> + <Item Name="Sound File Read (SGL).vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound File Read (SGL).vi"/> + <Item Name="Sound File Read (U8).vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound File Read (U8).vi"/> + <Item Name="Sound File Read Open.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound File Read Open.vi"/> + <Item Name="Sound File Read.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound File Read.vi"/> + <Item Name="Sound File Refnum.ctl" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound File Refnum.ctl"/> + <Item Name="Sound File Write Open.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound File Write Open.vi"/> + <Item Name="Sound Output Clear.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound Output Clear.vi"/> + <Item Name="Sound Output Configure.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound Output Configure.vi"/> + <Item Name="Sound Output Info.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound Output Info.vi"/> + <Item Name="Sound Output Stop.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound Output Stop.vi"/> + <Item Name="Sound Output Task ID.ctl" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound Output Task ID.ctl"/> + <Item Name="Sound Output Wait.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound Output Wait.vi"/> + <Item Name="Sound Output Write (DBL Single).vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound Output Write (DBL Single).vi"/> + <Item Name="Sound Output Write (DBL).vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound Output Write (DBL).vi"/> + <Item Name="Sound Output Write (I16).vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound Output Write (I16).vi"/> + <Item Name="Sound Output Write (I32).vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound Output Write (I32).vi"/> + <Item Name="Sound Output Write (SGL).vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound Output Write (SGL).vi"/> + <Item Name="Sound Output Write (U8).vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound Output Write (U8).vi"/> + <Item Name="Sound Output Write.vi" Type="VI" URL="/<vilib>/sound2/lvsound2.llb/Sound Output Write.vi"/> + <Item Name="StructAlign.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/StructAlign.vi"/> + <Item Name="subElapsedTime.vi" Type="VI" URL="/<vilib>/express/express execution control/ElapsedTimeBlock.llb/subElapsedTime.vi"/> + <Item Name="TagReturnType.ctl" Type="VI" URL="/<vilib>/Utility/error.llb/TagReturnType.ctl"/> + <Item Name="Three Button Dialog CORE.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Three Button Dialog CORE.vi"/> + <Item Name="Three Button Dialog.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Three Button Dialog.vi"/> + <Item Name="Trim Whitespace One-Sided.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Trim Whitespace One-Sided.vi"/> + <Item Name="Trim Whitespace.vi" Type="VI" URL="/<vilib>/Utility/error.llb/Trim Whitespace.vi"/> + <Item Name="Try Open LV Type.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/Try Open LV Type.vi"/> + <Item Name="Type Cache.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/Type Cache.vi"/> + <Item Name="Unflatten Error Stack.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/error.llb/Unflatten Error Stack.vi"/> + <Item Name="whitespace.ctl" Type="VI" URL="/<vilib>/Utility/error.llb/whitespace.ctl"/> + <Item Name="Write LV Compound Attrs.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/Write LV Compound Attrs.vi"/> + <Item Name="Write LV Type Attrs.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/datatype.llb/private/Write LV Type Attrs.vi"/> + <Item Name="Write Multiple Attributes.vi" Type="VI" URL="/<vilib>/UPVI/lvhdf5/attribute.llb/Write Multiple Attributes.vi"/> + </Item> + <Item Name="Channel_Trigger_Mode.vi" Type="VI" URL="../Sub-VI/Channel_Trigger_Mode.vi"/> + <Item Name="cmd force trigger.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_card_common.llb/cmd force trigger.vi"/> + <Item Name="cmd start.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_card_common.llb/cmd start.vi"/> + <Item Name="cmd stop.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_card_common.llb/cmd stop.vi"/> + <Item Name="Complex_trigger_FINAL.ctl" Type="VI" URL="../Labiview spectrum/spcm_examples/spcm_library/spcm_drv_interface.llb/Complex_trigger_FINAL.ctl"/> + <Item Name="dwDataRead_raw16.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_drv_interface.llb/dwDataRead_raw16.vi"/> + <Item Name="dwSetupFIFOMode.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_drv_interface.llb/dwSetupFIFOMode.vi"/> + <Item Name="element_device.ctl" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_gui_common.llb/element_device.ctl"/> + <Item Name="element_m4i_ai_channel.ctl" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_gui_m4i.llb/element_m4i_ai_channel.ctl"/> + <Item Name="element_m4i_ai_channel0.ctl" Type="VI" URL="../Labiview spectrum/spcm_examples/spcm_library/spcm_gui_m4i.llb/element_m4i_ai_channel0.ctl"/> + <Item Name="element_m4i_ai_channel1.ctl" Type="VI" URL="../Labiview spectrum/spcm_examples/spcm_library/spcm_gui_m4i.llb/element_m4i_ai_channel1.ctl"/> + <Item Name="element_m4i_ai_channel2.ctl" Type="VI" URL="../Labiview spectrum/spcm_examples/spcm_library/spcm_gui_m4i.llb/element_m4i_ai_channel2.ctl"/> + <Item Name="element_m4i_ai_channel3.ctl" Type="VI" URL="../Labiview spectrum/spcm_examples/spcm_library/spcm_gui_m4i.llb/element_m4i_ai_channel3.ctl"/> + <Item Name="element_m4i_clock.ctl" Type="VI" URL="../Labiview spectrum/spcm_examples/spcm_library/spcm_gui_m4i.llb/element_m4i_clock.ctl"/> + <Item Name="element_m4i_multi_purpose_io.ctl" Type="VI" URL="../Labiview spectrum/spcm_examples/spcm_library/spcm_gui_m4i.llb/element_m4i_multi_purpose_io.ctl"/> + <Item Name="element_mode_fifo_automatic selection .ctl" Type="VI" URL="../Labiview spectrum/spcm_examples/spcm_library/spcm_gui_common.llb/element_mode_fifo_automatic selection .ctl"/> + <Item Name="error check and message.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_card_common.llb/error check and message.vi"/> + <Item Name="get device infos.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_card_common.llb/get device infos.vi"/> + <Item Name="gui_update_mode.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_gui_common.llb/gui_update_mode.vi"/> + <Item Name="HDF5_writing_header_1_channel.vi" Type="VI" URL="../Sub-VI/HDF5_writing_header_1_channel.vi"/> + <Item Name="HDF5_writing_header_2_4_channels.vi" Type="VI" URL="../Sub-VI/HDF5_writing_header_2_4_channels.vi"/> + <Item Name="init device.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_card_common.llb/init device.vi"/> + <Item Name="kernel32.dll" Type="Document" URL="kernel32.dll"> + <Property Name="NI.PreserveRelativePath" Type="Bool">true</Property> + </Item> + <Item Name="lvanlys.dll" Type="Document" URL="/<resource>/lvanlys.dll"/> + <Item Name="lvimptsl.dll" Type="Document" URL="lvimptsl.dll"> + <Property Name="NI.PreserveRelativePath" Type="Bool">true</Property> + </Item> + <Item Name="lvsound2.dll" Type="Document" URL="/<resource>/lvsound2.dll"/> + <Item Name="m4i_gui_update_ai_ch.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_gui_m4i.llb/m4i_gui_update_ai_ch.vi"/> + <Item Name="m4i_gui_update_clock.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_gui_m4i.llb/m4i_gui_update_clock.vi"/> + <Item Name="m4i_setup_ai_channels.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_gui_m4i.llb/m4i_setup_ai_channels.vi"/> + <Item Name="m4i_setup_ai_general_FINAL.vi" Type="VI" URL="../Sub-VI/m4i_setup_ai_general_FINAL.vi"/> + <Item Name="Mask AND_OR.vi" Type="VI" URL="../Sub-VI/Mask AND_OR.vi"/> + <Item Name="my_second_top_beautiful_DLL.dll" Type="Document" URL="../my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.dll"/> + <Item Name="pre_post_trigger_selection.vi" Type="VI" URL="../Sub-VI/pre_post_trigger_selection.vi"/> + <Item Name="read card status.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_card_common.llb/read card status.vi"/> + <Item Name="read data status.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_card_common.llb/read data status.vi"/> + <Item Name="read M4i AI details.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_card_m4i.llb/read M4i AI details.vi"/> + <Item Name="reshape_array_for_hdf5_file.vi" Type="VI" URL="../Sub-VI/reshape_array_for_hdf5_file.vi"/> + <Item Name="select device.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_card_common.llb/select device.vi"/> + <Item Name="Select_V_range_trigger_level_0.vi" Type="VI" URL="../Sub-VI/Select_V_range_trigger_level_0.vi"/> + <Item Name="Select_V_range_trigger_level_1.vi" Type="VI" URL="../Sub-VI/Select_V_range_trigger_level_1.vi"/> + <Item Name="setup M4i AI channel.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_card_m4i.llb/setup M4i AI channel.vi"/> + <Item Name="setup M4i clock.vi" Type="VI" URL="../Labiview spectrum/spcm_examples/spcm_library/spcm_card_m4i.llb/setup M4i clock.vi"/> + <Item Name="setup M4i IO lines.vi" Type="VI" URL="../Labiview spectrum/spcm_examples/spcm_library/spcm_card_m4i.llb/setup M4i IO lines.vi"/> + <Item Name="setup mode record fifo_FINAL.vi" Type="VI" URL="../Sub-VI/setup mode record fifo_FINAL.vi"/> + <Item Name="setup_complex_AI_trigger.vi" Type="VI" URL="../Sub-VI/setup_complex_AI_trigger.vi"/> + <Item Name="spcm_datasort_win64.dll" Type="Document" URL="spcm_datasort_win64.dll"> + <Property Name="NI.PreserveRelativePath" Type="Bool">true</Property> + </Item> + <Item Name="spcm_dwGetErrorInfo.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_drv_interface.llb/spcm_dwGetErrorInfo.vi"/> + <Item Name="spcm_dwGetParam_i32.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_drv_interface.llb/spcm_dwGetParam_i32.vi"/> + <Item Name="spcm_dwGetParam_i64.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_drv_interface.llb/spcm_dwGetParam_i64.vi"/> + <Item Name="spcm_dwGetParam_i64m.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_drv_interface.llb/spcm_dwGetParam_i64m.vi"/> + <Item Name="spcm_dwSetParam_i32.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_drv_interface.llb/spcm_dwSetParam_i32.vi"/> + <Item Name="spcm_dwSetParam_i64.vi" Type="VI" URL="../Labiview spectrum/spcm_examples/spcm_library/spcm_drv_interface.llb/spcm_dwSetParam_i64.vi"/> + <Item Name="spcm_dwSetParam_i64m.vi" Type="VI" URL="../Labiview spectrum/spcm_examples/spcm_library/spcm_drv_interface.llb/spcm_dwSetParam_i64m.vi"/> + <Item Name="spcm_hOpen.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_drv_interface.llb/spcm_hOpen.vi"/> + <Item Name="spcm_translate_card_type.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_gui_common.llb/spcm_translate_card_type.vi"/> + <Item Name="spcm_translate_status.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_gui_common.llb/spcm_translate_status.vi"/> + <Item Name="spcm_vClose.vi" Type="VI" URL="../../Labiview spectrum/spcm_examples/spcm_library/spcm_drv_interface.llb/spcm_vClose.vi"/> + <Item Name="spcm_win64.dll" Type="Document" URL="spcm_win64.dll"> + <Property Name="NI.PreserveRelativePath" Type="Bool">true</Property> + </Item> + <Item Name="TopLevelRelativeToAbsolutePath.vi" Type="VI" URL="../../../../../Program Files/National Instruments/LabVIEW 2022/examples/UPVI/LVHDF5/basic/subVIs/TopLevelRelativeToAbsolutePath.vi"/> + <Item Name="trpz_filter_four_channels.vi" Type="VI" URL="../Sub-VI/trpz_filter_four_channels.vi"/> + <Item Name="trpz_filter_one_channel.vi" Type="VI" URL="../Sub-VI/trpz_filter_one_channel.vi"/> + <Item Name="trpz_filter_two_channels.vi" Type="VI" URL="../Sub-VI/trpz_filter_two_channels.vi"/> + </Item> + <Item Name="Build Specifications" Type="Build"/> + </Item> +</Project> diff --git a/SWIPE_Softw_v_1_0.vi b/SWIPE_Softw_v_1_0.vi new file mode 100644 index 0000000000000000000000000000000000000000..4040d8674d5391c5ac84ca66ca8d3bda18d9e7ab Binary files /dev/null and b/SWIPE_Softw_v_1_0.vi differ diff --git a/Sub-VI/Channel_Trigger_Mode.vi b/Sub-VI/Channel_Trigger_Mode.vi new file mode 100644 index 0000000000000000000000000000000000000000..5f8a613e27b81472dc81159e2cd2585ea79bef4f Binary files /dev/null and b/Sub-VI/Channel_Trigger_Mode.vi differ diff --git a/Sub-VI/HDF5_writing_header_1_channel.vi b/Sub-VI/HDF5_writing_header_1_channel.vi new file mode 100644 index 0000000000000000000000000000000000000000..371b3cc7681933d7affe586485834a918a0c174d Binary files /dev/null and b/Sub-VI/HDF5_writing_header_1_channel.vi differ diff --git a/Sub-VI/HDF5_writing_header_2_4_channels.vi b/Sub-VI/HDF5_writing_header_2_4_channels.vi new file mode 100644 index 0000000000000000000000000000000000000000..7dfdd4e5ccc19443194aff1772c3a0042833a71e Binary files /dev/null and b/Sub-VI/HDF5_writing_header_2_4_channels.vi differ diff --git a/Sub-VI/Mask AND_OR.vi b/Sub-VI/Mask AND_OR.vi new file mode 100644 index 0000000000000000000000000000000000000000..a249c134a56a68d6c1ba7d5c46c03f6370e2f516 Binary files /dev/null and b/Sub-VI/Mask AND_OR.vi differ diff --git a/Sub-VI/Select_V_range_trigger_level_0.vi b/Sub-VI/Select_V_range_trigger_level_0.vi new file mode 100644 index 0000000000000000000000000000000000000000..315294b1a782bf83017ef3427a34ebaf85d96ca0 Binary files /dev/null and b/Sub-VI/Select_V_range_trigger_level_0.vi differ diff --git a/Sub-VI/Select_V_range_trigger_level_1.vi b/Sub-VI/Select_V_range_trigger_level_1.vi new file mode 100644 index 0000000000000000000000000000000000000000..9cc305d102a55142614c994f1efb9830529188e6 Binary files /dev/null and b/Sub-VI/Select_V_range_trigger_level_1.vi differ diff --git a/Sub-VI/m4i_setup_ai_general_FINAL.vi b/Sub-VI/m4i_setup_ai_general_FINAL.vi new file mode 100644 index 0000000000000000000000000000000000000000..dfb29ffbd0e37bc7ef54cef10d2989ae996c0336 Binary files /dev/null and b/Sub-VI/m4i_setup_ai_general_FINAL.vi differ diff --git a/Sub-VI/pre_post_trigger_selection.vi b/Sub-VI/pre_post_trigger_selection.vi new file mode 100644 index 0000000000000000000000000000000000000000..6ef1023357e287ee45913764d40a38518c910bba Binary files /dev/null and b/Sub-VI/pre_post_trigger_selection.vi differ diff --git a/Sub-VI/reshape_array_for_hdf5_file.vi b/Sub-VI/reshape_array_for_hdf5_file.vi new file mode 100644 index 0000000000000000000000000000000000000000..406fc3cf5e56ce4b5daf055031ef24dd4b17276e Binary files /dev/null and b/Sub-VI/reshape_array_for_hdf5_file.vi differ diff --git a/Sub-VI/setup mode record fifo_FINAL.vi b/Sub-VI/setup mode record fifo_FINAL.vi new file mode 100644 index 0000000000000000000000000000000000000000..b4188ba99d062f9e68f5eb8515b529627dced0ee Binary files /dev/null and b/Sub-VI/setup mode record fifo_FINAL.vi differ diff --git a/Sub-VI/setup_complex_AI_trigger.vi b/Sub-VI/setup_complex_AI_trigger.vi new file mode 100644 index 0000000000000000000000000000000000000000..ec01e9d09fc6d20e216d266e56e49e4c43068000 Binary files /dev/null and b/Sub-VI/setup_complex_AI_trigger.vi differ diff --git a/Sub-VI/trpz_filter_four_channels.vi b/Sub-VI/trpz_filter_four_channels.vi new file mode 100644 index 0000000000000000000000000000000000000000..1f1cfa1890ba9386c520969141ff88a60de30637 Binary files /dev/null and b/Sub-VI/trpz_filter_four_channels.vi differ diff --git a/Sub-VI/trpz_filter_one_channel.vi b/Sub-VI/trpz_filter_one_channel.vi new file mode 100644 index 0000000000000000000000000000000000000000..910e513e24aba38ee58ff4be48b6a673fa04c7a8 Binary files /dev/null and b/Sub-VI/trpz_filter_one_channel.vi differ diff --git a/Sub-VI/trpz_filter_two_channels.vi b/Sub-VI/trpz_filter_two_channels.vi new file mode 100644 index 0000000000000000000000000000000000000000..820b3dd393fbd1b2b7ae8c8fae447339d6edc128 Binary files /dev/null and b/Sub-VI/trpz_filter_two_channels.vi differ diff --git a/lvhdf5-1.2.2.5.vip b/lvhdf5-1.2.2.5.vip new file mode 100644 index 0000000000000000000000000000000000000000..69d411152b0e5ec9cd1bac5140ffab6264eb3c11 Binary files /dev/null and b/lvhdf5-1.2.2.5.vip differ diff --git a/my_second_top_beautiful_DLL/.vs/my_second_top_beautiful_DLL/v16/.suo b/my_second_top_beautiful_DLL/.vs/my_second_top_beautiful_DLL/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..053c335d18dd0ef1f38f6ae84afa6d22511c7873 Binary files /dev/null and b/my_second_top_beautiful_DLL/.vs/my_second_top_beautiful_DLL/v16/.suo differ diff --git a/my_second_top_beautiful_DLL/.vs/my_second_top_beautiful_DLL/v16/Browse.VC.db b/my_second_top_beautiful_DLL/.vs/my_second_top_beautiful_DLL/v16/Browse.VC.db new file mode 100644 index 0000000000000000000000000000000000000000..f4b8e3747d24a33ee066e7045c291240e326cd3d Binary files /dev/null and b/my_second_top_beautiful_DLL/.vs/my_second_top_beautiful_DLL/v16/Browse.VC.db differ diff --git a/my_second_top_beautiful_DLL/.vs/my_second_top_beautiful_DLL/v16/ipch/6acafeb5a6374e.ipch b/my_second_top_beautiful_DLL/.vs/my_second_top_beautiful_DLL/v16/ipch/6acafeb5a6374e.ipch new file mode 100644 index 0000000000000000000000000000000000000000..1db99b656cf780b2971d2668df4b2037469b9862 Binary files /dev/null and b/my_second_top_beautiful_DLL/.vs/my_second_top_beautiful_DLL/v16/ipch/6acafeb5a6374e.ipch differ diff --git a/my_second_top_beautiful_DLL/.vs/my_second_top_beautiful_DLL/v16/ipch/c1d1ca10fa97f6d9.ipch b/my_second_top_beautiful_DLL/.vs/my_second_top_beautiful_DLL/v16/ipch/c1d1ca10fa97f6d9.ipch new file mode 100644 index 0000000000000000000000000000000000000000..b0b51a60bbb565762d01efb2ba9185dd3990dfe7 Binary files /dev/null and b/my_second_top_beautiful_DLL/.vs/my_second_top_beautiful_DLL/v16/ipch/c1d1ca10fa97f6d9.ipch differ diff --git a/my_second_top_beautiful_DLL/Debug/dllmain.obj b/my_second_top_beautiful_DLL/Debug/dllmain.obj new file mode 100644 index 0000000000000000000000000000000000000000..171df696e8640f82d6e0c20ea1c2012a50fd55d3 Binary files /dev/null and b/my_second_top_beautiful_DLL/Debug/dllmain.obj differ diff --git a/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/CL.command.1.tlog b/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/CL.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..7ff90c12f60bc2fc7930685b6a05957a1a3669f3 Binary files /dev/null and b/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/CL.command.1.tlog differ diff --git a/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/CL.read.1.tlog b/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/CL.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..c2e08fe9a405fa2e1729b621773a11070eb56626 Binary files /dev/null and b/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/CL.read.1.tlog differ diff --git a/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/CL.write.1.tlog b/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/CL.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..c945d19e83e3f633d76ada96e4a166746c88e94c Binary files /dev/null and b/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/CL.write.1.tlog differ diff --git a/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/link.command.1.tlog b/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/link.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..31571b5cda812e65605d548abb1fda8d3d934226 Binary files /dev/null and b/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/link.command.1.tlog differ diff --git a/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/link.read.1.tlog b/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/link.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..5d1c85a7047d902f6d85ab27b30aad92f17931d4 Binary files /dev/null and b/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/link.read.1.tlog differ diff --git a/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/link.write.1.tlog b/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/link.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..9f966eb791746b045534918e18c012071c4265e1 Binary files /dev/null and b/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/link.write.1.tlog differ diff --git a/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/my_second_top_beautiful_DLL.lastbuildstate b/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/my_second_top_beautiful_DLL.lastbuildstate new file mode 100644 index 0000000000000000000000000000000000000000..96ef18f71ceb1a02e50e7f55579069a552df93b0 --- /dev/null +++ b/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/my_second_top_beautiful_DLL.lastbuildstate @@ -0,0 +1,2 @@ +PlatformToolSet=v142:VCToolArchitecture=Native32Bit:VCToolsVersion=14.29.30133:TargetPlatformVersion=10.0.19041.0: +Debug|Win32|C:\Users\ricca\source\repos\my_second_top_beautiful_DLL\| diff --git a/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/my_second_top_beautiful_DLL.write.1u.tlog b/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/my_second_top_beautiful_DLL.write.1u.tlog new file mode 100644 index 0000000000000000000000000000000000000000..8c20aa78f61961ee7e8515dbe10aa2a61d0b93d8 Binary files /dev/null and b/my_second_top_beautiful_DLL/Debug/my_secon.4130bb1a.tlog/my_second_top_beautiful_DLL.write.1u.tlog differ diff --git a/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.dll b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.dll new file mode 100644 index 0000000000000000000000000000000000000000..fab8880763a57f932d8e66fb01b22789156fed0b Binary files /dev/null and b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.dll differ diff --git a/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.dll.recipe b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.dll.recipe new file mode 100644 index 0000000000000000000000000000000000000000..ef97b9c92f9a718c2e79dec858be02d9e824623d --- /dev/null +++ b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.dll.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\Users\ricca\source\repos\my_second_top_beautiful_DLL\Debug\my_second_top_beautiful_DLL.dll</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project> \ No newline at end of file diff --git a/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.exp b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.exp new file mode 100644 index 0000000000000000000000000000000000000000..7bedbfee691732bf62fd92a163368babe8801683 Binary files /dev/null and b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.exp differ diff --git a/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.ilk b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.ilk new file mode 100644 index 0000000000000000000000000000000000000000..6aacd09bbf0fe34c6f513f964731105bd1d5c816 Binary files /dev/null and b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.ilk differ diff --git a/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.lib b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.lib new file mode 100644 index 0000000000000000000000000000000000000000..a8cc866faff1fabd9defe6c060c5e9daae291c00 Binary files /dev/null and b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.lib differ diff --git a/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.log b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.log new file mode 100644 index 0000000000000000000000000000000000000000..4de160dd96e2102dd2c3dc965b42e1b7151ac779 --- /dev/null +++ b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.log @@ -0,0 +1,4 @@ + pch.c + dllmain.c + Creazione della libreria C:\Users\ricca\source\repos\my_second_top_beautiful_DLL\Debug\my_second_top_beautiful_DLL.lib e dell'oggetto C:\Users\ricca\source\repos\my_second_top_beautiful_DLL\Debug\my_second_top_beautiful_DLL.exp + my_second_top_beautiful_DLL.vcxproj -> C:\Users\ricca\source\repos\my_second_top_beautiful_DLL\Debug\my_second_top_beautiful_DLL.dll diff --git a/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.pch b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.pch new file mode 100644 index 0000000000000000000000000000000000000000..dd4b1c1b9422202aa02f73bb1ef8b83da32bb5a1 Binary files /dev/null and b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.pch differ diff --git a/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.pdb b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.pdb new file mode 100644 index 0000000000000000000000000000000000000000..1ad00404a548c65a96d1b4358ee10967215eb166 Binary files /dev/null and b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.pdb differ diff --git a/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.vcxproj.FileListAbsolute.txt b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.vcxproj.FileListAbsolute.txt new file mode 100644 index 0000000000000000000000000000000000000000..42b70c45f82770ea14db8df57760baa2cf4049d9 --- /dev/null +++ b/my_second_top_beautiful_DLL/Debug/my_second_top_beautiful_DLL.vcxproj.FileListAbsolute.txt @@ -0,0 +1 @@ +C:\Users\ricca\source\repos\my_second_top_beautiful_DLL\Debug\my_second_top_beautiful_DLL.dll diff --git a/my_second_top_beautiful_DLL/Debug/pch.obj b/my_second_top_beautiful_DLL/Debug/pch.obj new file mode 100644 index 0000000000000000000000000000000000000000..88e751ef8ad5081455fcd24ff4e890daaacee778 Binary files /dev/null and b/my_second_top_beautiful_DLL/Debug/pch.obj differ diff --git a/my_second_top_beautiful_DLL/Debug/vc142.idb b/my_second_top_beautiful_DLL/Debug/vc142.idb new file mode 100644 index 0000000000000000000000000000000000000000..1fd1bbc2d8a279f312368ce39ffc5d0b52ea9b2a Binary files /dev/null and b/my_second_top_beautiful_DLL/Debug/vc142.idb differ diff --git a/my_second_top_beautiful_DLL/Debug/vc142.pdb b/my_second_top_beautiful_DLL/Debug/vc142.pdb new file mode 100644 index 0000000000000000000000000000000000000000..701c5b3ecf5b30b8f298aa7b3024ad4f17c62ba4 Binary files /dev/null and b/my_second_top_beautiful_DLL/Debug/vc142.pdb differ diff --git a/my_second_top_beautiful_DLL/Intestazione.h b/my_second_top_beautiful_DLL/Intestazione.h new file mode 100644 index 0000000000000000000000000000000000000000..9455f53c447cb89ee5c45f0ad28d231b60fee2bc --- /dev/null +++ b/my_second_top_beautiful_DLL/Intestazione.h @@ -0,0 +1,31 @@ +#ifndef MYLIBRARY_H +#define MYLIBRARY_H + +#ifdef _WIN32 +#ifdef EXPORTING_DLL +#define DLL_API __declspec(dllexport) +#else +#define DLL_API __declspec(dllimport) +#endif +#define STDCALL __stdcall +#else +#define DLL_API +#define STDCALL +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + DLL_API void STDCALL delay(double x[], double y[], int N, int M); + DLL_API void STDCALL differentiator(double x[], double y[], int N, int M); + DLL_API void STDCALL iir_1st(double x[], double y[], int N, double b0, double b1, double a1); + DLL_API void STDCALL iir_2nd(double x[], double y[], int N, double b0, double b1, double b2, double a1, double a2); + DLL_API void STDCALL trapz(double x[], double y[], int N, double beta, int R, int M); + DLL_API void STDCALL timing_flt(double x[], double y[], int N, int C, int F); + +#ifdef __cplusplus +} +#endif + +#endif // MYLIBRARY_H diff --git a/my_second_top_beautiful_DLL/dllmain.c b/my_second_top_beautiful_DLL/dllmain.c new file mode 100644 index 0000000000000000000000000000000000000000..aacf1ec70eed370eca1f110b8d370ce71a8cd276 --- /dev/null +++ b/my_second_top_beautiful_DLL/dllmain.c @@ -0,0 +1,142 @@ +// dllmain.cpp : Definisce il punto di ingresso per l'applicazione DLL. +#include "pch.h" + +BOOL APIENTRY DllMain(HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved +) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} + +#define EXPORTING_DLL +#include "Intestazione.h" +#include <stdio.h> +#include <stdlib.h> + + +void delay(double* input, double* output, int N, int M) { + // Implementazione della funzione delay (esempio) + for (int i = 0; i < N; i++) { + output[i] = (i >= M) ? input[i - M] : 0; + } +} + +void STDCALL differentiator(double x[], double y[], int N, int M) +{ + double* d = (double*)malloc(N * sizeof(double)); + if (d == NULL) { + // Gestione del fallimento dell'allocazione + printf("Memory allocation failed\n"); + return; + } + + // Debug prima di chiamare delay + printf("Before delay: N=%d, M=%d\n", N, M); + for (int i = 0; i < N; i++) { + printf("x[%d]=%f\n", i, x[i]); + } + + delay(x, d, N, M); + + // Debug dopo aver chiamato delay + for (int i = 0; i < N; i++) { + printf("d[%d]=%f\n", i, d[i]); + } + + for (int i = 0; i < N; i++) { + y[i] = x[i] - d[i]; + } + + free(d); +} + +void STDCALL iir_1st(double x[], double y[], int N, double b0, double b1, double a1) +{ + y[0] = x[0]; + for (int i = 1; i < N; i++) + { + y[i] = b0 * x[i] + b1 * x[i - 1] - a1 * y[i - 1]; + } +} + +void STDCALL iir_2nd(double x[], double y[], int N, double b0, double b1, double b2, double a1, double a2) +{ + y[0] = x[0]; + y[1] = x[1]; + for (int i = 2; i < N; i++) + { + y[i] = b0 * x[i] + b1 * x[i - 1] + b2 * x[i - 2] - a1 * y[i - 1] - a2 * y[i - 2]; + } +} + +void STDCALL trapz(double x[], double y[], int N, double beta, int R, int M) +{ + double* p1 = (double*)malloc(N * sizeof(double)); + double* p2 = (double*)malloc(N * sizeof(double)); + double* p3 = (double*)malloc(N * sizeof(double)); + double* p4 = (double*)malloc(N * sizeof(double)); + + if (p1 == NULL || p2 == NULL || p3 == NULL || p4 == NULL) { + // handle allocation failure + free(p1); + free(p2); + free(p3); + free(p4); + return; + } + + differentiator(x, p1, N, R); + differentiator(p1, p2, N, R + M); + + double b0_1 = 0.; + double b1_1 = -1.; + double b0_2 = 1.; + double b1_2 = -beta; + double a1 = -1.; + + iir_1st(p2, p3, N, b0_1, b1_1, a1); + iir_1st(p3, p4, N, b0_2, b1_2, a1); + + for (int i = 0; i < N; i++) + { + y[i] = -p4[i] / ((double)R); + } + + free(p1); + free(p2); + free(p3); + free(p4); +} + +void STDCALL timing_flt(double x[], double y[], int N, int C, int F) +{ + double* p1 = (double*)malloc(N * sizeof(double)); + double* p2 = (double*)malloc(N * sizeof(double)); + + if (p1 == NULL || p2 == NULL) { + // handle allocation failure + free(p1); + free(p2); + return; + } + + double b0 = 0.; + double b1 = 1.; + double a1 = -1.; + + iir_1st(x, p1, N, b0, b1, a1); + differentiator(p1, p2, N, C); + differentiator(p2, y, N, F); + + free(p1); + free(p2); +} diff --git a/my_second_top_beautiful_DLL/framework.h b/my_second_top_beautiful_DLL/framework.h new file mode 100644 index 0000000000000000000000000000000000000000..3cd7ac8f6b2177dc0ec46dcd301e40fe4769d9eb --- /dev/null +++ b/my_second_top_beautiful_DLL/framework.h @@ -0,0 +1,5 @@ +#pragma once + +#define WIN32_LEAN_AND_MEAN // Escludere gli elementi usati raramente dalle intestazioni di Windows +// File di intestazione di Windows +#include <windows.h> diff --git a/my_second_top_beautiful_DLL/my_second_top_beautiful_DLL.sln b/my_second_top_beautiful_DLL/my_second_top_beautiful_DLL.sln new file mode 100644 index 0000000000000000000000000000000000000000..91fc5cdbbb02a3e090bcededa963f91520c8447b --- /dev/null +++ b/my_second_top_beautiful_DLL/my_second_top_beautiful_DLL.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.34902.97 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "my_second_top_beautiful_DLL", "my_second_top_beautiful_DLL.vcxproj", "{4130BB1A-AA4B-4342-8B0D-5440980FC78C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4130BB1A-AA4B-4342-8B0D-5440980FC78C}.Debug|x64.ActiveCfg = Debug|x64 + {4130BB1A-AA4B-4342-8B0D-5440980FC78C}.Debug|x64.Build.0 = Debug|x64 + {4130BB1A-AA4B-4342-8B0D-5440980FC78C}.Debug|x86.ActiveCfg = Debug|Win32 + {4130BB1A-AA4B-4342-8B0D-5440980FC78C}.Debug|x86.Build.0 = Debug|Win32 + {4130BB1A-AA4B-4342-8B0D-5440980FC78C}.Release|x64.ActiveCfg = Release|x64 + {4130BB1A-AA4B-4342-8B0D-5440980FC78C}.Release|x64.Build.0 = Release|x64 + {4130BB1A-AA4B-4342-8B0D-5440980FC78C}.Release|x86.ActiveCfg = Release|Win32 + {4130BB1A-AA4B-4342-8B0D-5440980FC78C}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {277BFB6D-499C-41A9-912F-8AAC90240509} + EndGlobalSection +EndGlobal diff --git a/my_second_top_beautiful_DLL/my_second_top_beautiful_DLL.vcxproj.filters b/my_second_top_beautiful_DLL/my_second_top_beautiful_DLL.vcxproj.filters new file mode 100644 index 0000000000000000000000000000000000000000..e9d82f92301531da8f7a8e94e44fd33246622ff0 --- /dev/null +++ b/my_second_top_beautiful_DLL/my_second_top_beautiful_DLL.vcxproj.filters @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="File di origine"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="File di intestazione"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions> + </Filter> + <Filter Include="File di risorse"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClInclude Include="framework.h"> + <Filter>File di intestazione</Filter> + </ClInclude> + <ClInclude Include="pch.h"> + <Filter>File di intestazione</Filter> + </ClInclude> + <ClInclude Include="Intestazione.h"> + <Filter>File di intestazione</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="dllmain.c"> + <Filter>File di origine</Filter> + </ClCompile> + <ClCompile Include="pch.c"> + <Filter>File di origine</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/my_second_top_beautiful_DLL/my_second_top_beautiful_DLL.vcxproj.user b/my_second_top_beautiful_DLL/my_second_top_beautiful_DLL.vcxproj.user new file mode 100644 index 0000000000000000000000000000000000000000..88a550947edbc3c5003a41726f0749201fdb6822 --- /dev/null +++ b/my_second_top_beautiful_DLL/my_second_top_beautiful_DLL.vcxproj.user @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup /> +</Project> \ No newline at end of file diff --git a/my_second_top_beautiful_DLL/my_second_top_beautiful_DLL.vcxproj.xml b/my_second_top_beautiful_DLL/my_second_top_beautiful_DLL.vcxproj.xml new file mode 100644 index 0000000000000000000000000000000000000000..38ff9dc9e20923088759bb3a216818f03dc966c3 --- /dev/null +++ b/my_second_top_beautiful_DLL/my_second_top_beautiful_DLL.vcxproj.xml @@ -0,0 +1,170 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <VCProjectVersion>16.0</VCProjectVersion> + <Keyword>Win32Proj</Keyword> + <ProjectGuid>{4130bb1a-aa4b-4342-8b0d-5440980fc78c}</ProjectGuid> + <RootNamespace>mysecondtopbeautifulDLL</RootNamespace> + <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="Shared"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>WIN32;_DEBUG;MYSECONDTOPBEAUTIFULDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <PrecompiledHeader>Use</PrecompiledHeader> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableUAC>false</EnableUAC> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>WIN32;NDEBUG;MYSECONDTOPBEAUTIFULDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <PrecompiledHeader>Use</PrecompiledHeader> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableUAC>false</EnableUAC> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;MYSECONDTOPBEAUTIFULDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <PrecompiledHeader>Use</PrecompiledHeader> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableUAC>false</EnableUAC> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>NDEBUG;MYSECONDTOPBEAUTIFULDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <PrecompiledHeader>Use</PrecompiledHeader> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableUAC>false</EnableUAC> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="framework.h" /> + <ClInclude Include="Intestazione.h" /> + <ClInclude Include="pch.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="dllmain.c" /> + <ClCompile Include="pch.c"> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader> + </ClCompile> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/my_second_top_beautiful_DLL/pch.c b/my_second_top_beautiful_DLL/pch.c new file mode 100644 index 0000000000000000000000000000000000000000..69046d3e1dc0805fdc18396bb28051ddf36b1a58 --- /dev/null +++ b/my_second_top_beautiful_DLL/pch.c @@ -0,0 +1,5 @@ +// pch.cpp: file di origine corrispondente all'intestazione precompilata + +#include "pch.h" + +// Quando si usano intestazioni precompilate, questo file è necessario per la riuscita della compilazione. diff --git a/my_second_top_beautiful_DLL/pch.h b/my_second_top_beautiful_DLL/pch.h new file mode 100644 index 0000000000000000000000000000000000000000..aa5d1c5a0950f11e218f17380372dd0bc7ff887c --- /dev/null +++ b/my_second_top_beautiful_DLL/pch.h @@ -0,0 +1,13 @@ +// pch.h: questo è un file di intestazione precompilata. +// I file elencati di seguito vengono compilati una sola volta, in modo da migliorare le prestazioni per le compilazioni successive. +// Questa impostazione influisce anche sulle prestazioni di IntelliSense, incluso il completamento codice e molte altre funzionalità di esplorazione del codice. +// I file elencati qui vengono però TUTTI ricompilati se uno di essi viene aggiornato da una compilazione all'altra. +// Non aggiungere qui file soggetti a frequenti aggiornamenti; in caso contrario si perderanno i vantaggi offerti in termini di prestazioni. + +#ifndef PCH_H +#define PCH_H + +// aggiungere qui le intestazioni da precompilare +#include "framework.h" + +#endif //PCH_H diff --git a/my_second_top_beautiful_DLL/x64/Debug/dllmain.obj b/my_second_top_beautiful_DLL/x64/Debug/dllmain.obj new file mode 100644 index 0000000000000000000000000000000000000000..f6daf316881f82b0c2b117752612ebe35a7b3ce6 Binary files /dev/null and b/my_second_top_beautiful_DLL/x64/Debug/dllmain.obj differ diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/CL.command.1.tlog b/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/CL.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..57646d460f9fd8d9b789847270f78c73686c7c62 Binary files /dev/null and b/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/CL.command.1.tlog differ diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/CL.read.1.tlog b/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/CL.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..a53e5af35bc3e5feb31be564ab80b2aa161640d9 Binary files /dev/null and b/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/CL.read.1.tlog differ diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/CL.write.1.tlog b/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/CL.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..6a216804ba94c9551389a06decd86c52065c4044 Binary files /dev/null and b/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/CL.write.1.tlog differ diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/link.command.1.tlog b/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/link.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..a0e48c66d2aff7d0e6f07a727e671eac53b59b42 Binary files /dev/null and b/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/link.command.1.tlog differ diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/link.read.1.tlog b/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/link.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..117cfd64591ae8388107926f7fdabb6f4550fb19 Binary files /dev/null and b/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/link.read.1.tlog differ diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/link.write.1.tlog b/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/link.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..9377f5c52635371761988c5af7822424a9dec561 Binary files /dev/null and b/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/link.write.1.tlog differ diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/my_second_top_beautiful_DLL.lastbuildstate b/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/my_second_top_beautiful_DLL.lastbuildstate new file mode 100644 index 0000000000000000000000000000000000000000..1ab0c0c483b624b1fdf3bb4224f604e514c593fb --- /dev/null +++ b/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/my_second_top_beautiful_DLL.lastbuildstate @@ -0,0 +1,2 @@ +PlatformToolSet=v142:VCToolArchitecture=Native32Bit:VCToolsVersion=14.29.30133:TargetPlatformVersion=10.0.19041.0: +Debug|x64|C:\Users\ricca\source\repos\my_second_top_beautiful_DLL\| diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/my_second_top_beautiful_DLL.write.1u.tlog b/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/my_second_top_beautiful_DLL.write.1u.tlog new file mode 100644 index 0000000000000000000000000000000000000000..d0733673640fc2480fd09e77c40bb3fb4ab0c24e Binary files /dev/null and b/my_second_top_beautiful_DLL/x64/Debug/my_secon.4130bb1a.tlog/my_second_top_beautiful_DLL.write.1u.tlog differ diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.Build.CppClean.log b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.Build.CppClean.log new file mode 100644 index 0000000000000000000000000000000000000000..e86fe036678e54d38332a7513a63081595316e11 --- /dev/null +++ b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.Build.CppClean.log @@ -0,0 +1,17 @@ +c:\users\ricca\source\repos\my_second_top_beautiful_dll\x64\debug\my_second_top_beautiful_dll.pch +c:\users\ricca\source\repos\my_second_top_beautiful_dll\x64\debug\vc142.pdb +c:\users\ricca\source\repos\my_second_top_beautiful_dll\x64\debug\vc142.idb +c:\users\ricca\source\repos\my_second_top_beautiful_dll\x64\debug\pch.obj +c:\users\ricca\source\repos\my_second_top_beautiful_dll\x64\debug\dllmain.obj +c:\users\ricca\source\repos\my_second_top_beautiful_dll\x64\debug\my_second_top_beautiful_dll.ilk +c:\users\ricca\source\repos\my_second_top_beautiful_dll\x64\debug\my_second_top_beautiful_dll.dll +c:\users\ricca\source\repos\my_second_top_beautiful_dll\x64\debug\my_second_top_beautiful_dll.pdb +c:\users\ricca\source\repos\my_second_top_beautiful_dll\x64\debug\my_second_top_beautiful_dll.lib +c:\users\ricca\source\repos\my_second_top_beautiful_dll\x64\debug\my_second_top_beautiful_dll.exp +c:\users\ricca\source\repos\my_second_top_beautiful_dll\x64\debug\my_secon.4130bb1a.tlog\cl.command.1.tlog +c:\users\ricca\source\repos\my_second_top_beautiful_dll\x64\debug\my_secon.4130bb1a.tlog\cl.read.1.tlog +c:\users\ricca\source\repos\my_second_top_beautiful_dll\x64\debug\my_secon.4130bb1a.tlog\cl.write.1.tlog +c:\users\ricca\source\repos\my_second_top_beautiful_dll\x64\debug\my_secon.4130bb1a.tlog\link.command.1.tlog +c:\users\ricca\source\repos\my_second_top_beautiful_dll\x64\debug\my_secon.4130bb1a.tlog\link.read.1.tlog +c:\users\ricca\source\repos\my_second_top_beautiful_dll\x64\debug\my_secon.4130bb1a.tlog\link.write.1.tlog +c:\users\ricca\source\repos\my_second_top_beautiful_dll\x64\debug\my_secon.4130bb1a.tlog\my_second_top_beautiful_dll.write.1u.tlog diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.dll b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.dll new file mode 100644 index 0000000000000000000000000000000000000000..067d75fe22ab4d9c4c346d5f3e4a041cb26c7b94 Binary files /dev/null and b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.dll differ diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.dll.recipe b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.dll.recipe new file mode 100644 index 0000000000000000000000000000000000000000..c203c49c8290d41aad8c0f12c149ee295daaa580 --- /dev/null +++ b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.dll.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\Users\ricca\source\repos\my_second_top_beautiful_DLL\x64\Debug\my_second_top_beautiful_DLL.dll</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project> \ No newline at end of file diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.exp b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.exp new file mode 100644 index 0000000000000000000000000000000000000000..848801c94faa0e5c0e6bbe24bc92d723a0a62284 Binary files /dev/null and b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.exp differ diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.ilk b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.ilk new file mode 100644 index 0000000000000000000000000000000000000000..3c8d6d8913c04dd1e1f29467ca538d0cea9317cd Binary files /dev/null and b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.ilk differ diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.lib b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.lib new file mode 100644 index 0000000000000000000000000000000000000000..0e9e5dc57e2fb7237cfb959637cb376754842454 Binary files /dev/null and b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.lib differ diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.log b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.log new file mode 100644 index 0000000000000000000000000000000000000000..a8456c20bbe853bb65d31c0e76b82d42cafc7cb6 --- /dev/null +++ b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.log @@ -0,0 +1,4 @@ + pch.c + dllmain.c + Creazione della libreria C:\Users\ricca\source\repos\my_second_top_beautiful_DLL\x64\Debug\my_second_top_beautiful_DLL.lib e dell'oggetto C:\Users\ricca\source\repos\my_second_top_beautiful_DLL\x64\Debug\my_second_top_beautiful_DLL.exp + my_second_top_beautiful_DLL.vcxproj -> C:\Users\ricca\source\repos\my_second_top_beautiful_DLL\x64\Debug\my_second_top_beautiful_DLL.dll diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.pch b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.pch new file mode 100644 index 0000000000000000000000000000000000000000..d3bb86457bac3d9e552eae50f28e6f92a62fc2d9 Binary files /dev/null and b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.pch differ diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.pdb b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.pdb new file mode 100644 index 0000000000000000000000000000000000000000..b789aeda2b1664c1cd61b1384bc68f9f7f2dae74 Binary files /dev/null and b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.pdb differ diff --git a/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.vcxproj.FileListAbsolute.txt b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.vcxproj.FileListAbsolute.txt new file mode 100644 index 0000000000000000000000000000000000000000..e45c0a11e398f3535f25f57eb44de436ce86828b --- /dev/null +++ b/my_second_top_beautiful_DLL/x64/Debug/my_second_top_beautiful_DLL.vcxproj.FileListAbsolute.txt @@ -0,0 +1 @@ +C:\Users\ricca\source\repos\my_second_top_beautiful_DLL\x64\Debug\my_second_top_beautiful_DLL.dll diff --git a/my_second_top_beautiful_DLL/x64/Debug/pch.obj b/my_second_top_beautiful_DLL/x64/Debug/pch.obj new file mode 100644 index 0000000000000000000000000000000000000000..5adfb9567943feeaa4c1318008cf1efdc8fcb992 Binary files /dev/null and b/my_second_top_beautiful_DLL/x64/Debug/pch.obj differ diff --git a/my_second_top_beautiful_DLL/x64/Debug/vc142.idb b/my_second_top_beautiful_DLL/x64/Debug/vc142.idb new file mode 100644 index 0000000000000000000000000000000000000000..8028462fd75dd579ff7ad79a7db0782573fa6f83 Binary files /dev/null and b/my_second_top_beautiful_DLL/x64/Debug/vc142.idb differ diff --git a/my_second_top_beautiful_DLL/x64/Debug/vc142.pdb b/my_second_top_beautiful_DLL/x64/Debug/vc142.pdb new file mode 100644 index 0000000000000000000000000000000000000000..93b4c3b93d8db019605941ee7e04bcd0b7a3561e Binary files /dev/null and b/my_second_top_beautiful_DLL/x64/Debug/vc142.pdb differ diff --git a/test_29_04_25.hdf5 b/test_29_04_25.hdf5 new file mode 100644 index 0000000000000000000000000000000000000000..ac2e276940d5112d90992676aac8ed8caba8db5e Binary files /dev/null and b/test_29_04_25.hdf5 differ