u32 showDeviceInfo() { u32 configAddress = calculateAddress(bus, device, function, 0x00); u32 RegData = getRegData(configAddress); if (RegData == -1) { return 1; } u32 DeviceID = RegData >> 16; u32 VendorID = RegData - (DeviceID << 16); configAddress = calculateAddress(bus, device, function, 0x08); RegData = getRegData(configAddress); u32 ClassID = RegData >> 8; u32 RevisionID = RegData - (ClassID << 8); u32 BaseClassCode = ClassID >> 16; u32 Progu32erface = ClassID - (BaseClassCode << 16); u32 SubClassCode = Progu32erface >> 8; Progu32erface = Progu32erface - (SubClassCode << 8); configAddress = calculateAddress(bus, device, function, 0x2C); RegData = getRegData(configAddress); u32 SubsysID = RegData >> 16; u32 SubsysVendID = RegData - (SubsysID << 16); printf("Bus: %x, device: %x, function: %x\n", bus, device, function); printf("Device ID: %x, Vendor ID: %x, Class ID: %x-%x-%x\n", DeviceID, VendorID, BaseClassCode, SubClassCode, Progu32erface); printf("Revision ID: %x, Subsystem ID: %x, Subsystem Vendor ID: %x\n", RevisionID, SubsysID, SubsysVendID); decodeNames(DeviceID, VendorID, BaseClassCode, SubClassCode, Progu32erface); printf("-------------------------------------------------------------------------------\n"); return 0; }
/*-----------------------------------------------------------------------*/ double getNXDatasetValue(pNXDS dataset, int pos[]){ int address; if(dataset == NULL){ return 0; } if(dataset->magic != MAGIC){ return 0; } address = calculateAddress(dataset,pos); return getNXDatasetValueAt(dataset, address); }
/*----------------------------------------------------------------------*/ int putNXDatasetValue(pNXDS dataset, int64_t pos[], double value){ int64_t address; if(dataset == NULL){ return 0; } if(dataset->magic != MAGIC){ return 0; } address = calculateAddress(dataset,pos); return putNXDatasetValueAt(dataset,address,value); }
/* classic x,y pixel addressing */ void easyT6963::graphicGoTo(uint8_t x, uint8_t y){ unsigned int address = calculateAddress(x,y); setAddressPointer(address); }