Lots of updates and refactoring.

This commit is contained in:
2026-01-21 17:13:38 -06:00
parent 8cd05e5e7e
commit 3de687391b
11 changed files with 438 additions and 91 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,31 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.14.36811.4 d17.14
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AVR", "AVR.vcxproj", "{015A13FC-CDF1-476D-9C0E-F1FDE634EDB7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{015A13FC-CDF1-476D-9C0E-F1FDE634EDB7}.Debug|x64.ActiveCfg = Debug|x64
{015A13FC-CDF1-476D-9C0E-F1FDE634EDB7}.Debug|x64.Build.0 = Debug|x64
{015A13FC-CDF1-476D-9C0E-F1FDE634EDB7}.Debug|x86.ActiveCfg = Debug|Win32
{015A13FC-CDF1-476D-9C0E-F1FDE634EDB7}.Debug|x86.Build.0 = Debug|Win32
{015A13FC-CDF1-476D-9C0E-F1FDE634EDB7}.Release|x64.ActiveCfg = Release|x64
{015A13FC-CDF1-476D-9C0E-F1FDE634EDB7}.Release|x64.Build.0 = Release|x64
{015A13FC-CDF1-476D-9C0E-F1FDE634EDB7}.Release|x86.ActiveCfg = Release|Win32
{015A13FC-CDF1-476D-9C0E-F1FDE634EDB7}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FDF08D3B-DF67-449B-A0C0-CE0D42D2CA55}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>17.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{015a13fc-cdf1-476d-9c0e-f1fde634edb7}</ProjectGuid>
<RootNamespace>AVR</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="AVR.cpp" />
<ClCompile Include="SerialPort\SerialPort.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="SerialPort\SerialPort.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="AVR.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="SerialPort\SerialPort.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="SerialPort\SerialPort.h">
<Filter>Source Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerCommandArguments>-C=2</LocalDebuggerCommandArguments>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,263 @@
//
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER
// REMAINS UNCHANGED.
//
// Email: yetiicb@hotmail.com
//
// Copyright (C) 2002-2003 Idael Cardoso.
//
//#include "Test.h"
#include "SerialPort.h"
#include "stdafx.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CSerialPort::CSerialPort()
: m_PortHandle(INVALID_HANDLE_VALUE)
{
}
CSerialPort::~CSerialPort()
{
Close();
}
BOOL CSerialPort::Open(LPCTSTR PortName, DWORD BaudRate, BYTE ByteSize, BYTE Parity, BYTE StopBits, DWORD DesiredAccess)
{
Close();
m_PortHandle = CreateFile(PortName, DesiredAccess, 0, NULL, OPEN_EXISTING, 0, 0);
if (m_PortHandle != INVALID_HANDLE_VALUE)
{
DCB dcb;
CString s;
dcb.DCBlength = sizeof(dcb);
GetCommState(m_PortHandle, &dcb);
//printf("dcb: BaudRate before=%d\n", dcb.BaudRate);
//printf("dcb: ByteSize before=%d\n", dcb.ByteSize);
//printf("dcb: StopBits before=%d\n", dcb.StopBits);
//printf("dcb: Parity before=%d\n", dcb.Parity);
dcb.BaudRate = BaudRate;
dcb.ByteSize = ByteSize;
dcb.StopBits = StopBits;
dcb.Parity = Parity;
//printf("dcb: fDsrSensitivity before=%d\n", dcb.fDsrSensitivity);
//printf("dcb: fOutxCtsFlow before=%d\n", dcb.fOutxCtsFlow);
//printf("dcb: fOutxDsrFlow before=%d\n", dcb.fOutxDsrFlow);
//printf("dcb: fInX before=%d\n", dcb.fInX);
//printf("dcb: fOutX before=%d\n", dcb.fOutX);
//printf("dcb: fDtrControl before=%d\n", dcb.fDtrControl);
//printf("dcb: fRtsControl before=%d\n", dcb.fRtsControl);
dcb.fDsrSensitivity = 0;
dcb.fOutxCtsFlow = 0;
dcb.fOutxDsrFlow = 0;
dcb.fInX = 0;
dcb.fOutX = 0;
dcb.fDtrControl = DTR_CONTROL_DISABLE; //DTR and RTS 0
dcb.fRtsControl = RTS_CONTROL_DISABLE;
SetCommState(m_PortHandle, &dcb);
COMMTIMEOUTS touts;
touts.ReadIntervalTimeout = MAXDWORD; // This, plus the zero timeouts causes immediate return
touts.ReadTotalTimeoutMultiplier = 0;
touts.ReadTotalTimeoutConstant = 0;
touts.WriteTotalTimeoutConstant = 1;
touts.WriteTotalTimeoutMultiplier = 0;
SetCommTimeouts(m_PortHandle, &touts);
//SetCommMask (m_PortHandle, EV_CTS | EV_DSR | EV_RING | EV_RLSD);
PurgeComm(m_PortHandle, PURGE_TXCLEAR | PURGE_RXCLEAR);
return TRUE;
}
else
{
printf("Open COM Error: %i\n", GetLastError());
return FALSE; // Use GetLastError() to know the reason
}
}
void CSerialPort::Close()
{
if (m_PortHandle != INVALID_HANDLE_VALUE)
{
CloseHandle(m_PortHandle);
m_PortHandle = INVALID_HANDLE_VALUE;
}
}
BOOL CSerialPort::IsOpen()
{
return (m_PortHandle != INVALID_HANDLE_VALUE);
}
DWORD CSerialPort::Read(LPVOID Buffer, DWORD BufferSize)
{
DWORD Res(0);
if (m_PortHandle != INVALID_HANDLE_VALUE)
{
ReadFile(m_PortHandle, Buffer, BufferSize, &Res, NULL);
}
return Res;
}
DWORD CSerialPort::Write(const LPVOID Buffer, DWORD BufferSize)
{
DWORD Res(0);
if (m_PortHandle != INVALID_HANDLE_VALUE)
{
(void)WriteFile(m_PortHandle, Buffer, BufferSize, &Res, NULL);
}
return Res;
}
BOOL CSerialPort::Get_CD_State()
{
if (m_PortHandle != INVALID_HANDLE_VALUE)
{
DWORD ModemStat;
if (GetCommModemStatus(m_PortHandle, &ModemStat))
{
return (ModemStat & MS_RLSD_ON) > 0; //Not sure
}
else
{
return FALSE;
}
}
else
{
return FALSE;
}
}
BOOL CSerialPort::Get_CTS_State()
{
if (m_PortHandle != INVALID_HANDLE_VALUE)
{
DWORD ModemStat;
if (GetCommModemStatus(m_PortHandle, &ModemStat))
{
return (ModemStat & MS_CTS_ON) > 0;
}
else
{
return FALSE;
}
}
else
{
return FALSE;
}
}
BOOL CSerialPort::Get_DSR_State()
{
if (m_PortHandle != INVALID_HANDLE_VALUE)
{
DWORD ModemStat;
if (GetCommModemStatus(m_PortHandle, &ModemStat))
{
return (ModemStat & MS_DSR_ON) > 0;
}
else
{
return FALSE;
}
}
else
{
return FALSE;
}
}
BOOL CSerialPort::Get_RI_State()
{
if (m_PortHandle != INVALID_HANDLE_VALUE)
{
DWORD ModemStat;
if (GetCommModemStatus(m_PortHandle, &ModemStat))
{
return (ModemStat & MS_RING_ON) > 0;
}
else
{
return FALSE;
}
}
else
{
return FALSE;
}
}
void CSerialPort::Set_DTR_State(BOOL state)
{
if (m_PortHandle != INVALID_HANDLE_VALUE)
{
EscapeCommFunction(m_PortHandle, (state ? SETDTR : CLRDTR));
}
}
BOOL CSerialPort::Get_DTR_State()
{
if (m_PortHandle != INVALID_HANDLE_VALUE)
{
DWORD ModemStat;
if (GetCommModemStatus(m_PortHandle, &ModemStat))
{
return (ModemStat & MS_DSR_ON) > 0; //Not sure
}
else
{
return FALSE;
}
}
else
{
return FALSE;
}
}
void CSerialPort::Set_RTS_State(BOOL state)
{
if (m_PortHandle != INVALID_HANDLE_VALUE)
{
if (0 == EscapeCommFunction(m_PortHandle, (state ? SETRTS : CLRRTS))) {
printf("Set_RTS_State(%d) failed.\n", state ? 1 : 0);
}
}
}
BOOL CSerialPort::Get_RTS_State()
{
if (m_PortHandle != INVALID_HANDLE_VALUE)
{
DWORD ModemStat;
if (GetCommModemStatus(m_PortHandle, &ModemStat))
{
return (ModemStat & MS_CTS_ON) > 0; //Not sure
}
else
{
return FALSE;
}
}
else
{
return FALSE;
}
}

