Skip Navigation

Posts
27
Comments
503
Joined
2 yr. ago

She/her 🏳️‍⚧️

Professional cow, Linux Nerd, Hardcore Techno enthusiast. The Emporer protects us.

  • I know. This whole thing was never meant to be very useful, and more like a proof of concept

  • did not want to always scroll past that behemoth of a switch case xD

  • I am constantly on how I can allow Uppercase, without significantly reducing the posiible amounts of chars

  • Idk, I just had this funny idea, and thought I could do this as a cool and quick proof of example

  • Ah, thats cool. Did not knew you could that.. Thanks.

  • Did not knew that this existed, but yeah its kinda like that. Except that I only allow 5 characters.

  • Damn, that are setups where you have to get creative.

  • :(

  • It may be possible, but I have no clue. It may also be, that the position of the router and the Laptop is important, but that's probably something you would have to test.

  • Yeah sadly it is paywalled, but I have been lucky enough to get access to it through my university.

    Heres what I found regarding your question in the article:

    Fig 1 illustrates Pulse-Fi's system architecture which consists of three main components: data collection using commodity Wi-Fi devices, a CSI signal processing pipeline, and a custom lightweight Long Short Term Memory neural network for heart rate estimation.

    Fig 1:

    And this is the Setup they used to collect the ESP-HR-CSI Dataset (left site) and the one that other researchers used to collect the E-Health Dataset (right side):

    The parts on how they collected the data:

    A. ESP-HR-CSI DatasetWe collected the ESP-HR-CSI dataset from seven participants (5 male, 2 female) in a room of a public indoor library. It was collected using two ESP32 devices, one as the transmitter and the other as the receiver. The sampling rate is 80 Hz, with a 20 MHz bandwidth with 64 subcarriers positioned at different distances. Each participant was measured at distances of 1,2 and 3 m for 5 minutes each. The participants sat in a chair between the devices and wore a pulse oximeter on their finger to collect ground-truth information as seen in

    B. E-Health DatasetThe E-Health dataset [20] contains CSI collected from 118 participants (88 men, 30 women) in a controlled indoor environment measuring 3 m×4 m (Fig 4). The setup consists of a router set in the 5 GHz band at 80 MHz bandwidth as a transmitter, a laptop as receiver and a single-antenna Raspberry Pi 4B with NEXMON firmware for CSI data collection (234 subcarriers). Participants wore a Samsung Galaxy Watch 4 for the ground truth.

    Each participant performed 17 standardized positions or activities, with each position held for 60 seconds.

    To me it sounds like, that they really just used standard WIFI to collect the data (this is especially true for the E-Health Dataset), since all the processing gets done on the Raspberry Pi.

  • Health data is extremely valuable. You can use it to serve more personalised ads or even use it to, as example, define prices for health insurance. When you combine it with lots of other data it becomes even more valuable. Also never forget, big corporations track literally everything. Why not add your heart rate.

  • The Paper: https://ieeexplore.ieee.org/abstract/document/11096342/metrics#metrics

    This is very cool and useful, but at the same time very concerning. While I see a lot of good use cases for this ranging from hospitals to stress recognition in animals I Am also quite scared, that big corporations will use this to spy on us. Luckily currently it is only possible to measure the pulse at about 3m, but it should be possible to increase the range. It may fall short when multiple persons are in detection range, but as far as I have read from the paper they did not test this.

  • I kind of did this to a friend of mine. We both got some 18 year old laptops that still run on x86 and we wanted to install Linux on them (arch specifically). We met at my place, and I started with trying to get it work. He meanwhile realised he needed something so I gave him my key and hopped into a skirt while he was away. When he returned I just turned ti him, made a "gun" with my fingers and said "I lied to you, I dont have Netflix. Take of your shoes, we are installing 32 bit Arch". Funniest shit of my life.

  • I did not knew this existed, so thanks for the tip.

  • Deleted

    Permanently Deleted

    Jump
  • Lead is good for blocking alpha and beta radiation, but does not do that much against gamma, which was the main radiation he received, so yeah. Probably would not have saved him.

  • Yeah, but I kinda dont want to learn/use C++

  • I found the mistake. Since the country code char array only has a size of 2 it overwrites the \0 char causing the memory to leak.

  • Thanks, I did not knew this. I always appreciate constructive criticism. I am quite new to C so theres a shit ton of stuff I have never done or dont even know about.

  • This is the code I used:

     #include <stdlib.h>
        
    #include <stdio.h>
    #include <string.h>
    
    #define MAX_ACCOUNTS 255
    
    typedef struct
    {
        unsigned int id;
        char account_creation_date [10];
        char first_name [255];
        char last_name [255];
        char country_code [2];
        unsigned int iban;
        char password [255];
        double balance;
    } account;
    
    account accounts_db[MAX_ACCOUNTS];
    unsigned int accounts_created = 0;
    
    account get_account_id (unsigned int id)
    {
        int i = 0;
        while(i < MAX_ACCOUNTS)
        {
            if(accounts_db[i].id == id)
            {
                return accounts_db[i];
            }
            i++;
        }
        account account;
        account.id = -1;
        return account;
    }
    
    void create_account(char first_name [255], char last_name [255], char password [255], char country_code [2])
    {
        account new_account;
        new_account.id = accounts_created;
        strcpy(new_account.first_name, first_name);
        strcpy(new_account.last_name, last_name);
        strcpy(new_account.password, password);
        strcpy(new_account.country_code, country_code);
        strcpy(new_account.account_creation_date, "");
        new_account.balance = 0.0;
        new_account.iban = 0;
        accounts_db[accounts_created] = new_account;
        accounts_created++;
    }
    
    int main()
    {
        char first_name [255]  = "Max";
        char last_name [255] = "Mustermann";
        char country_code [2] = "DE";
        char password [255]= "password";
        create_account(first_name, last_name, password,country_code);
        account account = get_account_id(0);
        printf("Name: %s %s \n", account.first_name, account.last_name);
        printf("Account creation date: %s\n", account.account_creation_date);
        printf("IBAN: %s %d", account.country_code, account.iban);
    }
    
    When you run it you can see, that behind the country code of the IBAN you get the first two letters of the surename