Releases: chenhsong/iChen-Server
Version 4.3.1 Build 7265.34424 (Hot Fix)
Bug Fixes
- Fixes a bug that causes batch message sends to Azure IOT Hub to fail
by reverting the library to a previous working version.
Breaking Changes
- The default database used is SQLite instead of SQL Server CE.
The default database file isDatabase\iChenServer.db
instead
ofDatabase\iChenServer.sdf
. This is to avoid certain performance
issues with SQL Server CE.
Version 4.3 Build 7211.23391
System
New Features
-
The database and web server can be disabled (via new configuration
settingsDatabaseEnable
andiChenWeb_Enable
). Compact builds
without these components can be made. -
Cycle data records stored to the cloud or an external archive
database can optionally be tagged with a unique ID for tracking
purposes. -
A new, text-based, Simple Message Protocol (SMP) is added for
simple integration with third-party controllers. -
A new configuration setting
DefaultControllerTimeZone
is added
to set default time-zone for all connected controllers. -
A new configuration setting
StandAlone
is added (defaulttrue
)
to specify that this server is a stand-alone instance and thus
no cache sharing, broadcasting, and synchronization etc. are
necessary. This greatly simplifies the operation of the server
when running in a single-instance deployment. -
The configuration file now allows a controller serial number to
map directly to another without going through address mapping. -
Enabling HTTPS (via the
Https_Certificate_File
and
Https_Certificate_Hash
configuration settings) now exposes an
HTTPS end-point (i.e.https://
) for the web interface instead
of HTTP (http://
). -
A new configuration setting
iChenWeb_Http_Redirection_Port
is
added to expose an optional HTTP end-point when HTTPS is enabled.
Any request made to this port will be redirected to the main
web interface port which serves HTTPS. -
A new command flag
-x
is added to the Server Console. When
specified, the console program will loop forever (requiringCtrl-C
to terminate the program). Without this flag, the console program
will exit whenEnter
is pressed.
Enhancements
-
Memory usage is reduced and execution speed increased via
System.Span
andSystem.Memory
and reduced allocations of arrays. -
When a distributed shared cache is used (instead of the default
in-memory shared cache), data for connected controllers will
be cached locally to speed up read access. -
When a distributed shared cache is used (instead of the default
in-memory shared cache), controllers will sync to it
periodically, just in case a prior cache write fails. -
Using Azure IOT Hub as a distributed shared cache is refined to
avoid hitting on the IOT Hub's throttle limits. -
Error messages for the Azure IOT Hub (when used as a distributed
shared cache) are enhanced. -
New configuration settings
CloudStore_BatchSize
and
CloudStore_CycleData_BatchSize
to enable fine-tuning the
upload batch sizes for Azure Table storage. -
Warnings will be displayed when certain configuration options are
set wrong (e.g. enabling Web API when a compact build is used). -
Use ASP.NET Core cookies authentication middleware.
-
The configuration setting
DataStore
for specifying an external
archive database can now hold a raw ODBC connection string itself
instead of only a connection name. This simplifies provisioning
of the archive database. -
A new
Variable
field is added toMoldSetting
which contains
the CRC32 hash for the mold setting variable's name, if any.
This allows directly mapping a mold setting offset to a
particular variable. -
Controller variable mappings now operate off external text-based
mapping tables, enabling easy updates without touchinng system
programs. -
Cycle data variable mapping table for the
CBmold
series of
controllers is added.
Bug Fixes
-
Typo's preventing proper installation of the executable config
files are fixed. -
On certain controllers using Unicode (e.g. CDC2000WIN), bugs
that cause the reading of text names (e.g. Mold ID) to stop at
a zero byte are now fixed. -
Certain crashes due to undisposed messages are avoided.
Breaking Changes
- C# 7.3 or higher is now required.
Log4Net
Enhancements
-
log4net.config
is now watched for changes and the logging level
will adjust dynamically. -
Customized logger names can be used, in the format
#serial
, for
example#123456
, and these will automatically be used for any
controller with that serial number.
Breaking Changes
-
A new logging level,
TRACE
, is added. Some detailed log messages
that used to show up for theDEBUG
logging level now show up
forTRACE
instead. This is to reduce log cluttering. -
A new logging level,
VERBOSE
, is added for fine-tuned logging.
It will display, among other detailed information, specific data/bytes
sent/received over the wire. -
The configuration setting
DebugMessages
is removed. Use the
VERBOSE
logging level instead. -
Most
ALIVE
andACTION_CHANGED
messages now show up only for
theTRACE
logging level to reduce log cluttering. -
Most
Alive
andControllerAction
Open Protocol
messages
now show up only when for theTRACE
logging level to reduce log
cluttering.
Open Protocol
Bug Fixes
-
A WebSocket connection is now properly terminated when an error
is encountered. Previously, some errors might cause the connection
to be kept alive forever on the server. -
Previously, when a connected client dropped off suddenly without
going through the disconnect handshake, the WebSocket connection
would be kept alive on the server forever. Now, theRecvAliveCounter
server configuration setting is strictly observed; when the server
does not receive anAlive
message from the client (which will be
the case when the client's connection fails) within theRecvAliveCounter
window, the server will assume that the connection is dead and
will terminate it. -
TypeName
field ofMessage
is now thread-safe. -
OperatorInfo
now takes zero in theOperatorId
field indicating
that the operator is not found.
Enhancements
-
RequestControllersListMessage
can now take an optional
ControllerId
parameter which, when set, limits the returned list
to only the controller with the specified ID. -
Setting
Field
to null or an empty/white-space string in
ReadMoldDataMessage
now returns aMoldDataMessage
with the
full set of buffered mold setting values instead of causing an
exception. Under this scenario, aMoldDataValueMessage
will
not be returned. -
A
State
field is added toControllerStateMessage
which may
hold aStateValues
object containing the state values
(e.g. op mode, job mode etc.) of the controller at the time
of the event. This is commonly used for analytic purposes. -
Enabling HTTPS (via the
Https_Certificate_File
and
Https_Certificate_Hash
configuration settings) now also secures
the Open Protocol WebSocket end-point (i.e.wss://
instead of
ws://
). -
Much more complete logging is provided for messages.
Breaking Changes
-
ControllerType
field inController
is changed toString
in
order to accommodate future controller types. -
The
ControllerTypes
enum
is removed. -
JSON
representation ofControllerStateMessage
is refined. -
The
RecvAliveCounter
server configuration setting must now be
strictly observed. AnAlive
message must be received by the
server within theRecvAliveCounter
window, or the WebSocket
connection will be assumed dead and the server may unilaterally
terminate the connection. Previously a server did not time-out
a connection even when noAlive
message is received.
Version 4.1 Build 6845.39
.NET Standard-based release with substantial feature, stability and
performance enhancements.
This is the initial release of version 4.1 of the iChen Server,
which has been converted to .NET Standard 2.0 and runs under both
Windows (with .NET Framework) and Linux (with .NET Core).
This new version includes countless enhancements to version 4.0
with more hardware support (e.g. Linux tty-style serial ports,
CDC2000WIN and MPC-7.0 controllers), advanced features (e.g. RT_TEMP
messages, broadcasting and relaying mode, Azure IOT Hub support),
significant stability and performance improvements, as well as
numerous bug fixes.
Version 4.0.4 Build 6425.20461
New Feature
- Supports direct connections via serial (COM) ports to Ai/CPC/MPC controllers.
Bug Fix
- Fixes a bug related to HTTP port reservation that causes setup to fail.
Enhancement
- The Console is now multi-colored to better highlight errors and warnings.
Version 4.0.1.2 Build 6362.24844 (Hot Fix)
Hot Fix
- Fixes a bug which allows multiple controllers to connect simultaneously with the same
machine serial number. Now only one machine can be connected with each unique serial
number. TheJOIN
messages of any duplicating controller will be rejected.
Enhancement
- Support more firmware versions of the Ai-11 controller.
Version 4.0.1.1 Build 6351.32843 (Hot Fix)
Hot Fixes
- Fix a bug which prevents changing the password of the
admin
user.
Version 4.0.1 Build 6288.22134
Hot Fix
- Fixes a bug which blocks storage of data to external database when there is a mold data set
pending.
New Feature
- New setup option to automatically login any connecting controller to authorization level 5
(i.e. line supervisor). This is particularly useful for Ai-series controllers.
Version 4.0 Build 6250.41030
New Feature
- One-click MSI setup package with uninstaller
Enhancements
- The Terminal is now multi-lingual.