Всё мне это нужно чтобы подключить аккумулятор к мини пк и сделать переносным...
Это вольтметр usb и в программе надо выбрать диапазон сначала, а потом поялвляются данные..
Так вот нужно сделать:
1) так чтобы кнопка с диапазоном 20 нажималась автоматически или кнопки вообще не было, но команда передавалась на устройство
2) программа подсчитывала и выводила в окне не вольты а проценты оставшегося заряда 0%-7,5В 100%-12,6В
3) чтобы программа сворачивалась в трей и там был значек с батарейкой или с цифорками (проценты заряда), или всё сразу
4) выскакивало предупреждение о малом остатке заряда, как на ноутбуке короче..
ПРОШУ ПОМОЩИ ПОЖАЛУЙСТА...очень для проекта нужно, но я не умею проги писать
#USB_PID=$EF01 #USB_VID=$AAAC Declare FindDevice_Timer() Declare SendDevice() Dim OutBytes.c(8) Global R_DeviceHandle, W_DeviceHandle Global FontID1 FontID1 = LoadFont(1, "Times New Roman", 36) OpenWindow(0, 497, 191, 565, 404, "USB Вольтметр", #PB_Window_MinimizeGadget | #PB_Window_SizeGadget ) ButtonGadget(10, 350, 40, 140, 100, "10") ButtonGadget(20, 350, 160, 140, 100, "20") ButtonGadget(30, 350, 280, 140, 100, "200") StringGadget(40, 40, 40, 100, 100, "", #PB_String_ReadOnly) SetGadgetFont(40,FontID(1)) StringGadget(50, 40, 160, 100, 100, "", #PB_String_ReadOnly) SetGadgetFont(50,FontID(1)) TextGadget(60,280,10,100,30,"Устройство не подключено") AddWindowTimer(0, 1, 200) Procedure FindDevice_Timer() ;Shared DeviceHandle Static Old_Test Test=HID_Lib_DeviceTest(#USB_PID, #USB_VID) If Test<>Old_Test Old_Test=Test If Test HID_Lib_CloseDevice(R_DeviceHandle) : HID_Lib_CloseDevice(W_DeviceHandle) W_DeviceHandle=HID_Lib_OpenDevice(#USB_PID, #USB_VID) R_DeviceHandle=HID_Lib_OpenDevice(#USB_PID, #USB_VID) SetGadgetText(60,"") Else HID_Lib_CloseDevice(R_DeviceHandle) : HID_Lib_CloseDevice(W_DeviceHandle) R_DeviceHandle=0 : W_DeviceHandle=0 SetGadgetText(60,"Устройство неподключено") EndIf EndIf EndProcedure Procedure ReadDevice_Thread(*x) Dim InBytes.c(9) Repeat If R_DeviceHandle HID_Lib_ReadDevice(R_DeviceHandle, @InBytes(), 9) If InBytes(1)=1 SetGadgetText(40,Str( InBytes(2))) EndIf If InBytes(1)=2 SetGadgetText(50,Str( InBytes(2))) EndIf EndIf Delay(20) ForEver EndProcedure Procedure SendDevice() Shared OutBytes() If W_DeviceHandle HID_Lib_WriteDevice(W_DeviceHandle, @OutBytes(), 9) EndIf EndProcedure CreateThread(@ReadDevice_Thread(),0) Repeat Event=#PB_Event_Timer If EventTimer() FindDevice_Timer() EndIf Event=#PB_Event_Gadget Select EventGadget() Case 10 SetGadgetText(50,"10") OutBytes(1) = 3 OutBytes(2) = 10 SendDevice() Case 20 SetGadgetText(50,"20") OutBytes(1) = 3 OutBytes(2) = 20 SendDevice() Case 30 SetGadgetText(50,"200") OutBytes(1) = 3 OutBytes(2) = 200 SendDevice() EndSelect Event=WaitWindowEvent() Until Event=#PB_Event_CloseWindow