📄 iommaster0.c
字号:
printf("iommaster: Ending APAC_IOM_GetDinState...\n"); break; case 7: // APAC_IOM_SetDinMode devId = 1; printf("Enter device ID [%d]: ", devId); memset(line, 0, sizeof(line)); fgets(line, sizeof(line), stdin); sscanf(line, "%d", &devId); for (i = 0; i < 8; i++) { mode = 0; printf("DIN %d:\n", i); printf("Enter mode (0 = disable, 1 = Low to High, 2 = High to Low, 3 = Both) [%d]: ", mode); memset(line, 0, sizeof(line)); fgets(line, sizeof(line), stdin); sscanf(line, "%d", &mode); APAC_IOM_UpdateDinMode(devId, i, mode); } printf("iommaster: devId: %d\n", devId); for (i = 0; i < 8; i++) { APAC_IOM_GetDinMode(devId, i, &mode); printf("iommaster: DIN %d: mode: %d\n", i, mode); } printf("iommaster: Starting APAC_IOM_SetDinMode...\n"); ret = APAC_IOM_SetDinMode(devId); if (ret != APAC_IOM_NOERR) printf("iommaster: APAC_IOM_SetDinMode failed with error 0x%x\n", ret); printf("iommaster: Ending APAC_IOM_SetDinMode...\n"); break; case 8: // APAC_IOM_SetRlyState devId = 1; index = 0; state = 1; duration = 50; printf("Enter device ID [%d]: ", devId); memset(line, 0, sizeof(line)); fgets(line, sizeof(line), stdin); sscanf(line, "%d", &devId); printf("Enter index [%d]: ", index); memset(line, 0, sizeof(line)); fgets(line, sizeof(line), stdin); sscanf(line, "%d", &index); printf("Enter state (0 = Off, 1 = On) [%d]: ", state); memset(line, 0, sizeof(line)); fgets(line, sizeof(line), stdin); sscanf(line, "%d", &state); printf("Enter duration [%d]: ", duration); memset(line, 0, sizeof(line)); fgets(line, sizeof(line), stdin); sscanf(line, "%d", &duration); printf("iommaster: devId: %d, index: %d, state: %d:, duration: %d\n", devId, index, state, duration); printf("iommaster: Starting APAC_IOM_SetRlyState...\n"); ret = APAC_IOM_SetRlyState(devId, index, state, duration); if (ret != APAC_IOM_NOERR) printf("iommaster: APAC_IOM_SetRlyState failed with error 0x%x\n", ret); printf("iommaster: Ending APAC_IOM_SetRlyState...\n"); break; case 9: // APAC_IOM_SetDoutState devId = 1; index = 0; state = 1; printf("Enter device ID [%d]: ", devId); memset(line, 0, sizeof(line)); fgets(line, sizeof(line), stdin); sscanf(line, "%d", &devId); printf("Enter index [%d]: ", index); memset(line, 0, sizeof(line)); fgets(line, sizeof(line), stdin); sscanf(line, "%d", &index); printf("Enter state (0 = Low, 1 = High) [%d]: ", state); memset(line, 0, sizeof(line)); fgets(line, sizeof(line), stdin); sscanf(line, "%d", &state); printf("iommaster: devId: %d, index: %d, state: %d\n", devId, index, state); printf("iommaster: Starting APAC_IOM_SetDoutState...\n"); ret = APAC_IOM_SetDoutState(devId, index, state); if (ret != APAC_IOM_NOERR) printf("iommaster: APAC_IOM_SetDoutState failed with error 0x%x\n", ret); printf("iommaster: Ending APAC_IOM_SetDoutState...\n"); break; case 10: // APAC_IOM_QueryEvents devId = 1; printf("Enter device ID [%d]: ", devId); memset(line, 0, sizeof(line)); fgets(line, sizeof(line), stdin); sscanf(line, "%d", &devId); printf("iommaster: devId: %d\n", devId); printf("iommaster: Starting APAC_IOM_QueryEvents...\n"); ret = APAC_IOM_QueryEvents(devId, &numEvents, &moreEvents, events, sizeof(events) / sizeof(events[0])); if (ret != APAC_IOM_NOERR) printf("iommaster: APAC_IOM_QueryEvents failed with error 0x%x\n", ret); else { printf("iommaster: numEvents: %d\n", numEvents); printf("iommaster: moreEvents: %s\n", moreEvents ? "Yes" : "No"); for (i = 0; i < numEvents; i++) { printf("iommaster: event %d: index: %d, eventType: %d, prevState: %d, currState: %d\n", i, events[i].index, events[i].eventType, events[i].prevState, events[i].currState); } } printf("iommaster: Ending APAC_IOM_QueryEvents...\n"); break; case 11: // APAC_IOM_InitKey devId = 1; printf("Enter device ID [%d]: ", devId); memset(line, 0, sizeof(line)); fgets(line, sizeof(line), stdin); sscanf(line, "%d", &devId); printf("Enter master key: "); memset(line, 0, sizeof(line)); fgets(line, sizeof(line), stdin); memset(masterKey, 0, sizeof(masterKey)); HexStringToByteArray(line, masterKey, sizeof(masterKey)); memset(line, 0, sizeof(line)); printf("Enter slave key: "); memset(line, 0, sizeof(line)); fgets(line, sizeof(line), stdin); memset(slaveKey, 0, sizeof(slaveKey)); HexStringToByteArray(line, slaveKey, sizeof(slaveKey)); printf("iommaster: devId: %d\n", devId); printf("iommaster: masterKey: "); PrintBuffer(masterKey, sizeof(masterKey)); printf("iommaster: slaveKey : "); PrintBuffer(slaveKey, sizeof(slaveKey)); printf("iommaster: Starting APAC_IOM_InitKey...\n"); ret = APAC_IOM_InitKey(devId, masterKey, slaveKey); if (ret != APAC_IOM_NOERR) printf("iommaster: APAC_IOM_InitKey failed with error 0x%x\n", ret); printf("iommaster: Ending APAC_IOM_InitKey...\n"); break; default: break; } } ret = APAC_IOM_Terminate(); if (ret != APAC_IOM_NOERR) { printf("iommaster: APAC_IOM_Terminate failed with error 0x%x\n", ret); return 1; } return 0;}int HexStringToByteArray(char *string, unsigned char *array, int arraySize){ int len = 0; bool first = true; int stringLen = strlen(string); int i; strupr(string); for (i = 0; i < stringLen; i++) { if ((string[i] >= '0') && (string[i] <= '9')) { if (first) { array[len] = (string[i] - '0') << 4; first = false; } else { array[len] |= (string[i] - '0'); first = true; len++; } } else if ((string[i] >= 'A') && (string[i] <= 'F')) { if (first) { array[len] = (string[i] - 'A' + 10) << 4; first = false; } else { array[len] |= (string[i] - 'A' + 10); first = true; len++; } } if (len >= arraySize) break; } return len;}char *strupr(char *string){ while (*string != '\0') { *string = toupper(*string); string++; } return string;}void PrintBuffer(unsigned char *buffer, int len){ int i; for (i = 0; i < len; i++) printf("%02x ", buffer[i]); printf("\n");}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -