summaryrefslogtreecommitdiff
path: root/ldmicro/components/relay.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ldmicro/components/relay.cpp')
-rw-r--r--ldmicro/components/relay.cpp208
1 files changed, 0 insertions, 208 deletions
diff --git a/ldmicro/components/relay.cpp b/ldmicro/components/relay.cpp
deleted file mode 100644
index 262241f..0000000
--- a/ldmicro/components/relay.cpp
+++ /dev/null
@@ -1,208 +0,0 @@
-#include <wincodec.h>
-#include <stdio.h>
-#include <math.h>
-//#include <string.h>
-#include <commctrl.h>
-#include <Windowsx.h>
-
-#include "components.h"
-#include "componentstructs.h"
-#include "componentfunctions.h"
-#include "componentimages.h"
-
-HWND* RelayDialog;
-HWND MinOperatingVoltTextbox;
-HWND MaxOperatingVoltTextbox;
-
-enum RelayPins{
- Coil1 = 0,
- Coil2 = 1,
- COM = 2,
- NO = 3,
- NC = 4,
-};
-
-int InitRelay(void* ComponentAddress)
-{
- RelayStruct* temp = (RelayStruct*)ComponentAddress;
- temp->Image = RELAY_NC;
- temp->MinOperatingVolt = 5;
- temp->MaxOperatingVolt = 12;
- temp->NC = TRUE;
-
- return RELAY_NC;
-}
-
-void MakeRelayControls(void)
-{
- HWND MinOperatingVoltLabel = CreateWindowEx(0, WC_STATIC, ("Minimum Operating Volt:"),
- WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE | SS_RIGHT,
- 5, 21, 100, 21, *RelayDialog, NULL, NULL, NULL);
- FontNice(MinOperatingVoltLabel);
-
- HWND MaxOperatingVoltLabel = CreateWindowEx(0, WC_STATIC, ("Maximum Operating Volt:"),
- WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE | SS_RIGHT,
- 5, 41, 100, 21, *RelayDialog, NULL, NULL, NULL);
- FontNice(MaxOperatingVoltLabel);
-
- MinOperatingVoltTextbox = CreateWindowEx(WS_EX_CLIENTEDGE, WC_EDIT, "",
- WS_CHILD | ES_AUTOHSCROLL | WS_TABSTOP | WS_CLIPSIBLINGS | WS_VISIBLE,
- 110, 21, 155, 21, *RelayDialog, NULL, NULL, NULL);
- FontFixed(MinOperatingVoltTextbox);
-
- MaxOperatingVoltTextbox = CreateWindowEx(WS_EX_CLIENTEDGE, WC_EDIT, "",
- WS_CHILD | ES_AUTOHSCROLL | WS_TABSTOP | WS_CLIPSIBLINGS | WS_VISIBLE,
- 110, 41, 155, 21, *RelayDialog, NULL, NULL, NULL);
- FontFixed(MaxOperatingVoltTextbox);
-
- /*PrevNameProc = SetWindowLongPtr(NameTextbox, GWLP_WNDPROC,
- (LONG_PTR)MyNameProc);*/
-}
-
-void LoadState(RelayStruct* Data)
-{
- char Voltage[15];
- sprintf((char*)Voltage,"%f",Data->MinOperatingVolt);
- Edit_SetText(MinOperatingVoltTextbox, Voltage);
- sprintf((char*)Voltage,"%f",Data->MaxOperatingVolt);
- Edit_SetText(MaxOperatingVoltTextbox, Voltage);
-}
-
-BOOL SaveRelayDialog(RelayStruct* Data)
-{
- double volt, volt2;
- char Voltage[15];
- Edit_GetText(MinOperatingVoltTextbox, (LPSTR)&Voltage, 15);
- volt = atof(Voltage);
- Edit_GetText(MaxOperatingVoltTextbox, (LPSTR)&Voltage, 15);
- volt2 = atof(Voltage);
- if(volt == 0.0f)
- {
- MessageBox(*RelayDialog,
- ("Incomplete"), ("Warning"), MB_OK | MB_ICONWARNING);
- return FALSE;
- }
- else if((volt2 == 0.0f) || (volt2<volt))
- {
- MessageBox(*RelayDialog,
- ("Incomplete"), ("Warning"), MB_OK | MB_ICONWARNING);
- return FALSE;
- }else
- {
- Data->MinOperatingVolt = volt;
- Data->MaxOperatingVolt = volt2;
- }
- return TRUE;
-}
-
-void ShowRelayDialog(void* ComponentAddress)
-{
- RelayStruct* Data = (RelayStruct*) ComponentAddress;
- BOOL Canceled, Complete = TRUE;
- RelayDialog = CreateDialogWindow("Relay Dialog", 100, 100, 290, 50, STYLE_HORIZONTAL);
- MakeRelayControls();
- ShowDialogWindow();
- LoadState(Data);
- Canceled = ProcessDialogWindow();
- while(Canceled == FALSE)
- {
- Complete = SaveRelayDialog(Data);
- if(Complete == TRUE)
- {
- // MessageBox(*RelayDialog,
- // ("Saved"), ("Mouse click"), MB_OK | MB_ICONWARNING);
- break;
- }else
- {
- Complete =TRUE;
- Canceled = ProcessDialogWindow();
- }
- }
- DestroyWindow(*RelayDialog);
-}
-
-void HandleRelayEvent(void* ComponentAddress, int Event, BOOL SimulationStarted,
- void* ImageLocation, UINT ImageId, HWND* h)
-{
- RelayStruct *temp = (RelayStruct*)ComponentAddress;
- if(SimulationStarted)
- {
- /*Relay is a static component. It's value does not change with
- direct user interaction hence this part is blank for relays*/
- }
- else
- {
- switch(Event){
- case EVENT_MOUSE_DBLCLICK:
- ShowRelayDialog(ComponentAddress);
- // SetImage(temp->Image, ImageLocation);
- // RefreshImages();
- break;
- }
- }
-}
-
-double RelayVoltChanged(void* ComponentAddress, BOOL SimulationStarted, int index,
- double Volt, int Source, void* ImageLocation)
-{
- if(SimulationStarted)
- {
- RelayStruct *Relay = (RelayStruct*)ComponentAddress;
- /*if(index == Coil2)
- {
- char vx[10],vy[10];
- _gcvt(Volt, 10, vy);
- _itoa(index, vx, 10);
- MessageBox(NULL,
- (LPSTR)(vx), (LPSTR)(vx), MB_OK | MB_ICONWARNING);
- }*/
- double Volt2,diff;
- switch(index)
- {
- case Coil1:
- Volt2 = VoltRequest(Relay->PinId[Coil2], ComponentAddress);
- break;
- case Coil2:
- Volt2 = VoltRequest(Relay->PinId[Coil1], ComponentAddress);
- break;
- default:
- return Volt;
- }
- diff = fabs(Volt2-Volt);
- if((diff >= Relay->MinOperatingVolt) && (diff <= Relay->MaxOperatingVolt))
- {
- Relay->Image = RELAY_NO;
- }
- else
- {
- Relay->Image = RELAY_NC;
- }
- SetImage(Relay->Image, ImageLocation);
- RefreshImages();
- }
- /*char Debug[256];
- sprintf_s(Debug, "RelayVoltChanged: \tAddr1: %p \t Volt1: %f \t Volt2: %f\n",
- ComponentAddress, Volt, Volt2);
- OutputDebugString(Debug);*/
- return Volt;
-}
-
-void SetRelayIds(int* id,void* ComponentAddress)
-{
- RelayStruct *s = (RelayStruct*)ComponentAddress;
- s->PinId[Coil1] = *id++;
- s->PinId[Coil2] = *id++;
- s->PinId[COM] = *id++;
- s->PinId[NO] = *id++;
- s->PinId[NC] = *id++;
-
- /*char Debug[256];
- sprintf_s(Debug, "SetRelayIds: \tAddr1: %p \tAddr2: %p \tPin0:%d \t Pin1:%d \tPin2: %d Pin3: %d\n",
- ComponentAddress, s, s->PinId[0], s->PinId[1], s->PinId[2], s->PinId[3]);
- OutputDebugString(Debug);
- char vx[4],vy[4];
- _itoa(s->PinId[0],vy,10);
- _itoa(s->PinId[1],vx,10);
- MessageBox(NULL,
- (vy), (vx), MB_OK | MB_ICONWARNING);*/
-} \ No newline at end of file