Skip to main content

Help building app using Index Integer Date format IID

Project description

PyPI: IID42

PyPi: https://pypi.org/project/iid42

Sample:

# pip install iid42
import iid

# Send IID to a UDP Gate Relay
target = SendUdpIID("127.0.0.1",3615)
target.push_integer(42)
target.push_index_integer(2,42)
target.push_index_integer_date_local_now(0,42)
target.set_ntp_offset_tick(45453)
target.push_index_integer_date_ntp_now(0,42)
target.push_index_integer_date_ntp_in_seconds(0,42,1.25)
target.push_index_integer_date_ntp_in_milliseconds(0,42,250)

IID, short for Index Integer Date, is a 4/8/12/16-byte format designed for seamless communication across various network systems, including UDP, WebSocket, and Mirror.

By standardizing the code and API to work exclusively with integer values:

  • It enables the creation of action index tables.
  • It supports the development of specialized tools for specific tasks, allowing IID to facilitate remote actions effectively.

The IID format was developed to streamline QA testing across multiple devices and computers with precise timing coordination.

Key Features of IID:

  1. Index on your own server: Identifies the target device.
  2. Index on a shared server: Identifies the user.
  3. Value: Represents the transported integer value.
  4. Date: Encoded in a specific ulong format:
    • 01.....TICK: Sent using NTP time.
    • 02.....TICK: Intended for execution at a designated NTP time.
    • .......TICK: Sent from an unknown source time but uses DateTime.Now in UTC since 1970.

If you need assistance or are interested in contributing to this project, feel free to reach out.
Since 2024, all my tools have been built around this principle.


/*
 * ----------------------------------------------------------------------------
 * "PIZZA LICENSE":
 * https://github.com/EloiStree wrote this file.
 * As long as you retain this notice, you
 * can do whatever you want with this code.
 * If you think my code saved you time,
 * consider sending me a 🍺 or a 🍕 at:
 *  - https://buymeacoffee.com/apintio
 * 
 * You can also support my work by building your own DIY input device
 * using these Amazon links:
 * - https://github.com/EloiStree/HelloInput
 *
 * May the code be with you.
 *
 * Updated version: https://github.com/EloiStree/License
 * ----------------------------------------------------------------------------
 */
import os
import sys

if False:
    cmd = "pip install iid42 --force-reinstall"
    os.system(cmd)

import iid42
from iid42 import HelloWorldIID


HelloWorldIID.console_loop_to_push_iid_apintio()
import os
import sys

if False:
    cmd = "pip install iid42 --force-reinstall"
    os.system(cmd)

import iid42
from iid42 import SendUdpIID
import time

target = SendUdpIID("apint.ddns.net", 3615, use_ntp= True)
while True:
        # Request to press a key in 50 ms from now on ntp time
        target.push_bytes(iid42.iid_ms(0,1001,50))
        # Request to release it a key in 550 ms from now on ntp time
        target.push_bytes(iid42.iid_ms(0,2001,550))
        # Every 2 seconds
        time.sleep(2)
        t = time.time()+1000
        t_offset = t + target.ntp_offset_local_to_server_in_milliseconds
        print(f"TIME:{t} NTP:{t_offset}")

Use https://test.pypi.org for training.
https://youtu.be/9Ii34WheBOA?t=699

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iid42-2025.1.8.10.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iid42-2025.1.8.10-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file iid42-2025.1.8.10.tar.gz.

File metadata

  • Download URL: iid42-2025.1.8.10.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.0

File hashes

Hashes for iid42-2025.1.8.10.tar.gz
Algorithm Hash digest
SHA256 634c60f74788e18d4eb486993cc694cc948a3d8c1520f0f7013cfd86c3dc9270
MD5 5ae8bbecf917419440afe902b77657e9
BLAKE2b-256 4aea6f78720a96fb96a592c96feb89a05a8a252f1898a5c47c38d79b04d3e076

See more details on using hashes here.

File details

Details for the file iid42-2025.1.8.10-py3-none-any.whl.

File metadata

  • Download URL: iid42-2025.1.8.10-py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.0

File hashes

Hashes for iid42-2025.1.8.10-py3-none-any.whl
Algorithm Hash digest
SHA256 cf767027c93c9ea68d252de2b5dac50da414d7fb4cfd8f2a7119988387535680
MD5 1a0204f20cc388581a08f13bcbff4534
BLAKE2b-256 6cc77798968fbecd896e2fa22b3cb038032cde41d40d898e1899ab768539bd3a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page