64 if ( FALSE == ils->vtable->authorize ( ils, 0, model_key, VSM_API_VERSION ) )
80 pin.pin->vtable->setstate2 ( pin.pin, 0, curtime, pin.on_time, state );
92 pin.pin->vtable->setstate2 ( pin.pin, 0, curtime, pin.on_time, level ? SHI : SLO );
101 model_dsim->vtable->sysvar ( model_dsim, 0, ( DOUBLE* ) at, DSIMTIMENOW );
111 return model_instance->vtable->getstrval ( model_instance, 0, field_name,
"?" );
121 return model_instance->vtable->getboolval ( model_instance, 0, field_name, FALSE );
132 model_instance->vtable->getnumval ( model_instance, 0, &result, field_name, 0.0 );
143 return ( int32_t ) model_instance->vtable->gethexval ( model_instance, 0, field_name, 0 );
153 return ( int64_t ) model_instance->vtable->getinitval ( model_instance, 0, field_name, 0 );
162 void load_image (
char* filename, uint8_t* buffer,
size_t buffer_size )
164 model_instance->vtable->loadmemory ( model_instance, 0, filename, buffer, buffer_size, 0, 0 );
174 return ( ( IPOPUP* ) model_instance->vtable->createpopup ( model_instance, 0, cps ) );
185 CREATEPOPUPSTRUCT* cps = malloc (
sizeof *cps );
186 cps->caption = (
char* ) title;
187 cps->flags = PWF_VISIBLE | PWF_HIDEONANIMATE | PWF_SIZEABLE| PWF_AUTOREFRESH ;
188 cps->type = PWT_MEMORY;
192 IMEMORYPOPUP* popup = ( IMEMORYPOPUP* )
create_popup ( cps );
205 CREATEPOPUPSTRUCT* cps = malloc (
sizeof *cps );
206 cps->caption = (
char* ) title;
207 cps->flags = PWF_VISIBLE | PWF_HIDEONANIMATE | PWF_SIZEABLE| PWF_AUTOREFRESH ;
208 cps->type = PWT_DEBUG;
225 CREATEPOPUPSTRUCT* cps = malloc (
sizeof *cps );
226 cps->caption = (
char* ) title;
227 cps->flags = PWF_VISIBLE | PWF_HIDEONANIMATE | PWF_SIZEABLE| PWF_AUTOREFRESH ;
228 cps->type = PWT_SOURCE;
245 CREATEPOPUPSTRUCT* cps = malloc (
sizeof *cps );
246 cps->caption = (
char* ) title;
247 cps->flags = PWF_VISIBLE | PWF_HIDEONANIMATE | PWF_SIZEABLE | PWF_AUTOREFRESH ;
248 cps->type = PWT_STATUS;
265 CREATEPOPUPSTRUCT* cps = malloc (
sizeof *cps );
266 cps->caption = (
char* ) title;
267 cps->flags = PWF_VISIBLE | PWF_HIDEONANIMATE | PWF_SIZEABLE| PWF_AUTOREFRESH ;
283 model_instance->vtable->deletepopup ( model_instance, 0,
id );
295 popup->vtable->setmemory ( popup, 0, offset, buffer, size );
307 bool result = popup->vtable->addsrcfile ( popup, 0, filename, lowlevel );
308 popup->vtable->setpcaddress ( popup, 0, 0 );
318 return model_instance->vtable->setvdmhlr ( model_instance, 0, &ICPU_DEVICE );
328 popup->vtable->setpcaddress ( popup, 0, address );
337 popup->vtable->repaint ( popup, 0 );
347 popup->vtable->print ( popup, (
char* ) message );
359 popup->vtable->dump ( popup, 0, buf + offset, size, 16 );
369 if ( SHI == pinstate )
373 else if ( SLO == pinstate )
386 return pin->vtable->istate ( pin, 0 );
396 STATE pinstate = pin.pin->vtable->istate ( pin.pin, 0 );
397 if ( SLO == pinstate || WLO == pinstate || ILO == pinstate || PLO == pinstate)
401 else if ( SHI == pinstate || WHI == pinstate || IHI == pinstate || PHI == pinstate)
415 return pin->vtable->isactive ( pin, 0 );
425 return pin->vtable->isposedge ( pin, 0 );
435 return pin->vtable->isnegedge ( pin, 0 );
445 return pin->vtable->isedge ( pin, 0 );
455 model_dsim->vtable->setcallback ( model_dsim, 0, picotime, &VSM_DEVICE,
id );
466 va_start ( args, format );
467 if ( 0 > vasprintf ( &
string, (
char* ) format, args ) )
string = NULL;
469 model_instance->vtable->log ( model_instance,
string );
481 va_start ( args, format );
482 if ( 0 > vasprintf ( &
string, (
char* ) format, args ) )
string = NULL;
484 model_instance->vtable->message ( model_instance,
string );
496 va_start ( args, format );
497 if ( 0 > vasprintf ( &
string, (
char* ) format, args ) )
string = NULL;
499 model_instance->vtable->warning ( model_instance,
string );
511 va_start ( args, format );
512 if ( 0 > vasprintf ( &
string, (
char* ) format, args ) )
string = NULL;
514 model_instance->vtable->error ( model_instance,
string );
525 return model_instance->vtable->getdsimpin ( model_instance, 0, pin_name, TRUE );
535 return islow ( pin->vtable->istate ( pin, 0 ) );
545 return ishigh ( pin->vtable->istate ( pin, 0 ) );
555 return isfloating ( pin->vtable->istate ( pin, 0 ) );
565 return pin->vtable->issteady ( pin, 0 );
573 inline bool islow ( STATE pinstate )
575 return ( pinstate & SP_MASK ) == SP_LOW;
578 ishigh ( STATE pinstate )
580 return ( pinstate & SP_MASK ) == SP_HIGH;
583 isfloating ( STATE pinstate )
585 return ( pinstate & SP_MASK ) == SP_FLOAT;
588 iscontention ( STATE pinstate )
590 return pinstate & SF_CONTENTION;
593 isdefined ( STATE pinstate )
595 return pinstate != SP_UNDEFINED;
598 ishighlow ( STATE pinstate )
603 polarity ( STATE pinstate )
605 return pinstate & SP_MASK;
608 strength ( STATE pinstate )
610 return pinstate & SS_MASK;
bool is_pin_posedge(IDSIMPIN *pin)
void toggle_pin_state(VSM_PIN pin)
bool is_pin_steady(IDSIMPIN *pin)
IDEBUGPOPUP * create_source_popup(const char *title, const int32_t id)
int64_t get_init_param(char *field_name)
STATE get_pin_state(IDSIMPIN *pin)
bool is_pin_edge(IDSIMPIN *pin)
bool is_pin_active(IDSIMPIN *pin)
void set_memory_popup(IMEMORYPOPUP *popup, size_t offset, void *buffer, size_t size)
bool is_pin_low(IDSIMPIN *pin)
void set_pin_state(VSM_PIN pin, STATE state)
void out_message(const char *format,...)
IPOPUP * create_popup(CREATEPOPUPSTRUCT *cps)
bool vsm_register(ILICENCESERVER *ils)
void out_error(const char *format,...)
void print_to_debug_popup(IDEBUGPOPUP *popup, const char *message)
void out_warning(const char *format,...)
int32_t get_pin_bool(VSM_PIN pin)
int32_t get_hex_param(char *field_name)
void set_pc_address(ISOURCEPOPUP *popup, size_t address)
void delete_popup(POPUPID id)
bool get_bool_param(char *field_name)
IDEBUGPOPUP * create_debug_popup(const char *title, const int32_t id)
char * get_string_param(char *field_name)
void dump_to_debug_popup(IDEBUGPOPUP *popup, const uint8_t *buf, uint32_t offset, uint32_t size)
bool add_source_file(ISOURCEPOPUP *popup, char *filename, bool lowlevel)
IDEBUGPOPUP * create_var_popup(const char *title, const int32_t id)
bool set_vdm_handler(void)
IDSIMPIN * get_pin(char *pin_name)
bool is_pin_floating(IDSIMPIN *pin)
IDEBUGPOPUP * create_status_popup(const char *title, const int32_t id)
void systime(ABSTIME *at)
void set_callback(RELTIME picotime, EVENTID id)
bool is_pin_high(IDSIMPIN *pin)
bool islow(STATE pinstate)
void load_image(char *filename, uint8_t *buffer, size_t buffer_size)
IMEMORYPOPUP * create_memory_popup(const char *title, const int32_t id)
void set_pin_bool(VSM_PIN pin, bool level)
const char * state_to_string(STATE pinstate)
[Convert pin state to string]
void repaint_memory_popup(IMEMORYPOPUP *popup)
double get_num_param(char *field_name)
int popup_id
Global pop identificator. Should be unique.
void out_log(const char *format,...)
bool is_pin_negedge(IDSIMPIN *pin)