This commit is contained in:
2026-04-17 14:55:32 -04:00
commit bc3ac1d4c9
18017 changed files with 4371742 additions and 0 deletions

View File

@@ -0,0 +1,100 @@
ALTER PROCEDURE [dbo].[sp_SensorsDigitalInUpdateAll]
@sensors xml = null
,@errorNumber int output
,@errorMessage nvarchar(250) output
AS
BEGIN
set @errorNumber = 0
set @errorMessage = space(0)
if(@sensors is null)
begin
RAISERROR(15600,-1,-1, '[sp_SensorsDigitalInUpdateAll]') /* Error 1560 - An invalid parameter or option was specified for procedure*/
end
else
begin
SET NOCOUNT ON;
declare @SensorsDigitalIn Table(
[Id] [int] IDENTITY(1,1) NOT NULL,
[SerialNumber] [nvarchar](50) NOT NULL,
[SettingMode] [int] NOT NULL,
[ScaleMultiplier] [nvarchar](50) NOT NULL,
[LastModified] [datetime] NOT NULL,
[LastModifiedBy] [nvarchar](50) NOT NULL,
[eId] [nvarchar](50) NOT NULL,
[UserValue1] [nvarchar](255) NULL,
[UserValue2] [nvarchar](255) NULL,
[UserValue3] [nvarchar](255) NULL,
[UserTags] [varbinary](max) NULL,
[MeasurementUnit] [nvarchar](50) NOT NULL,
[Exist] [bit] DEFAULT ((0))
)
declare @exist bit
set @exist =(select @sensors.exist('/DigitalIn/Sensor'))
if(@exist = 1)
begin
insert into @SensorsDigitalIn select
t.x.value('@SerialNumber','nvarchar(50)')
, t.x.value('@SettingMode','int')
, t.x.value('@ScaleMultiplier','nvarchar(50)')
, t.x.value('@LastModified','datetime')
, t.x.value('@LastModifiedBy','nvarchar(50)')
, t.x.value('@eId','varchar(50)')
, t.x.value('@UserValue1','nvarchar(50)')
, t.x.value('@UserValue2','nvarchar(50)')
, t.x.value('@UserValue3','nvarchar(50)')
, t.x.value('@UserTags','varbinary(max)')
, t.x.value('@MeasurementUnit','nvarchar(50)')
, 0
from @sensors.nodes('/DigitalIn/Sensor') t(x)
OPTION (OPTIMIZE FOR ( @sensors = NULL ))
declare @count int
set @count = (select count(*) from @SensorsDigitalIn)
if(@count > 0)
begin
update @SensorsDigitalIn set Exist = case when EXISTS(select SerialNumber from v_SensorSerialNumber where SensorType = 2) then 1 else 0 end
update [dbo].[SensorsDigitalIn] SET
[SettingMode] = s.SettingMode
,[ScaleMultiplier] = s.ScaleMultiplier
,[LastModified] = s.LastModified
,[LastModifiedBy] = s.LastModifiedBy
,[eId] = s.eId
,[UserValue1] = s.UserValue1
,[UserValue2] = s.UserValue2
,[UserValue3] = s.UserValue3
,[UserTags] = s.UserTags
,[MeasurementUnit] = s.MeasurementUnit
from @SensorsDigitalIn s where [dbo].[SensorsDigitalIn].[SerialNumber] = s.SerialNumber
insert into [dbo].[SensorsDigitalIn]
([SerialNumber]
,[SettingMode]
,[ScaleMultiplier]
,[LastModified]
,[LastModifiedBy]
,[eId]
,[UserValue1]
,[UserValue2]
,[UserValue3]
,[UserTags]
,[MeasurementUnit])
select
[SerialNumber]
,[SettingMode]
,[ScaleMultiplier]
,[LastModified]
,[LastModifiedBy]
,[eId]
,[UserValue1]
,[UserValue2]
,[UserValue3]
,[UserTags]
,[MeasurementUnit]
from @SensorsDigitalIn where Exist = 0
end
end
end
END

View File

@@ -0,0 +1,49 @@
CREATE PROCEDURE [dbo].[sp_SensorsUARTUpdateInsert]
@Id INT=NULL,
@SerialNumber NVARCHAR (255),
@BaudRate INT,
@DataBits INT,
@StopBits NVARCHAR (50),
@Parity NVARCHAR (50),
@FlowControl NVARCHAR (50),
@DataFormat NVARCHAR (50),
@LastModified DATETIME,
@LastModifiedBy NVARCHAR (50),
@UserTags VARBINARY (MAX),
@Broken BIT,
@DoNotUse BIT,
@new_id INT OUTPUT,
@errorNumber INT OUTPUT,
@errorMessage NVARCHAR (255) OUTPUT
AS
BEGIN
SET NOCOUNT ON
SET @errorNumber = 0
SET @errorMessage = ''
DECLARE @SensorType AS TINYINT
DECLARE @SensorId AS INT
SELECT @SensorType = [TypeId] FROM [dbo].[SensorsType] WHERE [SensorType]='UART'
SELECT @SensorId = A.[Id] from [dbo].[Sensors] AS A INNER JOIN [dbo].SensorsType AS B ON A.SensorType=B.TypeId WHERE B.TypeId=@SensorType AND A.SerialNumber=@SerialNumber
IF( @SensorId IS NULL)
BEGIN
INSERT INTO [dbo].[Sensors] ([SensorType], [SerialNumber]) VALUES (@SensorType, @SerialNumber)
SELECT @SensorId = SCOPE_IDENTITY()
SET @new_id = @SensorId
INSERT INTO [dbo].[SensorsUART] ([SensorId], [BaudRate], [DataBits], [StopBits], [Parity], [FlowControl], [DataFormat], [LastModified], [LastModifiedBy], [UserTags], [Broken], [DoNotUse]) VALUES (@SensorId, @BaudRate, @DataBits, @StopBits, @Parity, @FlowControl, @DataFormat, @LastModified, @LastModifiedBy, @UserTags, @Broken, @DoNotUse)
END
ELSE
BEGIN
SET @new_id = @SensorId
UPDATE [dbo].SensorsUART SET [BaudRate]=@BaudRate, [DataBits]=@DataBits, [StopBits]=@StopBits, [Parity]=@Parity, [FlowControl]=@FlowControl, [DataFormat]=@DataFormat, [LastModified]=@LastModified, [LastModifiedBy]=@LastModifiedBy, [UserTags]=@UserTags, [Broken]=@Broken, [DoNotUse]=@DoNotUse WHERE [SensorId] = @SensorId
END
END
IF(@@error != 0)
BEGIN
SET @errorNumber = error_number()
SET @errorMessage = error_message()
END