d36bf3230b
Minor fix: - SelectableCore: - Bug fix: Incorrect handle passed to Select for RemoteClient
Charl Wentzel
2018-11-04 19:02:01 +02:00
d18e046e57
Important Update: - SelectableCore: - Bug fix: correct ConnectTypeNames - Pass handle reference to Select when adding file discriptor. - Rename Select vars Handle -> SelectHandle - Show type and name of handle on Select logs
Charl Wentzel
2018-11-04 17:31:12 +02:00
12a8ddb7ba
Important Update: - JSONparseCore: - Allow JSON to be parsed from string data - DataTreeCore: - Allow GetMember to work with now path, ie. return BaseMember param
Charl Wentzel
2018-10-28 22:36:31 +00:00
22a05ebd4e
Important update: - Bug fix: Set constant default address/port values for LinePrinter, TCPserver & TCPclient
Charl Wentzel
2018-10-23 11:44:38 +01:00
4ec1dc6cd7
Important Update: - Add Resolve Delay, allow time delay before resolving address Allow completion of other actions before blocking all to getaddr() - Remove Handle->KeepAlive, assume always true
Charl Wentzel
2017-12-10 21:39:55 +02:00
75dec370f7
Minor Update: - Fix log error on port close
Charl Wentzel
2017-12-07 06:47:40 +02:00
7c33c9dbc7
Important Update: - SelectCore: - Bug fix: only remove handle from read/write list if different function
Charl Wentzel
2017-12-06 09:56:28 +02:00
7f39f8b985
Important update: - SelectableCore: - Rename methods: SetSerialPortConfig() -> WriteSerialConfig(), GetSerialPortConfig() -> ReadSerialConfig(), InputHandle() -> OutputHandle(), ProcessBuffer() -> ProcessInputBuffer() SetPortHandle(config)() -> SetSerialHandle(Config)() - Rename serial port identification: "Port" -> "SerialPort" - Update logs accordingly - Add LinePrinter Port - Add to LoadConfig() - Add SetLinePrinterHandle() & OpenLinePrinterPort() methods - Add handling for open/read/write/close events - Add CloseDelay for AutoManage (non-persistent) ports - Rename handle timer: ReopenStart -> LastAction - Reset timer on all open/read/write/close events - Check for Close timeout in Process() and close port - Remove CloseChildren parameter on Close() method - Add QuickReopen parameter to Close() method - SelectCore: - Overwrite existing handle - not yet removed - Handle In/Out baudrate on serial port separately
Charl Wentzel
2017-12-06 08:43:25 +02:00
3eaf0853fb
Important Update: - SelectableCore: - Move Serial port config params to Port/SerialConfig - Only configure serial port if config setting provided in JSON file - Add SerialConfig param to THandle struct, set when serial config given - Rename method: ConfigureSerialPort() -> SetSerialPortConfig() - New method: GetSerialPortConfig() read serial port config into Handle - Split method SetPortHandle(): - SetPortHandle() - only set port type and address - SetPortHandleSerial() - only set serial port parameters
Charl Wentzel
2017-12-01 10:56:48 +02:00
15e6d5a645
Important Update: - SelectableCore: - Simplify Handle AutoManage logic - Bug fix: AutoManage fail to open (WaitingToOpen) if no data written
Charl Wentzel
2017-11-29 12:51:29 +02:00
92ce01a3b7
Important Update: - JSONparseCore: - Bug fix: Incorrectly terminated PrintString on null - SelectableCore: - Add BaudRate, DataBits, Parity, StopBits, FlowCtrl, DataWait to THandle - Include Serial Port setup in SetPortHandle() - Read Serial Port config in LoadConfigData() - Rename SetSerialConfig() -> ConfigureSerialPort() - Configure Serial Port immediately after opening port
Charl Wentzel
2017-11-29 11:30:05 +02:00
89123fa4af
Important Update: - SelectableCore: - Split SetBuffers() into SetInBuffer() and SetOutBuffer() - Rename SerialConfig() -> SetSerialConfig() - Add serial port configuration (eg. baudrate) to ConfigData - Read only no of bytes reported by FIONREAD - DataTree: - Bug fix: Create Int/Float/Bool params if requested
Charl Wentzel
2017-11-28 18:35:05 +02:00
4ed36809b8
Important update: - Detect serial port disconnect/close
Charl Wentzel
2017-11-27 18:48:41 +02:00
4c6f971a7d
Important update: - Bug fix: start/end char for Watchdog protocol
Charl Wentzel
2017-11-21 11:40:30 +02:00
9f7e1b486e
Important Update: - SelectableCore: - Split handling of Handle from Input() to InputHandle() method - Allow multiple handles to be connected to single Channel - Update logs to report Handle, not Channel name - TimingCore: - Convert all functions to inline functions in header (remove .cpp file) - Add new function TimeLeft() - WatchdogCore: - Bug fix: No watchdog channel, use InputHandle() method not Input() - Bug fix: ping ignored, use To:"watchdog" in ping command
Charl Wentzel
2017-11-21 10:15:26 +02:00
c023cec697
Important update: - Bug fix: Error when writing to closed socket
Charl Wentzel
2017-11-20 15:32:21 +02:00
c1b111e196
Important Update: - DataTree: - Allow to read Null/String/Int/Float/Bool as anyone of the other types, except Array/Object
Charl Wentzel
2017-11-20 07:41:51 +02:00
7ef3d71af9
Important Updates: - FunctionCore: - Output() returns largest no of bytes written to linked input - SelectableCore: - Auto-manage: - Add AutoManage param -> Persistent - Will automatic open port if written to when Auto-Manage enabled - Will keep port open (re-open if closed) if Persistent = true - DNS resolve: - Set AddressFailed if port could not open/bind - Only use next resolved address if current address failed
Charl Wentzel
2017-11-18 17:06:32 +02:00
abba077ed0
Important Update: - SelectableCore: - Skip IP address "0.0.0.0" when resolving localhost
Charl Wentzel
2017-08-28 13:17:19 +02:00
4af8f529c9
Minor Update: - DateTimeCore: - Change default separators for date/time, allow no separators - JSONparseCore: - Bug fix: Output escape sequences in Hexadecimal
Charl Wentzel
2017-08-23 18:03:11 +02:00
5f5e89e7cd
Important update: - EventBufferCore: (new) - Defines Events and related functions - Defines Event Buffer - ItemBuffer: - Specify "Keep" parameter for Delete, to override CopyEntries
Charl Wentzel
2017-08-21 20:51:10 +02:00
2830b8dd6d
Important Bug fixes: - Remote Client connect not working properly - Set Client Port no on connect - Correctly handle create failure - Show error on fail - Input() fail to transfer data if Handle & Channel not same name - Search for linked handles
Charl Wentzel
2017-08-18 09:12:55 +02:00
18b487cbdd
Minor Update: - JSONparseCore: - Simplify & correct PrintObject() and PrintArray() logic
Charl Wentzel
2017-08-18 05:21:09 +02:00
8fd04dc9e2
Important Update: - CItemBuffer: - Rename CItemBufferCore -> CItemBuffer - Add item count and GetCount() method - Bug fix: Reset LastItem on DeleteAll() - TimingCore: - Bug fix: Handle buffer overflow on 32-bit processors
Charl Wentzel
2017-08-17 10:56:10 +02:00
2b7c49d5bb
Important Update: - DataTreeCore: - Add Parent & Prev Child links to DataMembers - Update CreateMember() to set Parent/Sibling reference & increase Parent->Len - Remove AddMember() - Update DestroyMember() to decrease Parent->Len - JSONparseCore: - Update ParseArray() for above changes made to DataTreeCore
Charl Wentzel
2017-08-11 15:42:59 +02:00
73743060a0
Minor Updates: - DataTreeCore: - Correct calculation of length in SetValue()
Charl Wentzel
2017-08-10 21:17:32 +02:00
c9244555ec
Important update: - LiteProtocolCore: - Bug fix: NewCommandStr() cannot shrink CommandStr on CreateCommand - Bug fix: AppendParam() cannot pass NULL string value
Charl Wentzel
2017-08-06 12:32:14 +02:00
ade3c10a1a
Important Update: - DataTreeCore: - Add GetLen() method to get length of (text) value - FileCore: - Minor fix: rename MaxLen -> Len
Charl Wentzel
2017-08-02 03:38:37 +02:00
983a0c5002
Bug fix: - Included string.h on FunctionCore.h
Charl Wentzel
2017-08-01 08:56:50 +02:00
e71157b9ec
Important Update: - ApplicationCore: - Rename ConfigParser -> JSONparser - Make JSONparser a public parameter - DataTreeCore: - Bug fix: Insufficient memory allocation on SetValue if Len = -1
Charl Wentzel
2017-07-29 12:45:45 +02:00
b7033bea81
Minor update: - DataTreeCore: - Bug fix: Return Default value on GetStr() if not found or created
Charl Wentzel
2017-07-28 06:46:33 +02:00
a9d9401b96
Minor updated: - FunctionCore_not_used: - Started work on queued channel buffers or processing buffers - Incomplete and temporarily abandoned due to time constraints - Renamed modified FunctionCore -> FunctionCore_not_used
Charl Wentzel
2017-07-26 10:41:04 +02:00
3e0ff00dbe
Important Update: - ItemBufferCore: - New Class for storing items in a FIFO style buffer - FunctionCore: - Implemented pulled input: - Function creates static output: StoredOutput & StoredOutputLen - Other Function pulls static output from input linked functions - FunctionCore-ChannelBuffer: - Tried to create a processing buffer - Abandoned for now
Charl Wentzel
2017-07-24 16:33:01 +02:00
2f81d1fbbe
Important Update: - Library Clean up: - Removed all unused C/C++ libraries from source - First C/C++ libraries then redA libraries - Library changes: - renamed BufferCore -> CharBufferCore - added ItemBufferCore - CharBufferCore: - Derive RollingBuffer & ShiftBuffer from common class CharBuffer - CharBuffer is mostly a virtual class (interface)
Charl Wentzel
2017-07-22 17:46:05 +02:00
aaf3c59727
Important Updates: - DataTreeCore: - Allow types float, int & bool to be read as strings with GetStr() - LogCore: - Add comments to Logging parameters - WatchDogCore: - Call CSelectableCore::Process() in Process() to manage connect - SelectableCore: - Allow SetSocketHandle() to be called if Handle already set as socket - added strlcase() method to convert string to lower case - Update Handle structure: - renamed Address -> HostName - renamed PortNo -> PortName - added AddressList for all resolved addresses - added AddressInfo for active address - Add ResolveAddress() method - Domain name and protocol port resolving with GetAddrInfo() - JSON updated: - domain name can be provided instead of IP address - protocol can be specified instead of Port No, e.g. "HTTP" / "SSH" - Resolve address before connect, or use next resolved address
Charl Wentzel
2017-07-22 09:40:17 +02:00
c32875509d
Minor updates: - JSONparseCore: - Set File mode on create - SelectableCore: - Check pipe() return value on create - Validate replacement of stdin with pipe
Charl Wentzel
2017-07-17 22:51:30 +02:00
9b86bf3573
Important Update: - CApplicationCore: - Run() returns false if error on any Process() call - Add TerminateOnError param to Run() method, - if set, exit immediately if Process() on any process fails - if not set, exit after Process() on all processes - Remove "Terminating..." log
Charl Wentzel
2017-07-17 07:18:52 +02:00
c90cb7b0f4
Minor updates: - FunctionCore: - Do not auto create empty channel list - SelectCore: - Rename method: SetDebugLevel() -> LogLevel() - SelectableCore: - Do not auto create empty handles list
Charl Wentzel
2017-07-16 23:30:09 +02:00
434377f122
Major Update: - Implement new ApplicationCore: - Manage Tools: Log, DataTree, JSONparser & Selector - Load configuration, Manage FunctionBlocks - FunctionCore & dirived classes, SignalCore: - affects: SelectableCore, DeviceCore, FileCore, WatchdogCore - Do not pass Log() - Define and pass Type - Update/reduce included headers - Use ProcessName and Application global vars - Get Log, DataTree from Application - Use virtual Init() function to set must have Channels/Handles - DataTreeCore: - Bug fix: Check if child members exist and destroy in SetValuePtr() - Add method GetFirstChild with BaseMember & Path - Bug fix: do not use RootMember if no Parent in GetChildxxx() methods - SignalCore, SelectCore: - Use Application->Log() - FunctionCore: - Add itself to Application (function list) - Add parameter: LinkConfigMember, Type - Use virtual LoadConfigData() to configure from DataTree - Rename methods: LoadConfig() -> InitConfig(), InitLogging() -> SetLogParam(), SetDebugLevel() -> SetLogLevel() - Add method: GetType(), LoadChannelLinkData(), InitChannelLinks() - Modify LinkIn/OutputChannel() to use name for InFunction, not pointer - SelectableCore & Dirived classes: - Affects DeviceCore & WatchdogClient - Rename parameter: Select -> Selector, BaseMember -> ConfigMember - Get Selector from Application->Selector - Change Handles JSON structure from Array to Key:Value pairs - Bug fix: check if Selector exist during Input() - Bug fix: do not set PortNo if not exist
Charl Wentzel
2017-07-16 20:29:01 +02:00
8933ec1ae6
Important Update: - FunctionCore: - Fix Memory Leaks: - Recreate Name in LoadConfig() - Setting FirstChannel to NULL in LoadConfig() - Fix fault on empty Log/Output in LoadConfig() - Check if Log/Level exists in LoadConfig() - Do not auto-create all config parameters - SelectableCore: - Fix Memory Leaks: - Setting FirstHandle to NULL in LoadConfig() - Do not auto-create all config parameters - Update logs to specifically refer to "TCP" server/client
Charl Wentzel
2017-07-12 06:19:06 +02:00
3f86de71b1
Major update: - DataTreeCore: - Bug fix: GetMember() error if member not found - FunctionCore: (affected: SelectableCore, FileCore, WatchdogCore) - Made destructor virual - Standardize method parameter naming, e.g. pName, pLog - Renamed parameters: DebugLevel -> LogLevel, OutputDisplay -> LogOutput - Reinstated parameter BaseMember - Removed logging parameters from constructor - Created method InitLoggging() (shows "Function Created" message) - Split LoadConfig() method into parts: - Implemented public LoadConfig() methods - Implemented LoadConfigData() method, load parameters from DataTree - WatchdogCore: - Derive from CSelectableCore instead of CFunctionCore - Rename parameter: PingTimeout -> PingInterval - Replace Ping Channel with Handle only - Add method SetInterval() - Send command direct to handle with (channel) Input() - SelectableCore: - Rename parameters: Auto -> AutoManage, ReopenTimeout -> ReopenDelay - Implemented own virtual LoadConfigData() method - DeviceCore: - Made all logging conditional: if (Log) Log->Message(...) - SelectCore: - Renamed parameters: DebugLevel -> LogLevel
Charl Wentzel
2017-07-11 06:20:14 +02:00
b7ed169730
Major Update & Bug fixes: - FileCore: - Replace dlNone -> dlLow - Remove temporary code used by CBaslerCamera - Function Core: - Add method SetDebugLevel() - Remove global parameter BaseMember; - JSONparse: - Print Bool parameters as true/false, not 1/0 - SelectCore: - Add method SetDebugLevel() - SignalCore: - Replace dlNone -> dlLow
Charl Wentzel
2017-07-09 16:31:47 +02:00
b900d735b9
Important update: - Used new core protocol function to create command - Bug fix: use correct sequence: From, To, Command
Charl Wentzel
2017-07-08 22:39:32 +02:00
4802452a7c
Important Update: - CLiteProtocol: - Set input string on methods to const char * - Simplify checking for verification - Ensure Length parameter can be left out on all methods - Add quick functions for structured commands: To, From, Command - CLogCore: - Use only "\n", not "\r\n" - SignalCore: - Use std::endl instead of "\r\n"
Charl Wentzel
2017-07-08 22:23:50 +02:00
0c20103c9c
Merge branch 'master' of /home/development/source/core/redAcore into WatchdogCore
Charl Wentzel
2017-07-05 18:21:27 +02:00
d013078c1f
Bug fixes: - Remove LogStr var - Create new Command Str before adding parameters - Set Watchdog name correctly
Charl Wentzel
2017-07-05 18:20:29 +02:00
812677615d
Merge branch 'master' of /home/development/source/core/redAcore into WatchdogCore
Charl Wentzel
2017-07-05 17:20:13 +02:00
b6a7969894
Merge branch 'master' of /home/development/source/core/redAcore into InterAfrica
Charl Wentzel
2017-07-05 17:16:51 +02:00
1b64fd17f9
Minor update: - BufferCore: - Add Overwrite parameter for ReadFromFD - Bug fix: ReadFromFD MaxRead size - SignalCore: - ProcessName is external pointer
Charl Wentzel
2017-07-05 17:16:29 +02:00
04edaf6e34
Major update: - Add CWatchdogCore component. Sends ping to watchdog server
Charl Wentzel
2017-07-05 17:06:31 +02:00
748b62d235
Important Update: - SelectableCore: - Made GetType() & GetState() public methods - Update logs in Input() - FunctionCore: - Add Input/OutputEnabled parameters with Get/Set methods. - Update logging in Input() and Output() - Check if input/output enabled in Input() and Output()
Charl Wentzel
2017-07-05 10:59:24 +02:00
c50d920f94
Important update: - Log signals direct to StdErr if no Log instance - Bug fix: ProcessName is external pointer, not literal
Charl Wentzel
2017-07-01 12:07:34 +02:00
706cd9caf6
Bug fix: - Validate File Path and add '/' when saving JSON file
Charl Wentzel
2017-06-22 17:21:28 +02:00
9677052042
Important Update: - Bug fix JSONparseCore: Allow for blank path in file name - Added new Class LiteProtocolCore for basic protocol
Charl Wentzel
2017-04-30 17:32:19 +02:00
ee29625b9a
Important update: - DataTree->GetStr return Member->Value or NULL if not found - Rename DeviceCore EDataType to EMBDataType, avoid conflict with JSONpaser - Add DataTree to FunctionCore with LoadConfig() method - Change ProcessName to char * (from char[]) - JSONparse: - Rename RootPath to BasePath on all methods to reduce confusion - Allow FilePath to be NULL, add '/' if not present - Fixed Parsing sequence in ParseObject & ParseArray
Charl Wentzel
2017-04-10 21:33:14 +02:00
9b42d516a1
Important Update: - Implemented basic child element navigation: GetFirstChild(), GetNextChild(), GetIndexChild() - Bug fix: Faulty name comparison using length
Charl Wentzel
2017-04-06 06:56:03 +02:00
23db2539d9
Important Update: - Bug fix: Create wrong member name because not zero terminated - Bug fix: Only create array element if brackets empty
Charl Wentzel
2017-04-06 05:35:30 +02:00
200f7e1f8b
Important Update: - Improve "printing" for JSON with single & multi line objects - Fix bugs in getting, setting & creating array elements - "array[]" allowed to create/add element at end of an array - No longer duplicate get() path (reduce memory allocation) - added NameLen to TMember to eliminate zero-terminate requirement - Fix ReadfromXXX() return values
Charl Wentzel
2017-04-05 08:07:53 +02:00
66fc4bc123
Important Update: - Bug fix: incorrect memory allocation in SetValue() - Implement conversion of escaped chars during parsing - Implement escaping chars during printing
Charl Wentzel
2017-04-03 21:48:29 +02:00
2e2ba113f1
Major Update: - Update printing: Do not use '\n' if indent = 0 - Implement refilling of buffer (from fd) while parsing - No longer use LineMark, but keep track of char position with CharNo - Use Mark to reference point for shifting buffer on refill - SkipWhiteSpace no longer inline method - Refill buffer if required, change Mark & CharNo on line break - CreateBuffer(), RefillBuffer() & FreeBuffer() now public methods - Make Loading and Saving more flexible: - Refactor from LoadFromFile(): ReadFromFile(), ReadFromHandle(), ReadFromBuffer() - Refactor from SaveToFile() & PrintToScreen: WriteToFile(), WriteToScreen, WriteToHandle()
Charl Wentzel
2017-04-02 19:44:44 +02:00
8f39adb0f3
Important update: - Buffer: - fix undefined value: zero terminate buffer when loading from FD - DataTree: - fix memory leak: destroy temporary search path - improve delete(): delete all children for member if no path given - bug fix: initiate object with 0 length (not -1) - JSONparse: - Remove level parameter - Add path to load/save/print methods (print only portion of tree) - fix memory leak: destroy temporary object name
Charl Wentzel
2017-03-29 21:27:28 +02:00
5691b22df9
Minor Update: - Pass printf Mask for Int/Float values on Get/Set methods - On GetValue use mask for default value - Add SetArray() method - Bug fix: Incorrect malloc size in SetValue() - Bug fix: Len not calculated if -1 passed to SetValue() - Set default value for Len = -1 on SetValue() methods - Don't pass Len to SetValue() unless required
Charl Wentzel
2017-03-27 04:29:11 +02:00
a22f60b152
Major Update: - Bug fix: BufferCore - set correct auto buffer size - Change Get/Set methods to use BaseReference and full path instead of ParentPath and MemberName - Add Create param to all Get methods (create if not found) - Implement arrays & parsing of arrays - Set CJSONparse as friend class to DataTree (access protected methods) - Print JSON to screen
Charl Wentzel
2017-03-26 22:26:52 +02:00
b823bd7ea7
Important Update: (incomplete) - Split CConfigCore into two classes: - DataTreeCore.h - Tree data structure and access - JSONparseCore.h - JSON parsing functionality - Renamed TConfigParam struct to TDataMember - Renamed most of CDataTreeCore methods
Charl Wentzel
2017-03-23 20:53:32 +02:00
ad4d8e8b5f
Important update: (untested) - Switch from FILE pointers to file descriptors (e.g. fopen() -> open()) - Replace internal buffer with CShiftBuffer
Charl Wentzel
2017-03-23 13:21:21 +02:00
5b4e6822c7
Bug fixes: - Fixed bugs on CRollingBuffer and CShiftBuffer - Remove "virtual" from methods declarations - Correct validation checks on methods - Use memmove to shift data in ShiftBuffer - Initialise buffer in RollingBuffer - FindStr() -> Return start position of match - Fix incorrect params passed to Peek()/PeekCopy() in Pop()/PopCopy() - Fix endless lopp in RollingBuffer::Push()
Charl Wentzel
2017-03-22 07:52:58 +02:00
b5763d7f50
Major Update: (compiling but untested) - Replace CBuffer with CRollingBuffer and CShiftBuffer ShiftBuffer is faster and simpler and always zero terminates - Updated SelectableCore to use RollingBuffer - Add Overwrite parameter to Push() and ReadFromFD() methods - Add PeakDirect() method for fast direct access to buffer
Charl Wentzel
2017-03-22 03:43:29 +02:00
bb07ef63bf
Important Update: (ConfigCore) - Implemented full support for multi-layer objects - Implemented RootObject for all other elements - Added method CreateParam() - Converted GetParam methods from inline to normal methods - Added GetParent method - Use Object->Len to count no of child objects
Charl Wentzel
2017-03-18 23:03:51 +02:00
508cf0fb0d
Important Update: (incomplete) - Implemented JSON type NULL - Implement dynamic buffer - Split parsing int separate re-usable methods - Implement basic parsing of an object - Add GetError() method - Add SkipWhiteSpace as inline method - Make parsing variable private attributes - Improve checking when getting parameters
Charl Wentzel
2017-03-15 04:29:01 +02:00
9b180c77f5
Important Update: - Added new Class: ConfigCore (Working but incomplete) - Provides basic parameter listing (bool, int, float, string) - Read/writes parameters from/to file - Support JSON format for key-value pair primitive and strings values - Support for objects and arrays to follow
Charl Wentzel
2017-03-08 04:05:26 +02:00
f57b340be6
Merge branch 'master' of /home/development/source/core/redAcore into BaslerCamera
Charl Wentzel
2017-03-04 22:08:56 +02:00
ae95602f64
Important update: - Bug fix: make DateTimeCore functions linkable by using it in CLogCore - CLogCore: - Rename FileOutput -> OutputFile - Add DateTimeStr to Output if FileNo > 3
Charl Wentzel
2017-03-04 21:44:39 +02:00
02b43fe6b8
Important update: - Add new DateTimeCore file - Provides functions to get/set system date - Create Date, Time and Date/Time string with custom separators
Charl Wentzel
2017-03-03 18:00:44 +02:00
2d9faa7fa6
Important Update: - Add GetValue/SetValue commands for Device command interface - Bug fix: use case compare on searches
Charl Wentzel
2017-03-02 12:31:50 +02:00
92db4da7de
Importnant update: - Add callback functions for change in socket states
Charl Wentzel
2017-02-16 03:12:18 +02:00
d4ee138da8
Update in progress: - Started work on Set/Get commands for DeviceCore
Charl Wentzel
2017-02-16 03:02:18 +02:00
6d810e33ba
Merge branch 'JoaneControl' - additions for pipe control - correction to display signed parameters correctly
Charl Wentzel
2017-02-08 08:45:59 +02:00
c2acb4b77d
Minor updates: - CSelectableCore: - Allow ForkPipeHandle to change ExecPath - Remove parent/child process test comments - Move FD operations methods from private -> public
Charl Wentzel
2016-10-24 17:53:50 +02:00
47577e9f4c
Major Updated: - Added new CDeviceCore Class - Methods and structures moved from CModbusInterface - Keep track of Devices and DeviceParameters - Provides methods & parameters related to polling process - Provides parameter events
Charl Wentzel
2016-09-07 08:49:58 +02:00
7564e6a288
Major update: - Rename Function LocalIO -> Channel (Parameters & Methods)
Charl Wentzel
2016-08-23 13:19:43 +02:00
5ea05d119e
Major update: - Logging - Created LogCore Class - Updated LogCore to use file descriptors instead of stdout - Add Log object reference to constructors for: FunctionCore, SelectCore - Use extern Log() object in SignalCore - SelectableCore - Added new connection type: ForkedPipe Create pipe, fork process, connect pipe out to child stdin, exec
Charl Wentzel
2016-08-22 12:14:53 +02:00
eaace97ec9
Minor Update: - BufferCore: - Method WriteToFD should ignore EAGAIN - LogCore: - Add OUT_COUNT output bit (show total output bytes) - SelectableCore: - Add Force param on WriteToFD, ignore EAGAIN if !Force
Charl Wentzel
2016-07-27 13:42:50 +02:00
1a9f825b25
Major Update: - Minor fix: Set correct names in comments at top of file - New FileCore Class: - Writing data to output file - BufferCore: - Check for "EAGAIN" on write and retry write - FunctionCore: - Add new Output method that references LocalIO directly - SelectableCore: - New method SetAutomanage to specify auto re-open parameters - Re-open timer implemented to slow re-open events - Only call ProcessBuffer() if data received on socket - Force processing input data when no input marker set - Use new Output method to simplify code - Bug fix: Read correctly from buffer on multiple reads/writes on FD - Check for "EAGAIN" on write to FD and retry write
Charl Wentzel
2016-07-20 09:37:25 +02:00
6fee4d0eac
Important Update: - BufferCore: - Added PeekCopy and PopCopy methods - SelectableCore: - Add status checking of Handle on Read and Write - Reject input if Handle not open - TimingCore: - Added method ClearStartTime
Charl Wentzel
2016-07-06 15:17:10 +02:00
1ced40260d
Minor Update: - Added Output on Function Output events
Charl Wentzel
2016-06-15 12:03:15 +02:00
b418fa73e0
Important Update: - LogCore: - Removed global DebugLevel var, now passed as parameter - Implemented binary output values - FunctionCore, SelectCore and SelectableCore: - internal DebugLevel param implemented - new internal DisplayOutput param (Normal/Hex/Bin) - BufferCore: - Bug fix: allow for empty search string/marker
Charl Wentzel
2016-06-09 06:53:09 +02:00
13b0a4736c
Minor Update: - Use Timeout function in SelectableCore
Charl Wentzel
2016-06-02 13:44:30 +02:00
ac34066f30
Important Update: (Massive CPU usage improvement) - Bug fix: Select timeout not constant, reduces to zero - Only scan FDs if Select event occured
Charl Wentzel
2016-06-02 12:38:47 +02:00
630583bbc6
Minor Update: - BufferCore: Set BufSize as class constant - TimingCore: Add new function Timeout()
Charl Wentzel
2016-06-02 09:36:08 +02:00
59facdf1bd
Important Update: - Ingore SIGPIPE event, ie. writing to socket after it closed
Charl Wentzel
2016-06-01 06:58:48 +02:00