View File

@@ -0,0 +1,48 @@
//
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER
// REMAINS UNCHANGED.
//
// Email: yetiicb@hotmail.com
//
// Copyright (C) 2002-2003 Idael Cardoso.
//
#if !defined(AFX_SERIALPORT_H__731AC17A_665D_4C64_AAA7_6D284B3B7AE8__INCLUDED_)
#define AFX_SERIALPORT_H__731AC17A_665D_4C64_AAA7_6D284B3B7AE8__INCLUDED_
#include "stdafx.h"
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CSerialPort
{
public:
void Set_RTS_State(BOOL state);
void Set_DTR_State(BOOL state);
BOOL Get_RTS_State();
BOOL Get_DTR_State();
BOOL Get_RI_State();
BOOL Get_DSR_State();
BOOL Get_CTS_State();
BOOL Get_CD_State();
virtual DWORD Write(const LPVOID Buffer, DWORD BufferSize);
virtual DWORD Read(LPVOID Buffer, DWORD BufferSize);
virtual BOOL IsOpen();
virtual void Close();
// Use PortName usually "COM1:" ... "COM4:" note that the name must end by ":"
virtual BOOL Open(LPCTSTR PortName, DWORD BaudRate, BYTE ByteSize, BYTE Parity, BYTE StopBits, DWORD DesiredAccess = GENERIC_READ|GENERIC_WRITE);
CSerialPort();
virtual ~CSerialPort();
protected:
HANDLE m_PortHandle;
};
#endif // !defined(AFX_SERIALPORT_H__731AC17A_665D_4C64_AAA7_6D284B3B7AE8__INCLUDED_)

