From a243576f1a4f0bca8e16c2a4e3d9d6e337056990 Mon Sep 17 00:00:00 2001
From: "shishen_xian@sjtu.edu.cn" <shishen_xian@sjtu.edu.cn>
Date: Fri, 12 Jul 2024 17:11:40 +0800
Subject: [PATCH] version 1,0

---
 Makefile  |   17 +
 README.md |   92 +-
 client.c  |  164 +++
 main      |  Bin 0 -> 19080 bytes
 main.c    |  441 +++++++++
 main.h    |   13 +
 main.o    |  Bin 0 -> 13144 bytes
 out.txt   | 2849 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 ref.c     |   47 +
 reg_rw.c  |  123 +++
 reg_rw.o  |  Bin 0 -> 2736 bytes
 11 files changed, 3655 insertions(+), 91 deletions(-)
 create mode 100644 Makefile
 create mode 100644 client.c
 create mode 100755 main
 create mode 100644 main.c
 create mode 100644 main.h
 create mode 100644 main.o
 create mode 100644 out.txt
 create mode 100644 ref.c
 create mode 100644 reg_rw.c
 create mode 100644 reg_rw.o

diff --git a/Makefile b/Makefile
new file mode 100644
index 00000000..09f148d8
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,17 @@
+CC ?= gcc
+CFLAGS = -std=c99 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
+
+all: main
+
+main: main.o reg_rw.o 
+	$(CC) -o $@ $^ $(CFLAGS)
+
+reg_rw.o: reg_rw.c main.h
+	$(CC) -c -o $@ $< $(CFLAGS)
+
+main.o: main.c main.h
+	$(CC) -c -o $@ $< $(CFLAGS)
+
+clean:
+	rm -rf main *.o
+
diff --git a/README.md b/README.md
index 8675db2b..a4ad567a 100644
--- a/README.md
+++ b/README.md
@@ -1,93 +1,3 @@
 # PU_software
 
