No description
  • C++ 52.1%
  • C 47.9%
Find a file
2026-06-11 23:52:11 +02:00
TSSteps Rinomina progetto DLL testDLL -> TSSteps e soluzione -> quicktest-codesteps.slnx 2026-06-11 23:45:54 +02:00
.gitignore Ripristina DLL TestStand funzionante (decorated names C++) + .gitignore 2026-06-01 13:21:28 +02:00
CODESTEPS_GUIDELINES.md Rinomina progetto DLL testDLL -> TSSteps e soluzione -> quicktest-codesteps.slnx 2026-06-11 23:45:54 +02:00
quicktest-codesteps.slnx Rinomina progetto DLL testDLL -> TSSteps e soluzione -> quicktest-codesteps.slnx 2026-06-11 23:45:54 +02:00
README.md Aggiunto readme 2026-06-11 23:52:11 +02:00

🧩 QuickTest · CodeSteps

🛠️ DLL di riferimento e linee guida per gli step C/C++ di NI TestStand 2016. Un catalogo completo, compilabile e verificabile, che copre ogni tipo di dato esposto al C/C++ DLL Adapter — il banco di prova canonico del flusso CodeSteps.

Lang Build Toolset Target Output


📖 Cos'è

TSSteps è una DynamicLibrary C++ pensata per essere caricata dal C/C++ DLL Adapter di TestStand. Espone una funzione per ogni tipo di dato (bool, enum, interi con/senza segno a 8/16/32/64 bit, float/double, stringhe, array, struct), ciascuna con un'operazione semplice e verificabile a colpo d'occhio — così da validare il passaggio dei parametri in entrambe le direzioni.

🎯 Obiettivo: fornire un contratto pulito (header dei tipi + typelib) e un set di step di riferimento per chi configura sequenze TestStand col DLL Adapter.


📂 Struttura del repository

quicktest-codesteps/
├── 📄 CODESTEPS_GUIDELINES.md      # 📐 Le regole d'oro (typelib, struct, enum, errori…)
├── 📄 quicktest-codesteps.slnx     # 🧱 Soluzione Visual Studio
├── 📁 TSSteps/                      # 💠 Progetto della DLL
│   ├── TSSteps.h / .cpp             #   → funzioni esportate (Test*)
│   ├── TSSteps_types.h             #   → tipi pubblici (enum/struct) — contratto per TestStand
│   ├── TSSteps.idl                 #   → typelib autocontenuta (.tlb)
│   ├── TSSteps.def                 #   → tabella export
│   ├── TSSteps.rc                  #   → risorse
│   └── pch.* / framework.h / dllmain.cpp
└── 📁 generated/                    # ⚙️ Output del codegen (workspace TestStand generati)

🧪 Step esposti dalla DLL

🔢 Categoria 🧩 Funzione ⚙️ Operazione
✅ Boolean TestBool outVal = NOT inVal
🔁 Enum TestEnum modo successivo (Passthrough → Double → Triple → …)
🔟 Interi TestInt8/16/32/64, TestUInt8/16/32/64 outVal = inVal + 1
🔬 Virgola mobile TestFloat, TestDouble outVal = inVal + 1
🔤 Stringhe TestString outVal = MAIUSCOLO(inVal)
📊 Array TestArrayDouble, TestArrayInt ogni elemento +1 (in-place)
🧱 Struct TestStruct ogni campo +1 (in-place)
🚨 Errori TestErrorParam outVal = inVal+1; errorCode < 0 se inVal < 0

🚦 Modello di errore

  • Valore di ritorno long: 0 = OK, < 0 = errore
  • Buffer char* errorMsg per il messaggio diagnostico
  • Codici standard: TS_OK, TS_ERR_INVALID_PARAM, TS_ERR_NOT_OPEN, TS_ERR_COMM, TS_ERR_TIMEOUT, TS_ERR_GENERAL

🧬 Tipi pubblici (TSSteps_types.h)

  • enum TSOpMode → categoria Enumeration in TestStand
  • struct MeasResult { double value; long status; double timestamp; } → Container (packing 8)

🔨 Build

  1. 📂 Apri quicktest-codesteps.slnx in Visual Studio (toolset v145).
  2. 🧱 Seleziona la configurazione Release e fai Build / Rebuild.
  3. 📦 Nella OutDir ottieni il pacchetto completo:
    File Ruolo
    🟢 TSSteps.dll la libreria
    🧾 TSSteps.tlb typelib standalone (stesso nome base, stessa cartella della DLL)
    📋 TSSteps.h, TSSteps_types.h header del contratto, copiati accanto alla DLL

⚠️ Regola vincolante: la typelib deve essere un file .tlb con lo stesso nome base della DLL e nella stessa cartella — non incorporata come risorsa.


🎛️ Uso in TestStand

  1. 🔌 Step C/C++ DLL Adapter → punta a TSSteps.dll (la .tlb accanto fornisce i prototipi).
  2. 🧬 Tipi struct/enum: importa gli struct con il wizard Create/Update Custom Data Type from Struct (opzione Specify Source Code File) puntando a TSSteps_types.h; gli enum diventano categoria Enumeration.
  3. 📐 Per i dettagli (passaggio struct, packing, gestione errori, varianti) → CODESTEPS_GUIDELINES.md.

🌐 Ecosistema QuickTest

Questo repo è la parte CodeSteps del sistema QuickTest:

  • 🧩 quicktest-codesteps (questo repo) — DLL di riferimento + linee guida + output generato
  • 🦀 quicktest-core — backend/codegen (Rust) che produce i workspace in generated/
  • 🖥️ quicktest-gui-web — interfaccia web

📜 Licenza

🔒 Progetto interno MENSYS · R&D. Tutti i diritti riservati salvo diverso accordo.