Resources for Developers

 

 

 

 

2023-03-03 11:05

PointerNet WEB API Proposal

 

Quick Links:

 

      Introduction

      How to retrieve data from the PointerNet using Unity

      How to retrieve data from the PointerNet using CURL

      Retrieving data using “ILSMobilePhonePointer.EXE”

      User Login

 

We apologize for our English, we are not native English speakers.

 

 

 

 

Introduction

 

To help our partners and those end users using Impress to simplify the management of users (our Pointers as well as Mobile Phones) and to guarantee the protection of user data (DSGVO Datenschutz-Grundverordnung, RGPD Règlement général sur la protection des données, GDPR General Data Protection Regulation) we create the website PointerNet on our server. PointerNet is a preliminary working name and will be replaced by the final name as soon as we have registered international trademarks for our preferred name. This name is still confidential. The server(s) will be located in Munich in a data center with high availability servers. During the test phase, the PointerNet is hosted by IONOS.

 

The PointerNet will handle all user login, logout, create or delete a user profile, block pointers and mobile phones for further usage in the PointerNet, add credit card numbers or PayPal accounts, mobile phone numbers, email addresses, enable WhatsApp transmissions and later also manage the sending and receiving of messages (A kind of WhatsApp via Light beam), manage his smart home tools (garage, door, light, etc.) and enable/disable pointers for using them, etc.

 

The PointerNet will also handle payments or micro payments (In App purchases) for you and also for partners like shopping malls, shops at the airport, etc. using our other receivers.

 

The PointerNet will also allow the end users defining a gamer alias and taking selfies or upload avatars and add them to a personal user gallery and allow the end users to select which one to take for login to a given installation. We will take care of all uploaded images and check that offensive pictures or pictures violating any law will be deleted.

 

To help you not violating any law regarding the permanent or temporal storage of user data within a PC running your application (game or Impress Presentation), we propose to use an interface which is not mass storage based (e.g. using files or even worse a database) and to directly read this data into objects located within your application RAM (heap, static variables, etc.) so that there is no need for delete user data once the application is closed.

 

There are different ways how your application can access the data stored on our server(s):

 

1.    Directly using a WEB API of the PointerNet through direct GET REQUESTS from your application

2.    Using “ILSMobilePhonePointer.EXE”

3.    T.B.C.

 

In chapter “User Login” we make a proposal how the user may login into your game or application.

 

We appreciate your feedback regarding bugs, inefficiency and optimization.

 

Although all transmissions are made using “HTTPS” we think about to further encrypt all data (request arguments and returned data) using 256-bit polynomials. We will provide the code to you.

 

 

 

 

How to retrieve data from the PointerNet using Unity

 

 

Unity has a built-in function to retrieve data from a server which can be used to retrieve data

 

from the PointerNet:

 

using UnityEngine;

using System.Collections;

using UnityEngine.Networking;

 

public class MyBehaviour : MonoBehaviour

{

    void Start()

    {

        StartCoroutine(GetText());

    }

 

    IEnumerator GetText()

    {

        String strPID = “FFFFFFFF”;       //set the partner ID (all 8 digit hex numbers)

        String strIID = “FFFFFFFF”;       //set the installation ID (an ID of the game screen)

        String strFunc = “GNP”;       //get number of players currently logged in

        String strArg = “0”;

        String strURL = “https://www.ilstec.com/PointerNet/WebAPI.php?”;

        strURL = strURL + “pid=” + strPID + “&iid=” + strIID + “&func=” + strFunc + “&func=” + strArg;

        UnityWebRequest objWWW = UnityWebRequest.Get(strURL);

        yield return objWWW.SendWebRequest();

        if (objWWW.result != UnityWebRequest.Result.Success)

        {

          Debug.Log(objWWW.error);

        }

        else

        {

          //show results as text

          //optional decryption must be done before

          Debug.Log(objWWW.downloadHandler.text);

          //or retrieve results as binary data (e.g. user pictures/JPGs)

          //optional decryption must be done before

          byte[] results = objWWW.downloadHandler.data;

        }

    }

}

 

strPID

The partner ID which you are assigned by us

 

strIID

The installation ID which you can freely choose and must manage

Within the installation ID your customer must be encoded and if the customer
has more than one screen/installation also the sub ID of it. You can create and
delete installation IDs as you like.

 

StrFunc

The function to execute

 

StrArg

The function argument(s)

 

We propose to encode binary single or multiple arguments hex encoded.

 

 

strPID” and “strIID” will be encoded into a QR Code next to the installation.

 

 

 

 

 

How to retrieve data from the PointerNet using “CURL

 

On every Windows PC and we assume also on Linux there is a program CURL.

 

Simply type “curl --help” and you get a long list of parameters how to use it. And for CURL there exist a lot of examples in the web how to use it.

 

Simply build a request string like in the example above.

 

 

 

Retrieving data using “ILSMobilePhonePointer.EXE

 

If you support using mobile phones then you already use our program “ILSMobilePhonePointer.EXE” and if not, than you still can use it and block the web server within the program.

 

For this program you must have firewall configuration to let it pass though. Once you have done that all your games and applications can use “ILSMobilePhonePointer.EXE” for accessing our WEB API.

 

All your requests are written to one of the internal shared memory based FIFOs and the return data is sent back using the internal shared memory based reverse FIFOs.

 

The advantage:

 

You do not have to configure the firewall for every new game or application and no CPU time is spent within your application (only microseconds for sending and receiving the data). Even a user picture (JPG) will be put into the reverse FIFOs and you can copy the memory (memcpy) the data into your variables.

 

 

 

 

User Login

 

A partner ID (PID) and an installation ID (IID) will be encoded into a QR Code by using our “QRCodeGenerator.exe” or any other QR code generator. If a user scans the QR code with his mobile phone then he can login into the PointerNet and than participate in the specified game/application or if he is already logged-in than he immediately can participate in the specific game/application.

 

If the user has our pointer available this is much simpler since the camera reports the internal pointer serial number to the game /application through our shared memory. Since you know your partner ID and also know the projection screen and the game(s) running there you can compose the REQUEST URL string by yourself.

 

So the user simply clicks onto a running game or application at every time or at times made visible by your game or application and he is automatically logged-in. Also in this case you must use the WEB API to verify the user and if the pointer is not blocked and to retrieve user data.

 

 

 

 

 

 

 

 

 

 

To contact us please send an email to