View File

@@ -0,0 +1,27 @@
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#if !defined(AFX_STDAFX_H__C610F99E_12F2_4FE0_849F_B52D1051ECFA__INCLUDED_)
#define AFX_STDAFX_H__C610F99E_12F2_4FE0_849F_B52D1051ECFA__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <afxdisp.h> // MFC Automation classes
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__C610F99E_12F2_4FE0_849F_B52D1051ECFA__INCLUDED_)

View File

@@ -0,0 +1,27 @@
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#if !defined(AFX_STDAFX_H__C610F99E_12F2_4FE0_849F_B52D1051ECFA__INCLUDED_)
#define AFX_STDAFX_H__C610F99E_12F2_4FE0_849F_B52D1051ECFA__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <afxdisp.h> // MFC Automation classes
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__C610F99E_12F2_4FE0_849F_B52D1051ECFA__INCLUDED_)

View File

@@ -0,0 +1,126 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (United States) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
#if defined(APSTUDIO_INVOKED) || defined(LICENSE_MANAGED)
#if defined(APSTUDIO_INVOKED)
IDI_ICON1$(LICENSE_MANAGED) ICON "OEM_Icon.ico"
#else
IDI_ICON1 ICON "OEM_Icon.ico"
#endif
#endif
#if defined(APSTUDIO_INVOKED) || defined(JD_INTERNAL_ONLY)
#if defined(APSTUDIO_INVOKED)
IDI_ICON1$(JD_INTERNAL_ONLY) ICON "JD_Icon.ico"
#else
IDI_ICON1 ICON "JD_Icon.ico"
#endif
#endif
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 6,14,0,0
PRODUCTVERSION 6,14,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "John Deere"
VALUE "FileDescription", "CAN Analysis Tool"
VALUE "FileVersion", "6.14.0.0"
VALUE "InternalName", "CanSniff.exe"
VALUE "LegalCopyright", "Unpublished Work. Copyright (c) Deere & Company, 1995-2021\r\nTHIS SOFTWARE, DATA, AND/OR MATERIAL IS THE PROPERTY OF DEERE & COMPANY.\r\nALL USE, DISCLOSURE, REPRODUCTION, MODIFICATION, DISTRIBUTION, AND/OR\r\nPUBLICATION NOT SPECIFICALLY AUTHORIZED BY DEERE & COMPANY IS PROHIBITED."
VALUE "OriginalFilename", "CanSniff.exe"
VALUE "ProductName", "CanSniff"
VALUE "ProductVersion", "6.14.0.0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // English (United States) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@@ -0,0 +1,18 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by CanSniff.rc
//
#define IDI_ICON1 101
#define IDI_ICON2 103
#define IDI_ICON 103
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 105
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif