ret_code_t ann_block_modeset(void) { SaErrorT rv; SaHpiAnnunciatorModeT mode; char buf[256]; int res; res = get_string_param("Mode(auto|user|shared): ", buf, 10); if (res != 0) { printf("Invalid mode: %s\n", buf); return(HPI_SHELL_PARM_ERROR); }; if (strcmp(buf, "auto") == 0) mode = SAHPI_ANNUNCIATOR_MODE_AUTO; else if (strcmp(buf, "user") == 0) mode = SAHPI_ANNUNCIATOR_MODE_USER; else if (strcmp(buf, "shared") == 0) mode = SAHPI_ANNUNCIATOR_MODE_SHARED; else { printf("Invalid mode: %s\n", buf); return(HPI_SHELL_PARM_ERROR); }; rv = saHpiAnnunciatorModeSet(Domain->sessionId, ann_block_env.rptid, ann_block_env.rdrnum, mode); if (rv != SA_OK) { printf("saHpiAnnunciatorModeSet error %s\n", oh_lookup_error(rv)); return(HPI_SHELL_CMD_ERROR); }; return(HPI_SHELL_OK); }
int processAnnunRdr(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiRdrT * rdr, SaHpiAnnunciatorRecT * annunRec) { SaErrorT status; int retval = SAF_TEST_NOTSUPPORT; SaHpiAnnunciatorNumT a_num = annunRec->AnnunciatorNum; SaHpiAnnunciatorModeT bad_mode = SAHPI_ANNUNCIATOR_MODE_SHARED + 1; if (!annunRec->ModeReadOnly) { status = saHpiAnnunciatorModeSet(sessionId, resourceId, a_num, bad_mode); if (status == SA_ERR_HPI_INVALID_PARAMS) { retval = SAF_TEST_PASS; } else { retval = SAF_TEST_FAIL; e_print(saHpiAnnunciatorModeSet, SA_ERR_HPI_INVALID_PARAMS, status); } } return retval; }
int processAnnunRdr(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiRdrT * rdr, SaHpiAnnunciatorRecT * annunRec) { SaErrorT status; int retval; SaHpiAnnunciatorNumT a_num = annunRec->AnnunciatorNum; status = saHpiAnnunciatorModeSet(INVALID_SESSION_ID, resourceId, a_num, SAHPI_ANNUNCIATOR_MODE_USER); if (status == SA_ERR_HPI_INVALID_SESSION) { retval = SAF_TEST_PASS; } else { retval = SAF_TEST_FAIL; e_print(saHpiAnnunciatorModeSet, SA_ERR_HPI_INVALID_SESSION, status); } return retval; }
ret_code_t ann_block(void) { SaHpiRdrT rdr_entry; SaHpiResourceIdT rptid; SaHpiInstrumentIdT rdrnum; SaHpiAnnunciatorModeT mode; SaHpiRdrTypeT type; SaErrorT rv; char buf[256]; char *str; ret_code_t ret; term_def_t *term; int res, val; ret = ask_rpt(&rptid); if (ret != HPI_SHELL_OK) return(ret); type = SAHPI_ANNUNCIATOR_RDR; ret = ask_rdr(rptid, type, &rdrnum); if (ret != HPI_SHELL_OK) return(ret); rv = saHpiRdrGetByInstrumentId(Domain->sessionId, rptid, type, rdrnum, &rdr_entry); if (rv != SA_OK) { printf("saHpiRdrGetByInstrumentId error %s\n", oh_lookup_error(rv)); printf("ERROR!!! Can not get rdr: ResourceId=%d RdrType=%d RdrNum=%d\n", rptid, type, rdrnum); return(HPI_SHELL_CMD_ERROR); }; show_rdr_attrs(&rdr_entry); for (;;) { block_type = ANN_COM; res = get_new_command("annunciator block ==> "); if (res == 2) { unget_term(); block_type = MAIN_COM; return HPI_SHELL_OK; }; term = get_next_term(); if (term == NULL) continue; snprintf(buf, 256, "%s", term->term); if ((strcmp(buf, "q") == 0) || (strcmp(buf, "quit") == 0)) break; if (strcmp(buf, "acknow") == 0) { set_acknowledge(rptid, rdrnum); continue; }; if (strcmp(buf, "list") == 0) { list_cond(rptid, rdrnum); continue; }; if (strcmp(buf, "add") == 0) { add_announ(rptid, rdrnum); continue; }; if (strcmp(buf, "delete") == 0) { delete_announ(rptid, rdrnum); continue; }; if (strcmp(buf, "modeget") == 0) { rv = saHpiAnnunciatorModeGet(Domain->sessionId, rptid, rdrnum, &mode); if (rv != SA_OK) { printf("saHpiAnnunciatorModeGet error %s\n", oh_lookup_error(rv)); continue; }; switch (mode) { case SAHPI_ANNUNCIATOR_MODE_AUTO: str = "AUTO"; break; case SAHPI_ANNUNCIATOR_MODE_USER: str = "USER"; break; case SAHPI_ANNUNCIATOR_MODE_SHARED: str = "SHARED"; break; default: str = "Unknown"; break; }; printf("Annunciator Mode: %s\n", str); continue; }; if (strcmp(buf, "modeset") == 0) { res = get_string_param("Mode(auto|user|shared): ", buf, 10); if (res != 0) { printf("Invalid mode: %s\n", buf); continue; }; if (strcmp(buf, "auto") == 0) mode = SAHPI_ANNUNCIATOR_MODE_AUTO; else if (strcmp(buf, "user") == 0) mode = SAHPI_ANNUNCIATOR_MODE_USER; else if (strcmp(buf, "shared") == 0) mode = SAHPI_ANNUNCIATOR_MODE_SHARED; else { printf("Invalid mode: %s\n", buf); continue; }; rv = saHpiAnnunciatorModeSet(Domain->sessionId, rptid, rdrnum, mode); if (rv != SA_OK) { printf("saHpiAnnunciatorModeSet error %s\n", oh_lookup_error(rv)); }; continue; }; if (strcmp(buf, "show") == 0) { term = get_next_term(); if (term == NULL) { show_rdr_attrs(&rdr_entry); continue; }; unget_term(); res = get_int_param(" ", &val); if (res != 1) unget_term(); else show_cond(rptid, rdrnum, val); continue; } }; block_type = MAIN_COM; return SA_OK; }