#include <string.h>
#include "serial.h"
-#define SLEEP(SEC) usleep(SEC * 1000 * 1000)
+#ifdef WIN32
+# include <windows.h>
+# define SLEEP(SEC) Sleep(SEC * 1000)
+#else
+# define SLEEP(SEC) usleep(SEC * 1000 * 1000)
+#endif
#define CODE_SOH (0x01)
#define CODE_EOT (0x04)
*/
int flush_serial(SERIAL *serial)
{
- char buf[64];
+ unsigned char buf[64];
/*
* リターンコードをターゲットに送信する。
*/
- serial_write(serial, "\n", 1);
+ serial_write(serial, (unsigned char *)"\n", 1);
/*
* リターンに対するエコーバックとプロンプトを飲み込む。
*/
int setup_load_condition(SERIAL *serial)
{
- char buf[64];
+ unsigned char buf[64];
/*
* loadコマンドを発行する。
*/
- serial_write(serial, "load\n", 5);
+ serial_write(serial, (unsigned char *)"load\n", 5);
/*
* エコーバックを飲み込む。
/*
* タイムアウトを設定して読み込みを行なう。
*/
- char c = 0x00;
+ unsigned char c = 0x00;
serial_read_with_timeout(serial, &c, 1, TIMEOUT_SHORT_MS);
/*
*
* @return チェックサム計算結果。
*/
-unsigned char CALC_CHECKSUM(const char *buf, const int siz)
+unsigned char CALC_CHECKSUM(const unsigned char *buf, const int siz)
{
int i;
unsigned char cs = 0;
*
* @return ターゲットから受信した結果コード。
*/
-unsigned char TRANSMIT(SERIAL *serial, const char *buf, const int siz)
+unsigned char TRANSMIT(SERIAL *serial, const unsigned char *buf, const int siz)
{
unsigned char c;
serial_write(serial, buf, siz);
{
int i;
for (i = 0; i < block_count; i++) {
- char c;
- char buf[BLOCK_SIZE];
+ unsigned char c;
+ unsigned char buf[BLOCK_SIZE];
buf[0] = CODE_SOH;
buf[1] = block_number;
buf[2] = ~block_number;
}
}
if (block_remainder > 0) {
- char c;
- char buf[BLOCK_SIZE];
+ unsigned char c;
+ unsigned char buf[BLOCK_SIZE];
buf[0] = CODE_SOH;
buf[1] = block_number;
buf[2] = ~block_number;
* 終了コードを送信して結果コードを取得する。
*/
{
- char c = CODE_EOT;
+ unsigned char c = CODE_EOT;
serial_write(serial, &c, 1);
serial_read_with_timeout(serial, &c, 1, TIMEOUT_LONG_MS);
if (c != CODE_ACK) {
--- /dev/null
+\r
+Microsoft Visual Studio Solution File, Format Version 11.00\r
+# Visual C++ Express 2010\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kz_xmodem", "kz_xmodem.vcxproj", "{23ED9AFD-1600-4C5C-84E3-05971CE08B90}"\r
+EndProject\r
+Global\r
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+ Debug|Win32 = Debug|Win32\r
+ Release|Win32 = Release|Win32\r
+ EndGlobalSection\r
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+ {23ED9AFD-1600-4C5C-84E3-05971CE08B90}.Debug|Win32.ActiveCfg = Debug|Win32\r
+ {23ED9AFD-1600-4C5C-84E3-05971CE08B90}.Debug|Win32.Build.0 = Debug|Win32\r
+ {23ED9AFD-1600-4C5C-84E3-05971CE08B90}.Release|Win32.ActiveCfg = Release|Win32\r
+ {23ED9AFD-1600-4C5C-84E3-05971CE08B90}.Release|Win32.Build.0 = Release|Win32\r
+ EndGlobalSection\r
+ GlobalSection(SolutionProperties) = preSolution\r
+ HideSolutionNode = FALSE\r
+ EndGlobalSection\r
+EndGlobal\r
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup Label="ProjectConfigurations">\r
+ <ProjectConfiguration Include="Debug|Win32">\r
+ <Configuration>Debug</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ <ProjectConfiguration Include="Release|Win32">\r
+ <Configuration>Release</Configuration>\r
+ <Platform>Win32</Platform>\r
+ </ProjectConfiguration>\r
+ </ItemGroup>\r
+ <PropertyGroup Label="Globals">\r
+ <ProjectGuid>{23ED9AFD-1600-4C5C-84E3-05971CE08B90}</ProjectGuid>\r
+ <Keyword>Win32Proj</Keyword>\r
+ <RootNamespace>kz_xmodem</RootNamespace>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <UseDebugLibraries>true</UseDebugLibraries>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+ <ConfigurationType>Application</ConfigurationType>\r
+ <UseDebugLibraries>false</UseDebugLibraries>\r
+ <WholeProgramOptimization>true</WholeProgramOptimization>\r
+ <CharacterSet>MultiByte</CharacterSet>\r
+ </PropertyGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <ImportGroup Label="ExtensionSettings">\r
+ </ImportGroup>\r
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+ </ImportGroup>\r
+ <PropertyGroup Label="UserMacros" />\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <LinkIncremental>true</LinkIncremental>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <LinkIncremental>false</LinkIncremental>\r
+ </PropertyGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+ <ClCompile>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <Optimization>Disabled</Optimization>\r
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <DisableSpecificWarnings>4996;4819;4102</DisableSpecificWarnings>\r
+ <CompileAs>CompileAsCpp</CompileAs>\r
+ </ClCompile>\r
+ <Link>\r
+ <SubSystem>Console</SubSystem>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+ <ClCompile>\r
+ <WarningLevel>Level3</WarningLevel>\r
+ <PrecompiledHeader>\r
+ </PrecompiledHeader>\r
+ <Optimization>MaxSpeed</Optimization>\r
+ <FunctionLevelLinking>true</FunctionLevelLinking>\r
+ <IntrinsicFunctions>true</IntrinsicFunctions>\r
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+ <DisableSpecificWarnings>4996;4819;4102</DisableSpecificWarnings>\r
+ <CompileAs>CompileAsCpp</CompileAs>\r
+ </ClCompile>\r
+ <Link>\r
+ <SubSystem>Console</SubSystem>\r
+ <GenerateDebugInformation>true</GenerateDebugInformation>\r
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+ <OptimizeReferences>true</OptimizeReferences>\r
+ </Link>\r
+ </ItemDefinitionGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="kz_xmodem.c" />\r
+ <ClCompile Include="serial_windows.c" />\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="serial.h" />\r
+ </ItemGroup>\r
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+ <ImportGroup Label="ExtensionTargets">\r
+ </ImportGroup>\r
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+ <ItemGroup>\r
+ <Filter Include="ソース ファイル">\r
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
+ </Filter>\r
+ <Filter Include="ヘッダー ファイル">\r
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\r
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\r
+ </Filter>\r
+ <Filter Include="リソース ファイル">\r
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\r
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>\r
+ </Filter>\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClCompile Include="kz_xmodem.c">\r
+ <Filter>ソース ファイル</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="serial_windows.c">\r
+ <Filter>ソース ファイル</Filter>\r
+ </ClCompile>\r
+ </ItemGroup>\r
+ <ItemGroup>\r
+ <ClInclude Include="serial.h">\r
+ <Filter>ヘッダー ファイル</Filter>\r
+ </ClInclude>\r
+ </ItemGroup>\r
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+</Project>
\ No newline at end of file