Torna indietro   Hardware Upgrade Forum > Software > Programmazione

 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
OPPO ha appena lanciato sul mercato la nuova serie Find X10, che ha come smartphone premium il Find X10 Pro Max, uno smartphone completo, che fa del comparto fotografico il suo vero punto di forza. Ma sono tante le novità, tra cui l'AI che adesso diventa agentica. Ma andiamo a vedere nel dettaglio questo nuovo smartphone.
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
Abbiamo provato la beta di World of Warcraft: Forever, il Classic+ di Blizzard in arrivo il 4 novembre: la nuova razza Skyborne restituisce la sensazione di un gioco nuovo, ma le zone storiche conservano la noia divertita di Classic. Classi ribilanciate, sciamani anche nell'Alleanza e un motore grafico che in 4K gira bene anche su una RTX 3070. Cosa cambia in Forever? La risposta nell'articolo
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita
TCL P80 Ultra abbina per la prima volta un pannello AMOLED alla tecnologia NXTPAPER con finitura opaca, affiancandoci una fotocamera periscopica da 50 MP con zoom ottico 3x, il SoC Dimensity 7400 Elite e una batteria da 5.800 mAh. Nella prova sul campo emergono luminosità di picco molto elevata, comparto fotografico solido per la fascia di prezzo e autonomia nella media, a fronte di velocità di scrittura dello storage piuttosto contenute
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-04-2009, 10:22   #1
mrborel
Member
 
Iscritto dal: Mar 2009
Messaggi: 79
[Mex file Matlab S-fuction]Aiuto!

Ho questo codice e mi chiede di passargli un parametro all'interno di simulink.
A quale variabile appartiene tale parametro?Cordiali saluti


#undef S_FUNCTION_NAME
#define S_FUNCTION_NAME rt_clock_hi

#include "simstruc.h" /* Where simulation structure, S, is defined */
#include <windows.h>

#ifdef MATLAB_MEX_FILE
#include "mex.h"
#endif

/* Input Arguments */
#define MAX_ERROR_ARG ssGetArg(S,0)
#define NUMBER_OF_ARGS (1)

#define NSAMPLE_TIMES (1)

/* IWORK Storage Allocation */
#define START_TIME (0)
#define MAX_ERROR (1)
#define NUMBER_OF_IWORKS (2)

/* RWORK Storage Allocation */
#define NUMBER_OF_RWORKS (0)

__int64 errorsum=0;
__int64 ciclo=0;

#define READINGS_PER_SECOND 10// N° reading per second (e.g. 1000 = 1 millisecond)
//mexPrintf("Prova:%i\n",READINGS_PER_SECOND);
typedef union ms_un {
LARGE_INTEGER lin;
__int64 i64;
} ms_un;
// ------

static double ms_cps = 0; // ticks per millisecond
ms_un HiRes_time; // Hi resolution time

// -- Set the high resolution clock
static void Init_HiRes_Clock(void) {
//##### ms_un HiRes_time;
HiRes_time.i64 = 0;
QueryPerformanceFrequency(&HiRes_time.lin);
if(HiRes_time.i64 == 0)
{
ms_cps = -1;
OutputDebugString("Error. No QPF.\n");
_exit(1);
}
else ms_cps = ((double)HiRes_time.i64/READINGS_PER_SECOND);
}

// -- Read the high resolution clock
__int64 HiRes_Clock() {
QueryPerformanceCounter(&HiRes_time.lin);
return (__int64) HiRes_time.i64/(__int64) ms_cps; //#####
}


static void mdlInitializeSizes(S)
SimStruct *S;
{
if (ssGetNumArgs(S) != NUMBER_OF_ARGS) {
#ifdef MATLAB_MEX_FILE
mexErrMsgTxt("Numero errato di parametri passati.\nE' richiesto un solo argomento.\n");
#endif
} else {
/* Set-up size information */
ssSetNumContStates(S, 0);
ssSetNumDiscStates(S, 0);
ssSetNumInputs(S, 0);
ssSetNumOutputs(S, 0);
ssSetDirectFeedThrough(S, 0);
ssSetNumInputArgs(S, NUMBER_OF_ARGS);
ssSetNumSampleTimes(S, NSAMPLE_TIMES);
ssSetNumIWork(S, NUMBER_OF_IWORKS);
ssSetNumRWork(S, NUMBER_OF_RWORKS);
}
}

/* Inizializzazione del tempo di campionamento */
static void mdlInitializeSampleTimes(S)
SimStruct *S;
{
ssSetSampleTimeEvent(S, 0, INHERITED_SAMPLE_TIME);
ssSetOffsetTimeEvent(S, 0, 0.0);
}

