#pragma once #include #include #include #define G300 template void write_dev(std::string path, T value) { std::ofstream ofout(path); ofout << value; } extern int read_dev_i(std::string path); extern std::string read_dev_s(std::string path); enum PORTS { Start = 171, Stop = 49, Power = 5, Fpga_Load = 70, #ifndef G300 Power_12v_Off = 12, #endif MotorPower = 48, CuoZhiMotor_Reset = 56, CuoZhiMotor_Sleep = 57, CuoZhiMotor_Enable = 58, CuoZhiMotor_Direction = 62, CuoZhiMotor_Decay = 63, CuoZhiMotor_Home = 184, CuoZhiMotor_Fault = 185, CuoZhiMotor_Mode0 = 59, CuoZhiMotor_Mode1 = 60, CuoZhiMotor_Mode2 = 61, Cover = 189, // 'GPIO6A5' opened:0 ; closed:1 Paper = 225, // 'GPIO7B1' has paper:0 ; no paper:1 Scan = 226, // 'GPIO7B2' no paper:0 ; has paper:1 PaperJam = 102, Double_Paper = 219, // 'GPIO7A3' not doubled:0 ; doubled:1 SW_NOR_FLASH = 221, Double_Enable = 250, // 'GPIO8A2' off: 0 ; on: 1 ZouZhiMotor_Reset = 64, ZouZhiMotor_Sleep = 65, ZouZhiMotor_Enable = 66, ZouZhiMotor_Direction = 70, ZouZhiMotor_Decay = 71, ZouZhiMotor_Home = 187, ZouZhiMotor_Fault = 188, ZouZhiMotor_Mode0 = 67, ZouZhiMotor_Mode1 = 68, ZouZhiMotor_Mode2 = 69, CIS_3v3_Off = 96, CIS_5v_En = 98, Fpga_InitDone = 99, Image_In_Transfer = 101, Fpga_Reset = 232 }; class DeviceExport { public: DeviceExport(); private: #ifndef G300 const int ports[38] = {Start, Stop, Power, Fpga_Load, Power_12v_Off, MotorPower, CuoZhiMotor_Reset, CuoZhiMotor_Sleep, CuoZhiMotor_Enable, CuoZhiMotor_Direction, CuoZhiMotor_Decay, CuoZhiMotor_Home, CuoZhiMotor_Fault, CuoZhiMotor_Mode0, CuoZhiMotor_Mode1, CuoZhiMotor_Mode2, Cover, Paper, Scan, PaperJam, Double_Paper, Double_Enable, ZouZhiMotor_Reset, ZouZhiMotor_Sleep, ZouZhiMotor_Enable, ZouZhiMotor_Direction, ZouZhiMotor_Decay, ZouZhiMotor_Home, ZouZhiMotor_Fault, ZouZhiMotor_Mode0, ZouZhiMotor_Mode1, ZouZhiMotor_Mode2, CIS_3v3_Off, CIS_5v_En, Fpga_InitDone, Image_In_Transfer, Fpga_Reset, SW_NOR_FLASH}; #else const int ports[36] = {Start, Stop, Power, Fpga_Load, MotorPower, CuoZhiMotor_Reset, CuoZhiMotor_Sleep, CuoZhiMotor_Enable, CuoZhiMotor_Direction, CuoZhiMotor_Decay, CuoZhiMotor_Home, CuoZhiMotor_Fault, CuoZhiMotor_Mode0, CuoZhiMotor_Mode1, CuoZhiMotor_Mode2, Cover, Paper, Scan, PaperJam, Double_Paper, Double_Enable, ZouZhiMotor_Reset, ZouZhiMotor_Sleep, ZouZhiMotor_Enable, ZouZhiMotor_Direction, ZouZhiMotor_Decay, ZouZhiMotor_Home, ZouZhiMotor_Fault, ZouZhiMotor_Mode0, ZouZhiMotor_Mode1, ZouZhiMotor_Mode2, CIS_3v3_Off, CIS_5v_En, Fpga_InitDone, Image_In_Transfer, Fpga_Reset}; #endif const int pwms[2] = {2, 3}; };