drivers/win32/drivers_win32.cpp
changeset 150 d2fc5d5f8a36
parent 149 fe50ada8020b
child 241 4ecc2f3690f4
--- a/drivers/win32/drivers_win32.cpp	Fri Apr 06 16:49:28 2007 +0200
+++ b/drivers/win32/drivers_win32.cpp	Sat Apr 07 09:49:05 2007 +0200
@@ -34,8 +34,6 @@
 #include "canfestival.h"
 #include "timer.h"
 
-#include "nvram_driver.h"
-#include "lss_driver.h"
 #include "timers_driver.h"
    };
 
@@ -44,15 +42,6 @@
 typedef void* (*CANOPEN_DRIVER_PROC)(s_BOARD *board);
 typedef int (*CANCLOSE_DRIVER_PROC)(void* inst);
 
-typedef int (*NVRAM_OPEN_PROC)(void);
-typedef void (*NVRAM_CLOSE_PROC)(void);
-typedef char (*NVRAM_WRITE_PROC)(int type, int access_attr, void *data);
-typedef char (*NVRAM_READ_PROC)(int type, int access_attr, void *data);
-
-typedef void (*LED_SET_REDGREEN_PROC)(CO_Data *d, unsigned char bits);
-
-typedef UNS8 (*BAUDRATE_VALID_PROC)(UNS32 table_index);
-typedef void (*BAUDRATE_SET_PROC)(UNS8 table_index);
 
 class driver_procs
    {
@@ -70,17 +59,6 @@
       CANOPEN_DRIVER_PROC m_canOpen;
       CANCLOSE_DRIVER_PROC m_canClose;
 
-      // nvram driver
-      NVRAM_OPEN_PROC m_nvram_open;
-      NVRAM_CLOSE_PROC m_nvram_close;
-      NVRAM_WRITE_PROC m_nvram_write;
-      NVRAM_READ_PROC m_nvram_read;
-      // led driver
-      LED_SET_REDGREEN_PROC m_led_set_redgreen;
-      // lss driver
-      BAUDRATE_VALID_PROC m_baudrate_valid;
-      BAUDRATE_SET_PROC m_baudrate_set;
-
       // driver module habndle
       HMODULE m_driver_handle;
    };
@@ -89,13 +67,6 @@
       m_canSend(0),
       m_canOpen(0),
       m_canClose(0),
-      m_nvram_open(0),
-      m_nvram_close(0),
-      m_nvram_write(0),
-      m_nvram_read(0),
-      m_led_set_redgreen(),
-      m_baudrate_valid(0),
-      m_baudrate_set(0),
       m_driver_handle(0)
    {}
 
@@ -132,17 +103,6 @@
    m_canSend = (CANSEND_DRIVER_PROC)::GetProcAddress(m_driver_handle, myTEXT("canSend_driver"));
    m_canOpen = (CANOPEN_DRIVER_PROC)::GetProcAddress(m_driver_handle, myTEXT("canOpen_driver"));
    m_canClose = (CANCLOSE_DRIVER_PROC)::GetProcAddress(m_driver_handle, myTEXT("canClose_driver"));
-
-   m_nvram_open = (NVRAM_OPEN_PROC)::GetProcAddress(m_driver_handle, myTEXT("nvram_open_driver"));
-   m_nvram_close = (NVRAM_CLOSE_PROC)::GetProcAddress(m_driver_handle, myTEXT("nvram_close_driver"));
-   m_nvram_write = (NVRAM_WRITE_PROC)::GetProcAddress(m_driver_handle, myTEXT("nvram_write_driver"));
-   m_nvram_read = (NVRAM_READ_PROC)::GetProcAddress(m_driver_handle, myTEXT("nvram_read_driver"));
-
-   m_led_set_redgreen = (LED_SET_REDGREEN_PROC)::GetProcAddress(m_driver_handle, myTEXT("led_set_redgreen_driver"));
-
-   m_baudrate_valid = (BAUDRATE_VALID_PROC)::GetProcAddress(m_driver_handle, myTEXT("baudrate_valid_driver"));
-   m_baudrate_set = (BAUDRATE_SET_PROC)::GetProcAddress(m_driver_handle, myTEXT("baudrate_set_driver"));
-
    return can_driver_valid()?m_driver_handle:NULL;
    }
 
@@ -233,68 +193,21 @@
 /***************************************************************************/
 int canClose(CO_Data * d)
    {
-   if (fd0 != NULL && s_driver_procs.m_canClose != NULL)
-      {
-      EnterMutex();
-      driver_data* data = (driver_data*)d->canHandle;
-      d->canHandle = NULL;
-      LeaveMutex();
-      data->continue_receive_thread = false;
-      WaitReceiveTaskEnd(&data->receive_thread);
-      (*s_driver_procs.m_canClose)(data->inst);
-      delete data;
-      return 0;
+   if (s_driver_procs.m_canClose != NULL)
+      {
+		  driver_data* data;
+		  EnterMutex();
+		  if(d->canHandle != NULL){
+			data = (driver_data*)d->canHandle;
+			d->canHandle = NULL;
+			data->continue_receive_thread = false;}
+		  LeaveMutex();
+		  WaitReceiveTaskEnd(&data->receive_thread);
+		  (*s_driver_procs.m_canClose)(data->inst);
+		  delete data;
+		  return 0;
       }
    return 0;
    }
 
-/***************************************************************************/
-int nvram_open(void)
-   {
-   if (s_driver_procs.m_nvram_read != NULL)
-      return (*s_driver_procs.m_nvram_open)();
-   return -1;
-   }
-
-void nvram_close(void)
-   {
-   if (s_driver_procs.m_nvram_close != NULL)
-      (*s_driver_procs.m_nvram_close)();
-   }
-
-char nvram_write(int type, int access_attr, void *data)
-   {
-   if (s_driver_procs.m_nvram_write != NULL)
-      return (*s_driver_procs.m_nvram_write)(type, access_attr, data);
-   return 0;
-   }
-
-char nvram_read(int type, int access_attr, void *data)
-   {
-   if (s_driver_procs.m_nvram_read != NULL)
-      return (*s_driver_procs.m_nvram_read)(type, access_attr, data);
-   return 0;
-   }
-
-/***************************************************************************/
-
-void led_set_redgreen(CO_Data *d, unsigned char bits)
-   {
-   if (s_driver_procs.m_led_set_redgreen != NULL)
-      (*s_driver_procs.m_led_set_redgreen)(d, bits);
-   }
-
-/***************************************************************************/
-
-UNS8 baudrate_valid(UNS32 table_index)
-   {
-   if (s_driver_procs.m_baudrate_valid != NULL)
-      return (*s_driver_procs.m_baudrate_valid)(table_index);
-   return 0;
-   }
-
-void baudrate_set(UNS8 table_index)
-   {
-   if (s_driver_procs.m_baudrate_set != NULL)
-      (*s_driver_procs.m_baudrate_set)(table_index);
-   }
+