41 lines
963 B
C++
41 lines
963 B
C++
// SPDX-License-Identifier: MIT
|
|
/**
|
|
Copyright (c) 2020 - 2022 Beckhoff Automation GmbH & Co. KG
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "AdsDevice.h"
|
|
|
|
namespace bhf
|
|
{
|
|
namespace ads
|
|
{
|
|
enum FOPEN : uint32_t {
|
|
READ = 1 << 0,
|
|
WRITE = 1 << 1,
|
|
APPEND = 1 << 2,
|
|
PLUS = 1 << 3,
|
|
BINARY = 1 << 4,
|
|
TEXT = 1 << 5,
|
|
ENSURE_DIR = 1 << 6,
|
|
ENABLE_DIR = 1 << 7,
|
|
OVERWRITE = 1 << 8,
|
|
OVERWRITE_RENAME = 1 << 9,
|
|
SHIFT_OPENPATH = 16,
|
|
};
|
|
}
|
|
}
|
|
|
|
struct AdsFile {
|
|
AdsFile(const AdsDevice& route, const std::string& filename, uint32_t flags);
|
|
void Read(const size_t size, void* data, uint32_t& bytesRead) const;
|
|
void Write(const size_t size, const void* data) const;
|
|
|
|
static void Delete(const AdsDevice& route, const std::string& filename, uint32_t flags);
|
|
static int Find(const AdsDevice& route, const std::string& path, const size_t maxdepth, std::ostream& os);
|
|
private:
|
|
const AdsDevice& m_Route;
|
|
const AdsHandle m_Handle;
|
|
};
|