static void mdlInitializeConditions(x0, S)
double *x0;
SimStruct *S;
{
unsigned long error;
__int64 initial_time; // Time when simulation starts


Init_HiRes_Clock();


SetPriorityClass(GetCurrentProcess(),HIGH_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_HIGHEST);


error=(unsigned long) (READINGS_PER_SECOND*mxGetPr(MAX_ERROR_ARG)[0]);
ssSetIWorkValue(S, MAX_ERROR, error);
errorsum=0;
ciclo=0;
initial_time=HiRes_Clock();
ssSetIWorkValue(S, START_TIME, initial_time);

}

/* Function to compute outputs */
static void mdlOutputs(y, x, u, S, tid)
double *y;
double *x;
double *u;
SimStruct *S;
int tid;
{
}

/* Function to compute model update */
static void mdlUpdate(x, u, S, tid)
double *x;
double *u;
SimStruct *S;
int tid;
{
__int64 start_time=0;
__int64 target_time=0;
__int64 target_time2=0;
__int64 max_error=0;
__int64 error=0;

start_time = ssGetIWorkValue(S, START_TIME);
target_time2 = (unsigned long) (ssGetT(S)*READINGS_PER_SECOND);
target_time = target_time2+start_time;
ciclo++;
// start_time = ssGetIWorkValue(S, START_TIME);
// target_time = (unsigned long) (ssGetT(S)*READINGS_PER_SECOND)+start_time;
// ciclo++;

// mexPrintf("Prova:%lu\n",ssGetT(S));


error=HiRes_Clock()-target_time;
if (error > 0) // Simulazione in ritardo
{
max_error = ssGetIWorkValue(S, MAX_ERROR);
if (error>max_error)
{
#ifdef MATLAB_MEX_FILE
mexPrintf("Massimo errore superato. Simulazione bloccata.\n");
mexPrintf("Errore assoluto = %lu millisecondi \n",error);
mexPrintf("MAX Errore assoluto = %lu millisecondi \n",max_error);
#endif
ssSetStopRequested(S,1);
}
else
{
#ifdef MATLAB_MEX_FILE
errorsum+=error;
//mexPrintf("Attenzione: Momentanea perdita del real-time! ");
//mexPrintf("Errore = %lu millisecondi\n",error);
#endif
}
}
else // Temporizzazione OK
{
while (HiRes_Clock() < target_time) ;
}
}

/* Function to compute derivatives */
static void mdlDerivatives(dx, x, u, S, tid)
double *dx;
double *x;
double *u;
SimStruct *S;
int tid;
{
}

/* Function to perform housekeeping at execution termination */
static void mdlTerminate(S)
SimStruct *S;
{

double error_sec=(double) ((double)errorsum/READINGS_PER_SECOND)*1000/ciclo;
mexPrintf("Numero cicli = %i \n",ciclo);
mexPrintf("Media errore per ciclo (msec) = %f \n",error_sec);

SetPriorityClass(GetCurrentProcess(),NORMAL_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_NORMAL);


}

#ifdef MATLAB_MEX_FILE /* Is this file being compiled as a MEX-file? */
#include "simulink.c" /* Mex glue */
#else
#include "cg_sfun.h" /* Code generation glue */
#endif
mrborel è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2009, 09:21   #2
mrborel
Member
 
Iscritto dal: Mar 2009
Messaggi: 79
Questo file mi richiede un parametro da passargli e non riesco a capire a quale variabile del codice corrisponde tale parametro.
mrborel è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato WoW Forever provato: il MMORPG che la community ...
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita TCL P80 Ultra: con un display AMOLED opaco &egra...
HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio HUAWEI MatePad Air recensione: OLED opaco e tast...
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica NVIDIA RTX Spark: il PC Windows on ARM costruito...
L'Air Force Research Laboratory ha utili...
L'ONU esprime preoccupazione per le oper...
OpenAI: GPT-6.1 Sol migra il COBOL all'8...
Cyberpunk 2077 porta le mod su console e...
Agenti di IA, per Akamai la sicurezza pa...
Non solo in Europa: Apple dovrà a...
iPhone Duo, il compromesso del display p...
Reolink OMVI 2i Ultra, la videocamera ib...
PowerToys 0.102: con un nuovo tool il mo...
Bose acquisisce Skullcandy per raggiunge...
I videogiochi di Star Wars dovranno sorp...
Cos'è Flint: l'AI locale per la programm...
Perplexity Computer ora gira offline sul...
LG lancia in Italia i nuovi laptop gram ...
Spotify dice addio ai vincoli di Android...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:29.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v