224 lines
11 KiB
Plaintext
224 lines
11 KiB
Plaintext
CREATE PROCEDURE [dbo].[sp_SensorsAnalogUpdateInsert_98]
|
|
@UserSerialNumber NVARCHAR (50),
|
|
@Model NVARCHAR (50),
|
|
@SensorModelId INT,
|
|
@Manufacturer NVARCHAR (50),
|
|
@Status NVARCHAR (50),
|
|
@MeasurementUnit NVARCHAR (50),
|
|
@OffsetToleranceLow FLOAT,
|
|
@OffsetToleranceHigh FLOAT,
|
|
@eId NVARCHAR (50),
|
|
@Capacity FLOAT,
|
|
@Comment NVARCHAR (50),
|
|
@BridgeType SMALLINT,
|
|
@BridgeLegMode SMALLINT,
|
|
@Shunt SMALLINT,
|
|
@Invert BIT,
|
|
@UserValue1 NVARCHAR (50),
|
|
@UserValue2 NVARCHAR (50),
|
|
@UserValue3 NVARCHAR (50),
|
|
@FilterClass NVARCHAR (50),
|
|
@BridgeResistance FLOAT,
|
|
@IsoCode NVARCHAR (50),
|
|
@IsoChannelName NVARCHAR (255),
|
|
@UserCode NVARCHAR (50),
|
|
@UserChannelName NVARCHAR (255),
|
|
@CheckOffset BIT,
|
|
@SupportedExcitation NVARCHAR (50),
|
|
@InitialEU FLOAT,
|
|
@CalInterval INT,
|
|
@CalibrationSignal BIT,
|
|
@InternalShuntResistance FLOAT,
|
|
@ExternalShuntResistance FLOAT,
|
|
@UniPolar BIT,
|
|
@RangeLow FLOAT,
|
|
@RangeAve FLOAT,
|
|
@RangeHigh FLOAT,
|
|
@Created DATETIME,
|
|
@TimesUsed BIGINT,
|
|
@SensorCategory INT,
|
|
@BypassFilter BIT,
|
|
@CouplingMode SMALLINT,
|
|
@Version INT,
|
|
@LastModified DATETIME,
|
|
@ModifiedBy NVARCHAR (50),
|
|
@LocalOnly BIT,
|
|
@AxisNumber SMALLINT,
|
|
@NumberOfAxes SMALLINT,
|
|
@UserTags VARBINARY (MAX),
|
|
@DoNotUse BIT,
|
|
@Broken BIT,
|
|
@DiagnosticsMode BIT,
|
|
@SerialNumber NVARCHAR (255),
|
|
@FirstUseDate DateTime NULL,
|
|
@LatestCalibrationId INT NULL,
|
|
@ACCouplingModeEnabled BIT,
|
|
@SensitivityTolerancePercent FLOAT NULL,
|
|
@AssemblyName NVARCHAR (50) NULL,
|
|
@UsageCount INT NULL,
|
|
@MaximumUsage INT NULL,
|
|
@new_id INT OUTPUT,
|
|
@errorNumber INT OUTPUT,
|
|
@errorMessage NVARCHAR (255) OUTPUT
|
|
AS
|
|
BEGIN
|
|
BEGIN TRY
|
|
SET NOCOUNT ON
|
|
SET @errorNumber = 0
|
|
SET @errorMessage = ''
|
|
|
|
DECLARE @SensorType AS TINYINT
|
|
DECLARE @SensorId AS INT
|
|
DECLARE @MaxCalIntervalDays AS INT
|
|
-- FB14622 Maximum allowed interval days. When updating this value please update the _maxCalIntervalDays variable in SensitivityControl.xaml.cs
|
|
SET @MaxCalIntervalDays = 365 * 10
|
|
|
|
SELECT @SensorType = [TypeId] FROM [dbo].[SensorsType] WHERE [SensorType]='Analog'
|
|
|
|
SELECT @SensorId = A.[Id] from [dbo].[Sensors] AS A INNER JOIN [dbo].SensorsType AS B ON A.SensorType=B.TypeId WHERE B.SensorType='Analog' AND A.SerialNumber=@SerialNumber
|
|
|
|
-- FB14622 Validate the range of calibration intervals
|
|
IF(@CalInterval > @MaxCalIntervalDays OR @CalInterval <= 0 )
|
|
BEGIN
|
|
RAISERROR ('Invalid calibration inteval',16,1)
|
|
END
|
|
|
|
IF( @SensorId IS NULL)
|
|
BEGIN
|
|
INSERT INTO [dbo].[Sensors] (SensorType, SerialNumber) VALUES (@SensorType, @SerialNumber)
|
|
SELECT @SensorId = SCOPE_IDENTITY()
|
|
SET @new_id = @SensorId
|
|
exec dbo.sp_SensorsAnalogInsert_98
|
|
@SensorId,
|
|
@UserSerialNumber,
|
|
@Model,
|
|
@SensorModelId,
|
|
@Manufacturer,
|
|
@Status,
|
|
@MeasurementUnit,
|
|
@OffsetToleranceLow,
|
|
@OffsetToleranceHigh,
|
|
@eId,
|
|
@Capacity,
|
|
@Comment,
|
|
@BridgeType,
|
|
@BridgeLegMode,
|
|
@Shunt,
|
|
@Invert,
|
|
@UserValue1,
|
|
@UserValue2,
|
|
@UserValue3,
|
|
@FilterClass,
|
|
@BridgeResistance,
|
|
@IsoCode,
|
|
@IsoChannelName,
|
|
@UserCode,
|
|
@UserChannelName,
|
|
@CheckOffset,
|
|
@SupportedExcitation,
|
|
@InitialEU,
|
|
@CalInterval,
|
|
@CalibrationSignal,
|
|
@InternalShuntResistance,
|
|
@ExternalShuntResistance,
|
|
@UniPolar,
|
|
@RangeLow,
|
|
@RangeAve,
|
|
@RangeHigh,
|
|
@Created,
|
|
@TimesUsed,
|
|
@SensorCategory,
|
|
@BypassFilter,
|
|
@CouplingMode,
|
|
@Version,
|
|
@LastModified,
|
|
@ModifiedBy,
|
|
@LocalOnly,
|
|
@AxisNumber,
|
|
@NumberOfAxes,
|
|
@UserTags,
|
|
@DoNotUse,
|
|
@Broken,
|
|
@DiagnosticsMode,
|
|
@SerialNumber,
|
|
@FirstUseDate,
|
|
@LatestCalibrationId,
|
|
@ACCouplingModeEnabled,
|
|
@SensitivityTolerancePercent,
|
|
@AssemblyName,
|
|
@UsageCount,
|
|
@MaximumUsage,
|
|
@errorNumber,
|
|
@errorMessage
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @new_id = @SensorId
|
|
exec dbo.sp_SensorsAnalogUpdate_98
|
|
@SensorId,
|
|
@UserSerialNumber,
|
|
@Model,
|
|
@SensorModelId,
|
|
@Manufacturer,
|
|
@Status,
|
|
@MeasurementUnit,
|
|
@OffsetToleranceLow,
|
|
@OffsetToleranceHigh,
|
|
@eId,
|
|
@Capacity,
|
|
@Comment,
|
|
@BridgeType,
|
|
@BridgeLegMode,
|
|
@Shunt,
|
|
@Invert,
|
|
@UserValue1,
|
|
@UserValue2,
|
|
@UserValue3,
|
|
@FilterClass,
|
|
@BridgeResistance,
|
|
@IsoCode,
|
|
@IsoChannelName,
|
|
@UserCode,
|
|
@UserChannelName,
|
|
@CheckOffset,
|
|
@SupportedExcitation,
|
|
@InitialEU,
|
|
@CalInterval,
|
|
@CalibrationSignal,
|
|
@InternalShuntResistance,
|
|
@ExternalShuntResistance,
|
|
@UniPolar,
|
|
@RangeLow,
|
|
@RangeAve,
|
|
@RangeHigh,
|
|
@Created,
|
|
@TimesUsed,
|
|
@SensorCategory,
|
|
@BypassFilter,
|
|
@CouplingMode,
|
|
@Version,
|
|
@LastModified,
|
|
@ModifiedBy,
|
|
@LocalOnly,
|
|
@AxisNumber,
|
|
@NumberOfAxes,
|
|
@UserTags,
|
|
@DoNotUse,
|
|
@Broken,
|
|
@DiagnosticsMode,
|
|
@FirstUseDate,
|
|
@LatestCalibrationId,
|
|
@ACCouplingModeEnabled,
|
|
@SensitivityTolerancePercent,
|
|
@AssemblyName,
|
|
@UsageCount,
|
|
@MaximumUsage,
|
|
@errorNumber,
|
|
@errorMessage
|
|
END
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @errorNumber = error_number()
|
|
SET @errorMessage = error_message()
|
|
END CATCH
|
|
END |