-
-
-## 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/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
-
-```
-cd existing_repo
-git remote add origin https://code.ihep.ac.cn/shishen_xian/pu_software.git
-git branch -M main
-git push -uf origin main
-```
-
-## Integrate with your tools
-
-- [ ] [Set up project integrations](https://code.ihep.ac.cn/shishen_xian/pu_software/-/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/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
-
-## 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/index.html)
-- [ ] [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.
+# version:1.0
\ No newline at end of file
diff --git a/client.c b/client.c
new file mode 100644
index 00000000..eeee8f98
--- /dev/null
+++ b/client.c
@@ -0,0 +1,164 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <sys/time.h>
+
+#define PORT 8888
+#define PACKET_COUNT 10 // Number of packets to send at once
+
+// Define the structure to represent a packet
+struct Packet {
+    uint32_t header;                         // 0x48454144
+    uint16_t trigger_type;                    // 0, normal trigger; 1 trigger in water
+    uint16_t sn_alert;                        // 0, no alert; 1, alert
+    uint64_t timestamp;                      // 8 ns timeStamp
+    uint32_t trigger_counter;                // trigger count, server can check it
+    uint16_t drop_trigger_count;             // drop_count cause network congestion
+    uint16_t masked_trig_count;              // mask trigger caused dead time, dead time(1000 ns)
+    uint32_t reserve;                        // reserve
+    uint32_t tailer;                         // 0x5461696C
+};
+
+// Function declarations
+uint64_t htonll(uint64_t value);
+uint64_t ntohll(uint64_t value);
+
+// Global variables
+struct Packet packets[PACKET_COUNT];
+struct timeval last_send_time;
+
+// Function to send multiple packets
+void send_packets(int client_fd, int total_time_interval) {
+    ssize_t bytes_sent = send(client_fd, &packets, sizeof(packets), 0);
+    
+    // printf("bytes_sent%zd bytes\n", bytes_sent);
+
+    if (bytes_sent < 0) {
+        perror("send failed");
+        exit(EXIT_FAILURE);
+    }
+
+    // Update the trigger counters and timestamps for all packets
+    int i;
+    for (i = 0; i < PACKET_COUNT; ++i) {
+        packets[i].trigger_counter = htonl(ntohl(packets[i].trigger_counter) + PACKET_COUNT);
+        packets[i].timestamp = htonll(ntohll(packets[i].timestamp) + 125 * total_time_interval); // 8 ns timestamp
+    }
+
+    // Update the last send time
+    gettimeofday(&last_send_time, NULL);
+}
+
+
+// Function to convert a 64-bit unsigned integer from host byte order to network byte order
+uint64_t htonll(uint64_t value) {
+    // Check if the system is little-endian
+    const int num = 42;
+    if (*(const char *)&num == 42) {
+    // Convert from little-endian to big-endian manually
+    return ((uint64_t)htonl(value & 0xFFFFFFFF) << 32) | htonl(value >> 32);
+    } else {
+    // System is big-endian, no conversion needed
+    return value;
+    }
+}
+
+// Function to convert a 64-bit unsigned integer from network byte order to host byte order
+uint64_t ntohll(uint64_t value) {
+    // Check if the system is little-endian
+    const int num = 42;
+    if (*(const char *)&num == 42) {
+    // Convert from big-endian to little-endian manually
+    return ((uint64_t)ntohl(value & 0xFFFFFFFF) << 32) | ntohl(value >> 32);
+    } else {
+    // System is big-endian, no conversion needed
+    return value;
+    }
+}
+
+int main(int argc, char *argv[]) {
+    
+    // Check the command-line argument count
+    if (argc != 2) {
+        fprintf(stderr, "Usage: %s <rate(Hz)>\n", argv[0]);
+        return EXIT_FAILURE;
+    }
+
+    // Parse the time interval parameter
+    int rate = atoi(argv[1]); // input(Hz), send data rate
+    if (rate <= 0) {
+        fprintf(stderr, "Invalid rate\n");
+        return EXIT_FAILURE;
+    }
+    
+    int time_interval = 1e6 / rate;
+    int total_time_interval = PACKET_COUNT * 1e6 / rate;
+
+    printf("send rate: %d Hz \n", rate);
+    printf("PACKET COUNT(once):%d \n", PACKET_COUNT);
+    printf("total time interval %d us \n", total_time_interval);
+    
+    // Instantiate the server address
+    struct sockaddr_in server_addr;
+    int client_fd;
+
+    // Create TCP socket
+    if ((client_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {
+        perror("socket failed");
+        exit(EXIT_FAILURE);
+    }
+
+    // Set the server address struct 
+    memset(&server_addr, 0, sizeof(server_addr));
+    server_addr.sin_family = AF_INET;
+    server_addr.sin_port = htons(PORT);
+    
+    // Set the server address
+    if (inet_pton(AF_INET, "10.7.50.123", &server_addr.sin_addr) <= 0) {
+        perror("inet_pton failed");
+    }
+
+    // Connect to server
+    if (connect(client_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) {
+        perror("connect failed");
+        exit(EXIT_FAILURE);
+    }
+
+    printf("Connect to server\n");
+    
+    // Initialize packets
+    int i;
+    for (i = 0; i < PACKET_COUNT; ++i) {
+        packets[i].header = htonl(0x48454144);
+        packets[i].trigger_type = htonl(0x0000);
+        packets[i].sn_alert = htonl(0x0000);
+        packets[i].timestamp = htonll(125 * i * time_interval);
+        packets[i].trigger_counter = htonl(i);
+        packets[i].drop_trigger_count = htonl(0x00000000);
+        packets[i].masked_trig_count = htonl(0x0000);
+        packets[i].reserve = htonl(0x00000000);
+        packets[i].tailer = htonl(0x5441494c);
+    }
+
+    // Initialize the last send time
+    gettimeofday(&last_send_time, NULL);
+
+    // Send packets
+    while (1) {
+        struct timeval current_time;
+        gettimeofday(&current_time, NULL);
+        long elapsed_microseconds = (current_time.tv_sec - last_send_time.tv_sec) * 1000000 +
+                                    (current_time.tv_usec - last_send_time.tv_usec);
+
+        // Check if it's time to send packets
+        if (elapsed_microseconds >= total_time_interval) {
+            send_packets(client_fd, total_time_interval);
+        }
+    }
+
+    close(client_fd);
+    return 0;
+}
\ No newline at end of file
diff --git a/main b/main
new file mode 100755
index 0000000000000000000000000000000000000000..08ec536562f64a50263605fd1bf99cb2d0729c23
GIT binary patch
literal 19080
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
ReENT?HY6tIDCDs0KLJoB+_V4y

literal 0
HcmV?d00001

diff --git a/main.c b/main.c
new file mode 100644
index 00000000..fb626f56
--- /dev/null
+++ b/main.c
@@ -0,0 +1,441 @@
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <byteswap.h>
+#include <string.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <ctype.h>
+#include "main.h"
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <time.h>
+
+//
+#define PORT 8888
+
+// Define the structure to represent a packet
+struct Packet {
+    uint32_t header;                         // 0x48454144
+    uint16_t trigger_type;                    // 0, normal trigger; 1 trigger in water
+    uint16_t sn_alert;                        // 0, no alert; 1, alert
+    uint64_t timestamp;                      // 8 ns timeStamp
+    uint32_t trigger_counter;                // trigger count, server can check it
+    uint16_t drop_trigger_count;             // drop_count cause network congestion
+    uint16_t masked_trig_count;              // mask trigger caused dead time, dead time(1000 ns)
+    uint32_t reserve;                        // reserve
+    uint32_t tailer;                         // 0x5461696C
+};
+
+// Function declarations
+uint64_t htonll(uint64_t value);
+uint64_t ntohll(uint64_t value);
+uint64_t gloabl_time_offset = 0x2fa600000000000;
+// Global variables
+struct Packet packets;
+
+//Gl vector
+int event_rd = 0;
+int size = 30001 * 16;
+int file_num = 0;
+int event_waitflag = 1;
+int triggercnt = 0;
+
+uint32_t last_trigger_time = 0;
+
+// int last_event_rd = 0;
+// first event
+// 1 = 0x0 ~ 0x20000000 
+// 0 = 0x20000000 ~ 0x40000000
+
+// Function to convert a 64-bit unsigned integer from host byte order to network byte order
+uint64_t htonll(uint64_t value) {
+    // Check if the system is little-endian
+    const int num = 42;
+    if (*(const char *)&num == 42) {
+    // Convert from little-endian to big-endian manually
+    return ((uint64_t)htonl(value & 0xFFFFFFFF) << 32) | htonl(value >> 32);
+    } else {
+    // System is big-endian, no conversion needed
+    return value;
+    }
+}
+
+// Function to convert a 64-bit unsigned integer from network byte order to host byte order
+uint64_t ntohll(uint64_t value) {
+    // Check if the system is little-endian
+    const int num = 42;
+    if (*(const char *)&num == 42) {
+    // Convert from big-endian to little-endian manually
+    return ((uint64_t)ntohl(value & 0xFFFFFFFF) << 32) | ntohl(value >> 32);
+    } else {
+    // System is big-endian, no conversion needed
+    return value;
+    }
+}
+
+uint64_t combine_uint32(uint32_t high, uint32_t low) {
+    return ((uint64_t)high << 32) | low;
+}
+
+
+void makeFolder(char *folderName) {
+    // 创建文件夹
+    int status = mkdir(folderName, 0777); // 创建文件夹权限设置为777,即读、写、执行权限
+    if (status == -1) {
+    printf("创建文件夹失败\n");
+    exit(1);
+}
+}
+
+void read_data(int fd,int *c2h_align_mem,const char *file_name, int offset, int client_fd, int file_num, int delay_time)
+{
+    if (fd<0)
+    {
+        printf("open failed");
+        printf("%d",fd);
+    }
+    else
+    {
+        printf("open c2h\n");
+    }
+    if (file_num > 0){
+        FILE *record_fp = fopen(file_name, "wb");
+        lseek(fd,offset,SEEK_SET);
+        read(fd, c2h_align_mem, size);
+        // fwrite(c2h_align_mem, size, 1, record_fp);
+        // read(fd, c2h_align_mem, size);
+        fwrite(c2h_align_mem + 4, size - 16, 1, record_fp);
+        
+        float triggerRate = 1000. * 1e9 / (8 * (c2h_align_mem[4 * 1001 + 1] - c2h_align_mem[4 * 1 + 1]));
+        printf("trigger rate : %f Hz",triggerRate);
+
+        packets.header = htonl(0x48454144);
+        packets.trigger_type = htonl(0x0000);
+        packets.sn_alert = htonl(0x0000);
+        // packets.timestamp = htonll(125 * i * time_interval);
+        // packets.trigger_counter = htonl(i);
+        packets.drop_trigger_count = htonl(0x00000000);
+        packets.masked_trig_count = htonl(0x0000);
+        packets.reserve = htonl(0x00000000);
+        packets.tailer = htonl(0x5441494c);
+
+        int i;
+        for (i = 1; i < 30001; i++)
+        {   
+            uint32_t lowtime = c2h_align_mem[4 * i + 1];
+            if ((lowtime - last_trigger_time) < 88){
+                continue;
+            }else{
+                uint32_t hightime = c2h_align_mem[4 * i + 2];
+                // printf("%02X ",c2h_align_mem[4 * i - 1]);
+                // packets.timestamp = htonll(c2h_align_mem[4 * i - 1]);
+                uint64_t time = combine_uint32(hightime, lowtime) - delay_time;
+                time = time + gloabl_time_offset;
+                packets.timestamp = htonll(time);
+                packets.trigger_counter = htonl(triggercnt);
+                ssize_t bytes_sent = send(client_fd, &packets, sizeof(packets), 0);
+                triggercnt = triggercnt + 1;
+                last_trigger_time = lowtime;
+            }
+        }
+    }
+    else{
+        lseek(fd,offset,SEEK_SET);
+        read(fd, c2h_align_mem, size);
+    }
+    printf("\n%s\n",file_name);
+}
+
+void read_data_pure(int fd,int *c2h_align_mem,const char *file_name, int offset, int file_num)
+{
+    if (fd<0)
+    {
+        printf("open failed");
+        printf("%d",fd);
+    }
+    else
+    {
+        printf("open c2h\n");
+    }
+    if (file_num > 0){
+        FILE *record_fp = fopen(file_name, "wb");
+        lseek(fd,offset,SEEK_SET);
+        read(fd, c2h_align_mem, size);
+        fwrite(c2h_align_mem + 4, size - 16, 1, record_fp);
+        
+        float triggerRate = 1000. * 1e9 / (8 * (c2h_align_mem[4 * 1001 + 1] - c2h_align_mem[4 * 1 + 1]));
+        printf("trigger rate : %f Hz",triggerRate);
+        // int i;
+        // for (i = 1; i < 10; i++)
+        // {   
+        //     // uint64_t time = (uint64_t)c2h_align_mem[4 * i - 1];
+        //     printf("%02X ",c2h_align_mem[4 * i + 1]);
+        // }
+        printf("\n%s\n",file_name);
+    }
+    else{
+        lseek(fd,offset,SEEK_SET);
+        read(fd, c2h_align_mem, size);
+    }
+}
+
+void *c2h_data_process(int fd_c2h,int fd_usr, int *c2h_align_mem, int client_fd, int delay_time)
+{   
+
+    
+    //读取的数据写文件
+    char file[256];
+    char file_path[]="data/";
+    char file_pack[]=".bin";
+    sprintf(file,"%.100s%d%.30s",file_path,file_num,file_pack);
+    int offset;
+
+    // read restart
+    char *reg_wr_0[]={"0","/dev/xdma0_user","0x4000","w","1"};
+    char *reg_wr_1[]={"0","/dev/xdma0_user","0x4000","w","0"};
+
+    //read event
+
+    char *reg_rd[]={"0","/dev/xdma0_user","0x4000","w"};
+
+    event_rd = reg_rw(4,reg_rd,fd_usr);
+    switch(event_rd){
+        case 1: 
+            if (event_waitflag == 0){
+                offset = 0x0;
+                read_data(fd_c2h, c2h_align_mem, file, offset, client_fd, file_num, delay_time);
+                event_waitflag = 1;
+                printf("read done ram1!\n");
+                file_num = file_num + 1;
+                break;
+            }
+            else{
+                break;
+            }
+        case 0:
+            if (event_waitflag == 1){
+                offset = 0x800000;
+                read_data(fd_c2h, c2h_align_mem, file, offset, client_fd, file_num, delay_time);
+                event_waitflag = 0;
+                printf("read done ram2!\n");
+                file_num = file_num + 1;
+                break;
+            }
+        default: 
+            break;
+    }
+}
+
+void *c2h_data_process_pure(int fd_c2h,int fd_usr, int *c2h_align_mem)
+{
+    //读取的数据写文件
+    char file[256];
+    char file_path[]="data/";
+    char file_pack[]=".bin";
+    sprintf(file,"%.100s%d%.30s",file_path,file_num,file_pack);
+    int offset;
+
+    // read restart
+    char *reg_wr_0[]={"0","/dev/xdma0_user","0x4000","w","1"};
+    char *reg_wr_1[]={"0","/dev/xdma0_user","0x4000","w","0"};
+
+    //read event
+
+    char *reg_rd[]={"0","/dev/xdma0_user","0x4000","w"};
+
+    event_rd = reg_rw(4,reg_rd,fd_usr);
+    switch(event_rd){
+        case 1: 
+            if (event_waitflag == 0){
+                offset = 0x0;
+                read_data_pure(fd_c2h, c2h_align_mem, file, offset, file_num);
+                event_waitflag = 1;
+                printf("read done ram1!\n");
+                file_num = file_num + 1;
+                break;
+            }
+            else{
+                break;
+            }
+        case 0:
+            if (event_waitflag == 1){
+                offset = 0x800000;
+                read_data_pure(fd_c2h, c2h_align_mem, file, offset, file_num);
+                event_waitflag = 0;
+                printf("read done ram2!\n");
+                file_num = file_num + 1;
+                break;
+            }
+        default: 
+            break;
+    }
+}
+
+
+int main(int argc, char *argv[])
+{   
+    srand(time(NULL));
+    if (argc < 4)
+    {
+        fprintf(stderr, "Usage: %s <daq_connect> <file_num> <delaytime>\n", argv[0]);
+        exit(EXIT_FAILURE);
+    }
+
+    int daq_connect = atoi(argv[1]);
+    int File_NUM = atoi(argv[2]);
+    int delay_time =atoi(argv[3]);
+
+    if (daq_connect == 0){
+        setbuf(stdout,NULL);
+        int fd_c2h = open("/dev/xdma0_c2h_0",O_RDWR);
+        int fd_usr = open("/dev/xdma0_user",O_RDWR);
+        char *reg_restart0[]={"0","/dev/xdma0_user","0x4000","w","1"};
+        char *reg_restart1[]={"0","/dev/xdma0_user","0x4000","w","0"};
+        reg_rw(5, reg_restart0,fd_usr);
+        reg_rw(5, reg_restart1,fd_usr);
+        
+        while(1) {
+            if (file_num < File_NUM) {
+                int *c2h_align_mem = (int*)malloc(size);
+                c2h_data_process_pure(fd_c2h,fd_usr,c2h_align_mem);
+                // printf ("c2h_align_mem[0]: %d", c2h_align_mem[0]);
+                free(c2h_align_mem);
+            } else {
+                break;
+            }
+        }
+        printf ("\nWrite done! %d files",file_num);
+    }else if (daq_connect == 1){
+
+        // // Instantiate the server address
+        // struct sockaddr_in server_addr;
+        // int client_fd;
+
+        // // Create TCP socket
+        // if ((client_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {
+        //     perror("socket failed");
+        //     exit(EXIT_FAILURE);
+        // }
+
+        // // Set the server address struct 
+        // memset(&server_addr, 0, sizeof(server_addr));
+        // server_addr.sin_family = AF_INET;
+        // server_addr.sin_port = htons(PORT);
+
+
+        // // // Set the server address
+        // // if (inet_pton(AF_INET, "10.7.50.123", &server_addr.sin_addr) <= 0) {
+        // //     perror("inet_pton failed");
+        // // }
+
+        // // Set the server address
+        // if (inet_pton(AF_INET, "10.7.35.42", &server_addr.sin_addr) <=Quick Access 0) {
+        //     perror("inet_pton failed");
+        // }
+
+        // // Connect to server
+        // if (connect(client_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) {
+        //     perror("connect failed");
+        //     exit(EXIT_FAILURE);
+        // }
+
+        // printf("Connect to server\n");
+
+        // setbuf(stdout,NULL);
+
+        // int fd_c2h = open("/dev/xdma0_c2h_0",O_RDWR);
+        // int fd_usr = open("/dev/xdma0_user",O_RDWR);
+        // char *reg_restart0[]={"0","/dev/xdma0_user","0x4000","w","1"};
+        // char *reg_restart1[]={"0","/dev/xdma0_user","0x4000","w","0"};
+        // reg_rw(5, reg_restart0,fd_usr);
+        // reg_rw(5, reg_restart1,fd_usr);
+        
+        // while(1) {
+        //     if (file_num < File_NUM) {
+        //         int *c2h_align_mem = (int*)malloc(size);
+        //         c2h_data_process(fd_c2h,fd_usr,c2h_align_mem, client_fd, delay_time);
+        //         // printf ("c2h_align_mem[0]: %d", c2h_align_mem[0]);
+        //         free(c2h_align_mem);
+        //     } else {
+        //         break;
+        //     }
+        // }
+        // printf ("\nWrite done! %d files",file_num);
+        // close(client_fd);
+
+
+        // Instantiate the server address
+        struct sockaddr_in server_addr, client_addr;
+        int server_fd, client_fd;
+        socklen_t client_len;
+
+        // Create TCP socket
+        if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {
+            perror("socket failed");
+            exit(EXIT_FAILURE);
+        }
+
+        // Set the server address struct
+        memset(&server_addr, 0, sizeof(server_addr));
+        server_addr.sin_family = AF_INET;
+        server_addr.sin_addr.s_addr = INADDR_ANY; // Listen on all available interfaces
+        server_addr.sin_port = htons(PORT);
+
+        // Bind socket to the address and port
+        if (bind(server_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) {
+            perror("bind failed");
+            exit(EXIT_FAILURE);
+        }
+
+        // Put the socket in passive mode to listen for incoming connections
+        if (listen(server_fd, 3) < 0) { // 3 is the maximum length of the pending connections queue
+            perror("listen failed");
+            exit(EXIT_FAILURE);
+        }
+
+        printf("Server listening on port %d\n", PORT);
+
+        // Accept incoming connection
+        client_len = sizeof(client_addr);
+        if ((client_fd = accept(server_fd, (struct sockaddr *)&client_addr, &client_len)) < 0) {
+        perror("accept failed");
+        exit(EXIT_FAILURE);
+        }
+
+        printf("Connection accepted from %s:%d\n", inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port));
+
+        setbuf(stdout,NULL);
+
+        int fd_c2h = open("/dev/xdma0_c2h_0",O_RDWR);
+        int fd_usr = open("/dev/xdma0_user",O_RDWR);
+        char *reg_restart0[]={"0","/dev/xdma0_user","0x4000","w","1"};
+        char *reg_restart1[]={"0","/dev/xdma0_user","0x4000","w","0"};
+        reg_rw(5, reg_restart0,fd_usr);
+        reg_rw(5, reg_restart1,fd_usr);
+        
+        while(1) {
+            if (file_num < File_NUM) {
+                int *c2h_align_mem = (int*)malloc(size);
+                c2h_data_process(fd_c2h,fd_usr,c2h_align_mem, client_fd, delay_time);
+                // printf ("c2h_align_mem[0]: %d", c2h_align_mem[0]);
+                free(c2h_align_mem);
+            } else {
+                break;
+            }
+        }
+        printf ("\nWrite done! %d files",file_num);
+        close(client_fd);
+        close(server_fd);
+    }else{
+        perror("daq_connect error");
+        exit(EXIT_FAILURE);
+    }
+
+    return 0;
+}
\ No newline at end of file
diff --git a/main.h b/main.h
new file mode 100644
index 00000000..c30800b1
--- /dev/null
+++ b/main.h
@@ -0,0 +1,13 @@
+//
+// Created by tao on 23-9-1.
+//
+
+#include <semaphore.h>
+#include <pthread.h>
+
+#ifndef PCIE_CONTROL_MAIN_H
+#define PCIE_CONTROL_MAIN_H
+
+#endif //PCIE_CONTROL_MAIN_H
+
+int reg_rw(int argc, char **argv,int fdi);
\ No newline at end of file
diff --git a/main.o b/main.o
new file mode 100644
index 0000000000000000000000000000000000000000..8732c31d5fb7ea6827b21b5919614abba80aae8c
GIT binary patch
literal 13144
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

literal 0
HcmV?d00001

diff --git a/out.txt b/out.txt
new file mode 100644
index 00000000..c6829435
--- /dev/null
+++ b/out.txt
@@ -0,0 +1,2849 @@
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/0.bin
+read done ram1!
+last_event_rd0
+event_rd0
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/1.bin
+read done ram2!
+last_event_rd1
+event_rd1
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/2.bin
+read done ram1!
+last_event_rd0
+event_rd0
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/3.bin
+read done ram2!
+last_event_rd1
+event_rd1
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/4.bin
+read done ram1!
+last_event_rd0
+event_rd0
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+open c2h
+/home/juno/Desktop/MM Trigger Software/xdam_driver_software/data/5.bin
+read done ram2!
+last_event_rd1
+event_rd1
+last_event_rd0
+event_rd0
+
+Write done! 6 files
\ No newline at end of file
diff --git a/ref.c b/ref.c
new file mode 100644
index 00000000..7679b16c
--- /dev/null
+++ b/ref.c
@@ -0,0 +1,47 @@
+// Instantiate the server address
+struct sockaddr_in server_addr, client_addr;
+int server_fd, client_fd;
+socklen_t client_len;
+
+// Create TCP socket
+if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {
+perror("socket failed");
+exit(EXIT_FAILURE);
+}
+
+// Set the server address struct
+memset(&server_addr, 0, sizeof(server_addr));
+server_addr.sin_family = AF_INET;
+server_addr.sin_addr.s_addr = INADDR_ANY; // Listen on all available interfaces
+server_addr.sin_port = htons(PORT);
+
+// Bind socket to the address and port
+if (bind(server_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) {
+perror("bind failed");
+exit(EXIT_FAILURE);
+}
+
+// Put the socket in passive mode to listen for incoming connections
+if (listen(server_fd, 3) < 0) { // 3 is the maximum length of the pending connections queue
+perror("listen failed");
+exit(EXIT_FAILURE);
+}
+
+printf("Server listening on port %d\n", PORT);
+
+// Accept incoming connection
+client_len = sizeof(client_addr);
+if ((client_fd = accept(server_fd, (struct sockaddr *)&client_addr, &client_len)) < 0) {
+perror("accept failed");
+exit(EXIT_FAILURE);
+}
+
+printf("Connection accepted from %s:%d\n", inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port));
+
+// Now you can communicate with the client using client_fd
+
+// Your existing code for processing data goes here
+
+// Remember to close sockets when you're done
+close(client_fd);
+close(server_fd);
\ No newline at end of file
diff --git a/reg_rw.c b/reg_rw.c
new file mode 100644
index 00000000..c8395426
--- /dev/null
+++ b/reg_rw.c
@@ -0,0 +1,123 @@
+/*
+ * This file is part of the Xilinx DMA IP Core driver tools for Linux
+ *
+ * Copyright (c) 2016-present,  Xilinx, Inc.
+ * All rights reserved.
+ *
+ * This source code is licensed under BSD-style license (found in the
+ * LICENSE file in the root directory of this source tree)
+ */
+
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <byteswap.h>
+#include <string.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <ctype.h>
+#include "main.h"
+#include <sys/types.h>
+#include <sys/mman.h>
+
+/* ltoh: little endian to host */
+/* htol: host to little endian */
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+#define ltohl(x)       (x)
+#define ltohs(x)       (x)
+#define htoll(x)       (x)
+#define htols(x)       (x)
+#elif __BYTE_ORDER == __BIG_ENDIAN
+#define ltohl(x)     __bswap_32(x)
+#define ltohs(x)     __bswap_16(x)
+#define htoll(x)     __bswap_32(x)
+#define htols(x)     __bswap_16(x)
+#endif
+int reg_rw(int argc, char **argv,int fdi)
+{
+	int fd = fdi;
+	void *map;
+	uint32_t read_result, writeval;
+	off_t target;
+	off_t pgsz, target_aligned, offset;
+	/* access width */
+	char access_width = 'w';
+//	char *device;
+
+	/* not enough arguments given? */
+	if (argc < 3) {
+		fprintf(stderr,
+			"\nUsage:\t%s <device> <address> [[type] data]\n"
+			"\tdevice  : character device to access\n"
+			"\taddress : memory address to access\n"
+			"\ttype    : access operation type : [b]yte, [h]alfword, [w]ord\n"
+			"\tdata    : data to be written for a write\n\n",
+			argv[0]);
+		exit(1);
+	}
+
+//	device = strdup(argv[1]);
+	target = strtoul(argv[2], 0, 0);
+	/* check for target page alignment */
+	pgsz = sysconf(_SC_PAGESIZE);
+	offset = target & (pgsz - 1);
+	target_aligned = target & (~(pgsz - 1));
+
+//	printf("address read!.\n", argv[1]);
+
+	map = mmap(NULL, offset + 4, PROT_READ | PROT_WRITE, MAP_SHARED, fd,
+		       	target_aligned);
+
+	map += offset;
+	/* read only */
+	if (argc <= 4) {
+		switch (access_width) {
+		case 'b':
+			read_result = *((uint8_t *) map);
+			break;
+		case 'h':
+			read_result = *((uint16_t *) map);
+			read_result = ltohs(read_result);
+			break;
+		case 'w':
+			read_result = *((uint32_t *) map);
+			/* swap 32-bit endianess if host is not little-endian */
+			read_result = ltohl(read_result);
+			break;
+		default:
+			goto unmap;
+		}
+	}
+
+	/* data value given, i.e. writing? */
+	if (argc >= 5) {
+		writeval = strtoul(argv[4], 0, 0);
+		switch (access_width) {
+		case 'b':
+
+			*((uint8_t *) map) = writeval;
+			break;
+		case 'h':
+			/* swap 16-bit endianess if host is not little-endian */
+			writeval = htols(writeval);
+			*((uint16_t *) map) = writeval;
+			break;
+		case 'w':
+			/* swap 32-bit endianess if host is not little-endian */
+			writeval = htoll(writeval);
+			*((uint32_t *) map) = writeval;
+			break;
+		default:
+			goto unmap;
+		}
+	}
+unmap:
+	map -= offset;
+	if (munmap(map, offset + 4) == -1) {
+		printf("Memory 0x%lx mapped failed: %s.\n",
+			target, strerror(errno));
+	}
+
+	return read_result;
+}
diff --git a/reg_rw.o b/reg_rw.o
new file mode 100644
index 0000000000000000000000000000000000000000..adf6131b4a26cc804f44e8a310cb46f2dec34140
GIT binary patch
literal 2736
zcmbVOO>7%Q6n>7=pP2l(g+rsFY6J?Ts9B{YDZz?@OSE*6XoVsy5Rnya>~UjZd#&9G
zc92RAmQYu|<jR>Vhn(6_swOI-Bo~wu$}tzDpm2awe25g@o83vKi+$;fX6C)`{m#sr
zb(YOfKI)3aKv4{);8ap5K=s@ypO$PI`k)swmj9>K`1@1;{u9ezT=g?+O>@mRThGnI
zTI2qcuH|>Ernzc0lUDN#xjm)H@_$>Sb)TknN+&sK+1Nl+cuX2)8z_BqfBnjdsc-I~
z`JUC-k6CY;`<8F+O8Ia%6n9YEwHh1UR`bqIGt>Im-@fJV{6xtf$8oa!=j*tHnSFCh
z+Q-Z-th#$SJ@C{#Y_t}{l}4*3h8wMUaptcF<kmE|1|Gt|!wug&IvAAVBN%uj#RQ2>
zK+Ot8`SwecSFr}xc1OOssj>`GmNzI%*TGQJ-1MJOqzB1^OD96XPaXvEGn;;L1@*fY
zZWarcENwLKviv{reC3%nTE~lTOAd<)puh;vE7<+%H8jnm?Oy;A8PC4QQ$0f-o6PgC
zi#a~UChdIQ<(@aiW@p7xm1kMr7Irq#6Bsa-Vz~v|wR3{IEX0Jv>|73=5<Q_eT9tX(
zahI3^G#d)bkW!%+bE@36MbW7+sY<cg`RtP5*Vybr)-Dxlj+;lmmc<q8z;Xg_$zj}i
z&T4K^2wq_Y$7QyZcp?FJf)YmSL!~+^+tn)1vw~eL@qCI6c}4=@_Vjd$4d1?-xyr_j
z31ghy7`;9|dh^D+Y<LEZEn5Wm$k^CbfY+#pkYeA=K&+mOUG6=1eg&KCb;M{8{Z37H
zt3UZ&*L2_6_;w6UB;IZ!({A|pxScNE_GJRZ@vj}lF;Y8<gM5nrQ^i4h<eD}P?dy%h
zS<Nb7@c`kXR;S!MVi#~E1Ctl#OC5050Uzpsk95GtJK&QY@aYctXC3gt4mh~{-ke)A
zav=kr$aB|)Le(u+L;-lcC=hdnvseOe$;&yF0+g{KZ;nBEv4RZD&7niZnJYOt`4Y$+
z5y!=paE&IUE*x~`N5=tOClHA+{g$UB8rZ*ryt216yjR1yhWBZ>r{Vn?{!GIMH2ghk
zXe6prkMq5TQ(vfhe$a608HN9-;TJXh=MY!>-9sJGubTa<D62S(lt@$$jT17wrLwT+
z!Jtc#>w@B3Ua}3r>jDh=zJM|Bd0@CsAmp5KnO9I(aRfK;yD{PkJNFeDkQ-l^E4X%9
z9p_29mt`0_($=CcFO3+HdT)Ug*eagZ%Q)z(kjA0YTG%WT+IbSIUOv53qPK7m9{u9<
zzi^mj8BiEbiL!4g=F9q1e^bn8x?~7w|H{ams(vZp^ga&qA5}oOUI+^^BDktwtskOZ
z@w({;(G7*lsO{&Wf3*H|=s%$cMLt^p3}Wr>@1L+C)IHIAAYbLLaH=Po8zHEN`S-$t
m=^N35BkE6ByRCi^_D>e|Iz{(SZ@QiT`S7R5)}4`$`u_)lht6~W

literal 0
HcmV?d00001

-- 
GitLab